10.07.2015 Views

Data Processing Techniques - All about the IBM 1130 Computing ...

Data Processing Techniques - All about the IBM 1130 Computing ...

Data Processing Techniques - All about the IBM 1130 Computing ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>IBM</strong><strong>Data</strong> <strong>Processing</strong> <strong>Techniques</strong><strong>IBM</strong> <strong>1130</strong> <strong>Computing</strong> System User's GuideThis manual, covering a wide range of subjects that are of interestto <strong>1130</strong> customer personnel, is designed for insertion in a workbookalong with user-generated materials. It deals with <strong>the</strong> steps to beconsidered in any successful installation program: preinstallationplanning, documenting current applications, design of new applications,conversion, program development, testing, and programdocumentation.Additional topics discussed include <strong>the</strong> <strong>1130</strong> system, <strong>the</strong> <strong>1130</strong>Monitor, Job Management, Disk Management, Core Management,File Organization, Disk <strong>Data</strong> Storage, FORTRAN and <strong>the</strong> CommercialSubroutine Package, Sorting and System Evaluation - Performance.It is suggested that <strong>the</strong> User's Guide be placed in a binder andthat dividers be inserted before <strong>the</strong> various sections. The resultingworkbook becomes <strong>the</strong> single major source of installation guidancewhen you include your own data processing policies, standards, andcontrol forms.


<strong>IBM</strong> <strong>1130</strong> <strong>Computing</strong> SystemCopies of this and o<strong>the</strong>r <strong>IBM</strong> publications can be obtained through <strong>IBM</strong> branchoffices. Address comments concerning <strong>the</strong> contents of this publication to:<strong>IBM</strong>, Technical Publications Department, 112 East Post Road, White Plains, N. Y. 10601


Section SubsectionsPage01 00 00 01READER'S GUIDEINTRODUCTIONThis section is intended as a guide to help you get<strong>the</strong> most out of this manual. Because of <strong>the</strong> magnitudeof <strong>the</strong> manual and <strong>the</strong> differing needs of variousreaders, such a guide, or "road map", is particularlyimportant.For purposes of <strong>the</strong> guide, readers will bedivided into three groups:1. Top management, who want an overview of<strong>the</strong> system.2. <strong>Data</strong> processing management, who havedirect responsibility for <strong>the</strong> installation and managementof <strong>the</strong> <strong>1130</strong> System.3. Programmers and systems analysts, who willactually set up <strong>the</strong> system, determine <strong>the</strong> methodsto be used, and/or code <strong>the</strong> programs.Groups 2 and 3 are subdivided into those concernedwith "pure" scientific applications, andthose working in a commercial or mixed scientificcommercialatmosphere.Figure 01.1 shows a general outline of <strong>the</strong> manualand suggests which sections should be read byeach group. However, <strong>the</strong> top manager who wantsa more detailed view of <strong>the</strong> <strong>1130</strong> will find much of<strong>the</strong> data processing management material to berelevant; <strong>the</strong> data processing manager may want toread more than Figure 01.1 indicates; etc.The effectiveness of this Guide depends entirelyon <strong>the</strong> responsible manager in your installation.The Guide contains possible paths to a successfulinstallation. Since <strong>the</strong> installation of data processingequipment is a disciplined venture that involvesdecisions concerning <strong>the</strong> selection of <strong>the</strong> best paths,your management's responsibility is clearly delineated.This responsibility began with <strong>the</strong> creationof realistic objectives. Control is exercised throughtimely reviews in which progress is related tocheckpoints and corrective action is undertaken.A WORD TO TOP MANAGEMENTWithin <strong>the</strong> last several years, your company mayhave increased its plant capacity to meet growingneeds. Before this new resource became fullyoperational, though, many things had to be done.Management was chosen, an organization chartdrawn up, a plan for startup formulated, a datepicked for <strong>the</strong> start of production, etc.Just recently you may have added a new productor service. The introduction of this product orservice involved many considerations. Its need wasstudied, its function determined, an announcementdate selected, etc.In both cases, management:• Defined its objectives• Made a plan• Established checkpoints• Assigned responsibilitiesTimely reviews determined whe<strong>the</strong>r your planswere being followed, your objectives met, etc. On<strong>the</strong> basis of <strong>the</strong>se reviews, modifications and adjustmentswere made to ensure that <strong>the</strong> operation was asuccess.Now you are adding ano<strong>the</strong>r resource to yourorganization — an <strong>IBM</strong> <strong>1130</strong> <strong>Computing</strong> System. Asbefore, <strong>the</strong>re are many things that you, as management,must do if your <strong>1130</strong> installation is to meetits planned objectives.Should <strong>the</strong> installation of a new data processingsystem be any less subject to management controlthan a new plant, or a new product? The answer isno. <strong>Data</strong> processing capability is a resource, justlike <strong>the</strong> new plant or new product. In fact, a dataprocessing system is a unique type of resource; it isone that extends management's ability to controlo<strong>the</strong>r resources.Your <strong>1130</strong> system may be used to maintain a personnelskills inventory or to schedule plant operations.It may be assigned to keep a close watch oncash flow or to determine reorder points for yourinventory. In each case, data processing is a resourcebeing used to control o<strong>the</strong>r resources.In this light, <strong>the</strong> <strong>IBM</strong> <strong>1130</strong> <strong>Computing</strong> System thatyou are <strong>about</strong> to install should take on an added importance.Objectives, checkpoints, and <strong>the</strong> mechanicsfor review should be established for this resource,just as for any o<strong>the</strong>r resource available to you.The <strong>1130</strong> <strong>Computing</strong> System, through its storedprogrampower and random access disk capability,embodies a new technology. The maximum valuewill be derived from this technology only if <strong>the</strong> systemis oriented toward your objectives and its installationis closely monitored to see that thoseobjectives are achieved. It is through this type ofinvolvement that <strong>the</strong> philosophies and policies of amanager can be manifested.The <strong>1130</strong> User's Guide has been designed with<strong>the</strong>se thoughts in mind. First, it deals with all <strong>the</strong>considerations th T lead to a successful installation.Second, it is so org ized to lend itself to <strong>the</strong>"-control and rpiew p ocess. The^etrnexstone of


Section SubsectionsPage01 00 00 03this organization is an Installation Activity Schedule,which highlights all <strong>the</strong> events leading to a successfulinstallation. This is fully described in Section 05.This Guide should become a working document inyour organization. Although <strong>the</strong> experience andspecific needs of each organization vary considerably,all <strong>the</strong> events apply to some extent in everyinstallation.A WORD TO DATA PROCESSING MANAGEMENTIn addition to <strong>the</strong> comments directed toward topmanagement, several thoughts apply here.You are <strong>the</strong> men in <strong>the</strong> middle — between topmanagement and <strong>the</strong> programmer/analyst. For thisreason <strong>the</strong> sections checked for your attention arethose concerned with how to do things <strong>the</strong> "right"way; how to avoid potential pitfalls; how to get <strong>the</strong>most out of your <strong>1130</strong> system; etc.A WORD TO THE PROGRAMMER/ANALYSTAs Figure 01.1 shows, this manual is directed primarilytoward you; you should read its entire contents.This is especially true for those of you whoare working in a commercial, or mixed, environment.However, <strong>the</strong> distinction between a commercial,or mixed, environment and a "pure" scientificenvironment is very tenuous. More and more,users who once considered <strong>the</strong>mselves "pure"scientific find <strong>the</strong>ir applications taking on aspectsof <strong>the</strong> traditional commercial job — large data filesare developed, input and output formats becomemore critical, alphabetic codes and data are encountered.Actually, <strong>the</strong> subjects checked for <strong>the</strong> "pure"scientific reader represent a bare minimum. Anyonewho is or expects to be in a mixed environmentshould read <strong>the</strong> entire manual.SUMMARY OF THE USER'S GUIDEThe Installation PhaseThe following listing of <strong>the</strong> material in this Guidereflects <strong>the</strong> major grouping of installation eventsand should provide an indication of <strong>the</strong> Guide's comprehensivenature. Comments have been added toeach listed item to relate <strong>the</strong> manner in which thatsubject matter may be used.• Preinstallation Planning — provides a provenmethod of scheduling and reviewing installationactivities, specifically tailored to <strong>the</strong> <strong>1130</strong> user,and illustrates <strong>the</strong> points where management reviewis most essential.• Documenting Current Applications — concerns<strong>the</strong> control and techniques that can be applied to <strong>the</strong>documentation of existing procedures. Distinctionis made between manual operations and those alreadymechanized.• Some Preliminary Questions and AnswersRegarding <strong>Data</strong> Storage — considers <strong>the</strong> pros andcons of using ei<strong>the</strong>r cards or disk for data storage.Also considers protecting your data — why and howit should be protected.• <strong>1130</strong> Application Design — includes card andform design, record layouts, and flowcharts. Theelements of application design are made clearthrough "live" illustrations, which are used throughout.This section also aids in <strong>the</strong> selection of <strong>the</strong>right job-oriented programming language and thuscontributes to <strong>the</strong> effectiveness of <strong>the</strong> whole installationeffort.• Program Development — devotes itself to convertingdesigns for <strong>1130</strong> applications into tested,debugged machine programs. The application discussedthroughout <strong>the</strong> Guide is provided to serve asa teaching aid and time saver for <strong>the</strong> programmer.Programming hints and aids are also provided.• Testing Effectively — shows <strong>the</strong> methods aninstallation should use in testing individual programsand complete systems.• Program Documentation — shows how a goodset of working documents, which a computer installationmust develop, can be created during <strong>the</strong>development phases.• Conversion — outlines <strong>the</strong> procedures requiredto perform <strong>the</strong> cutover from your present system to<strong>the</strong> <strong>1130</strong>.The Operations PhaseThis portion of <strong>the</strong> Guide contains several sectionsof interest to users who have completed <strong>the</strong> installationphase:• <strong>1130</strong> <strong>Computing</strong> System — contains a comprehensivedescription of <strong>the</strong> <strong>1130</strong> System and a briefdescription of each component.• <strong>1130</strong> Disk Monitor System — discusses <strong>the</strong><strong>1130</strong> Monitor in general and leads into <strong>the</strong> moredetailed material of <strong>the</strong> next three sections.• Job Management — covers those features of<strong>the</strong> Monitor that help you manage <strong>the</strong> job, or unit ofwork.• Disk Management — describes <strong>the</strong> layout ofdisk storage, how you may use it, and how to get<strong>the</strong> most out of it.


Section Subsections Page01 00 00 04• Core Storage Management — outlines <strong>the</strong>facilities <strong>the</strong> Monitor gives you to manage corestorage with <strong>the</strong> LOCAL, SOCAL and LINK overlaysystems.• FORTRAN — General and Commercial —covers many aspects of FORTRAN that are of interestto all users, but with special emphasis on <strong>the</strong>needs of commercial programmers. Use of <strong>the</strong>Commercial Subroutine Package, arithmetic considerations,and core-saving tips are among <strong>the</strong> majortopics covered.• Sorting with Your <strong>1130</strong> — describes <strong>the</strong> sortingprocess and some alternate approaches.• Use of <strong>the</strong> Disk for <strong>Data</strong> Storage — describes<strong>the</strong> way data is situated on <strong>the</strong> disk, and stressesefficiency.• Disk <strong>Data</strong> Files — Organization and <strong>Processing</strong>— continues <strong>the</strong> previous topic, discussing <strong>the</strong>various file organization techniques and how <strong>the</strong>processing sequence affects <strong>the</strong> choice of organiation.• Improving Your System — Performance —covers performance and how it is affected by (1) <strong>the</strong>Monitor, (2) <strong>the</strong> programmer, and (3) <strong>the</strong> <strong>1130</strong>itself. Three case studies are presented to illustratevarious approaches to improving throughputrates and run times.


Section Subsections Page02 00 00 01CONTENTSSection 01: Reader's GuideSection 02: Table of ContentsSection 05: Preinstallation PlanningSection Contents 05.00.00Introduction 05.01.00General Planning 05.10.00Application and Conversion Planning 05.20.00Programming Planning 05.30.00Section 10: Documenting CurrentApplicationsSection Contents 10.00.00Introduction 10.01.00Documentation of Manual Systems 10.10.00Documentation of Punched CardSystems 10.20.00Accounting Controls 10.30.00Survey Questionnaires 10.40.00Billing 10.40.10Accounts Receivable 10.40.20Sales Analysis 10.40.30Inventory 10.40.40Accounts Payable 10.40.50Payroll 10.40.60Manual System Documentation Example-Payroll 10.50.00Introduction 10.50.01Job Description 10.50.10Survey Form 10.50.20Sample Documents 10.50.30Systems Flowchart 10.50.40Section 15: Some Preliminary Questionsand Answers Regarding<strong>Data</strong> StorageSection Contents 15.00.00Introduction 15.01.00<strong>Data</strong> -- On Disk or Cards? 15.10.00General Considerations 15.10.01Flexibility in Order of <strong>Processing</strong> 15.10.10Jobs Involving More than One File 15.10.20Frequency of Changes to Your File 15.10.30Need for Inquiry into Your File 15.10.40Size of Your <strong>Data</strong> File 15.10.50Your Backup Requirements 15.10.60Record Size 15.10.70O<strong>the</strong>r Considerations 15.10.80Summary 15.10.90How to Safeguard Your Disk <strong>Data</strong>Files 15.20.00Introduction 15.20.01Know Your <strong>Data</strong> 15.20.10Know What Can Happen to Your <strong>Data</strong> .... 15.20.20Design an Accident-InsensitiveSystem 15.20.30Detect Errors Before They DoDamage 15.20.40Plan Modest-Size, ModularPrograms 15.20.50Always Back Up Your Disk Files witha Duplicate Copy 15.20.60Provide Tested and DocumentedRecovery Procedures 15.20.70Section 20: <strong>1130</strong> Application DesignSection Contents 20.00.00Introduction 20.01.00Accounting Controls 20.10.00Review of Accounting ControlPrinciples 20.10.10More Specific Suggestions forDocument and Accounting Controls 20.10.20Form Design 20.20.00<strong>1130</strong> Considerations 20.20.10Form Design Principles 20.20.20Card Design 20.30.00<strong>1130</strong> Considerations 20.30.10Card Design Principles 20.30.20Design of Disk <strong>Data</strong> Files 20.40.00Introduction 20.40.01<strong>Data</strong> 20.40.10Field Size 20.40.20<strong>Data</strong> Sequence 20.40.30File Organization 20.40.40Record Format and Blocking 20.40.50File <strong>Processing</strong> 20.40.60File Control 20.40.70Payroll Example 20.50.00Narrative 20.50.10Card Forms and Console KeyboardInput 20.50.20Console Printer and Line PrinterForms for Output 20.50.30Disk Record Formats 20.50.40System Flowchart 20.50.50Language Selection 20.60.00Introduction 20.60.01Programming Languages 20.60.10


Section Subsections Page02 00 00 02Application Programs 20.60.20Which Programming Language orApplication Program Should YouUse? 20.60.30Section 25: Program DevelopmentSection Contents 25.00.00Introduction 25.01.00Programming and DocumentationStandards 25.10.00Program Change Authorization 25.20.00Programming Aids 25.30.00Documenting Variable Usage 25.30.10Modular Programming 25.30.20Programming Examples 25.40.00Introduction 25.40.01Example 1: File Creation 25.40.10Example 2: Add Name to <strong>the</strong> File 25.40.20Example 3: Changes to <strong>the</strong> File 25.40.30Example 4: Calculations andPayroll Register 25.40.40Example 5: Check Writing 25.40.50Example 6: Check Register 25.40. 60Example 7: 941 Report 25.40.70Section 30: Testing EffectivelySection Contents 30.00.00Introduction 30.01.00Testing Strategy 30.10.00Testing Tactics 30.20.00Testing Hints 30.30.00Summary 30.40.00Section 35: Program DocumentationSection Contents 35.00.00Introduction 35.01.00Installation Manuals 35.10.00Program Information Manual 35.10.10Operation Manual 35.10.20Documentation Examples 35.20.00Payroll System -- ProgramInformation Manual 35.20.10Payroll System -- OperationManual 35.20.20Section 40: ConversionSection Contents 40.00.00Introduction 40.01.00Planning for Conversion 40.10.00Preparing for Conversion 40.20.00Conversion Methods 40.30.00Section 45: <strong>1130</strong> <strong>Computing</strong> SystemSection Contents 45.00.00Introduction 45.01.00The 1131 CPU 45.05.00Console Printer and Keyboard 45.05.10<strong>Data</strong> Switches 45.05.20Console Display Lamps 45.05.30Disk Storage 45.10.00Printers 45.15.00Card Readers and Punches 45.20.00Paper Tape Readers and Punches 45.25.00Plotter 45.30.00Graphic Display 45.35.00Optical Readers 45.40.00Storage Access Channel 45.45.00Teleprocessing 45.50.00The <strong>1130</strong> Configurator 45.55.00Section 50: <strong>1130</strong> Disk Monitor SystemGeneral 50.01.00Section 55: The Monitor - Job ManagementSection Contents 55.00.00Introduction 55.01.00Job and Subjob 55.10.00Stacked Jobs or <strong>the</strong> Input Stream 55.20.00Disk Cartridge ID Checking 55.30.00Section 60: The Monitor - Disk ManagementSection Contents 60.00.00Introduction 60.01.00Disk Storage Layout 60.10.00Introduction 60.10.01Cylinder 0 60.10.10<strong>IBM</strong> Systems Area 60.10.20Working Storage (WS) 60.10.30User Area (UA) 60.10.40Fixed Area (FX) 60.10.50Summary 60.10.60Increasing <strong>the</strong> Amount of Space Availableto <strong>the</strong> User 60.20.00Introduction 60.20.01How Much Room Do I Have 9 60.20.10How Can I Make More SpaceAvailable 9 60.20.20Summary 60.20.30The Disk Utility Program 60.30.00Introduction 60.30.01Format of Material on <strong>the</strong> Disk 60.30.10The Most Commonly Used DUPFunctions 60.30.20Special Options -- Multiple Disk<strong>1130</strong> Users 60.30.30Section 65: The Monitor-Core Storage ManagementSection Contents 65.00.00Introduction 65.01.00


Section Subsections Page02 00 00 04General90.30.01 Some Case Studies of PerformanceProductive Time That Cannot Be Improvements 90.40.00Improved by Hardware Changes 90.30.10 General 90.40.01Productive Time That Can Be Case I 90.40.10Improved by Hardware Changes 90.30.20 Case II 90.40.20Nonproductive Time That Can Be Case III 90.40.30Reduced by Hardware Changes 90.30.30 Summary 90.40.40


SectionSubsectionsPage0500 00 01Section 05: PREINSTALLATION PLANNINGCONTENTSIntroduction 05.01.00General Planning 05.10.00Application and Conversion Planning 05.20.00Programming Planning 05.30.00


Section Subsections Page05 01 00 01INTRODUCTIONNow that your <strong>1130</strong> computing system is on order,what should you do next? When <strong>the</strong> <strong>1130</strong> computingsystem was proposed, mention was made that itcould perform both scientific and commercial jobs.Some typical commercial jobs that may have beenconsidered at that time are:• Payroll (used as an example later in <strong>the</strong>manual) and labor distribution• Accounts receivable• Accounts payable• Sales analysis• Inventory controlPlanning <strong>the</strong> use of <strong>the</strong> <strong>1130</strong> for specific applicationssuch as <strong>the</strong> above leads to o<strong>the</strong>r questions thatneed answers. How will <strong>the</strong> personnel for yourinstallation be selected? When will your applicationsbe implemented on <strong>the</strong> <strong>1130</strong>? How will thisjob of implementation be carried to completion? Ino<strong>the</strong>r words, you need a plan to carry out <strong>the</strong> installationof this new system.In answer to <strong>the</strong> first question, selection ofpersonnel, your <strong>IBM</strong> representative can supply youwith <strong>the</strong> Programmer's Aptitude Test, which willhelp you with some of <strong>the</strong> selection. (It may be thatyou will find <strong>the</strong>se people in your com pany, but youmay also find it necessary to hire someone outside.)The second and third questions, when will <strong>the</strong>implementation be done and how, may be answeredby your general (installation) plan, which is discussednext.


Section Subsections Page05 10 00 01GENERAL PLANNINGThe General Installation Plan is made up of twoitems: <strong>the</strong> Activity List (Figure 05.1) and <strong>the</strong>Activity Time Estimates (Figure 05.2)Your Activity List contains <strong>the</strong> major areas ofconcentration. It answers <strong>the</strong> questions "who" and"what". Your Activity Time Estimates answers<strong>the</strong> question "when". However, you still do nothave enough detail.Before going into more detail, go back and besure <strong>the</strong> two lists are fully understood.The Activity List contains <strong>the</strong> major installationactivities you need to complete a successful installation.The first two areas, Installation Organizationand Document Current Processes, although notend products, are most important. They are <strong>the</strong>foundation of your installation. The remainingitems on <strong>the</strong> list are:• Application Design• Operations Planning• Physical Planning• Conversion and Applications Complete• EvaluationThese will go smoothly if you ensure that <strong>the</strong>first two areas are complete.Your Activity Time Estimates makes this pointclear; notice that <strong>the</strong> early parts of your installationefforts, as mentioned previously, must all havestart dates. If your foundation is firm and onschedule, <strong>the</strong> later installation activities will alsobe smooth and on schedule.The later installation activities require moredetail. You may find <strong>the</strong>se items helpful in planningapplications o<strong>the</strong>r than those listed.GENERAL INSTALLATION PLANACTIVITY LISTInstallation OrganizationSelect personnel:ManagementProgrammersOperatorsEducationTrain managementTrain programmersTrain operatorsDocument Current ProcessesDocument current:Payroll and labor distribution proceduresAccounts receivable proceduresAccounts payable proceduresSales analysis proceduresInventory control proceduresDetermine <strong>1130</strong> documentation standardsSchedule application development and conversionManagement reviewApplication DesignApplication development:Payroll and labor distributionAccounts receivableAccounts payableSales analysisInventory controlConvert:Payroll filesAccounts receivable filesAccounts payable filesInventory filesOperation PlanningEstablish operating schedules and proceduresPhysical PlanningPhysical layoutManagement reviewOrder cablesPhysical alterationsSystem DeliveredConversion and Applications CompleteEntire Systems EvaluationFigure 05.1.


Section SubsectionsPage05 10 00 02APPLICATION DEVELOPMENT PLANACTIVITY TIME ESTIMATESActivityDurationinWeeks"Must"Start (S) orOriginal ScheduleDatesRevisedDates # 1RevisedDates # 2Finish (F)Date Start Finish Start Finish Start FinishFigure 05.2.


Section Subsections Page05 20 00 01APPLICATION AND CONVERSION PLANNINGFigure 05.3 is <strong>the</strong> Activity List for your ApplicationDevelopment Plan. This corresponds to <strong>the</strong>Activity List for your General Installation Plan.Similarly, Figure 05.4 is <strong>the</strong> Activity Time Estimatesfor your Application Development Plan.The Application Development Plan is, in general,composed of three items:1. Analysisa. Review of present systemb. Designing reports and card layoutsc. Flowcharting2. Evaluationa. Establishment of controlsb. Management review3. Programming of <strong>the</strong> applicationThe most important steps in this process are,once more, <strong>the</strong> earliest: Analysis and Evaluation.If <strong>the</strong>se items are complete, that is, if <strong>the</strong> individualsand groups involved agree with what youpropose, <strong>the</strong> remainder of <strong>the</strong> installation effortwill be relatively free from serious problems.Figures 05.5 and 05.6 are, respectively, <strong>the</strong>Activity List and Activity Time Estimates for <strong>the</strong>Conversion Plan.Notice that <strong>the</strong> discussion of <strong>the</strong> ApplicationDevelopment Plan so far has not included programming.The question, how will <strong>the</strong> programming becarried to completion, will be discussed next.


Section SubsectionsPage05 20 00 02APPLICATION DEVELOPMENT PLANACTIVITY LISTFor each application:Review present systemDesign reports and card layoutsFlowchartEstablish controlsManagement review*Program development*Fur<strong>the</strong>r detailFigure 05.3.APPLICATION DEVELOPMENT PLAN. ACTIVITY TIME ESTIMATES"Must" Original Schedule Revised RevisedDuration Start 151 or . Dates Dates # 1 Dates #2inFinish (FIActivity Weeks Date Start Finish Start Finish Start FinishPayroll and LaborDistributionReview present system 2.0Design reports andcard layouts 2.0Flowchart 1.5Establish controls 1.0Management review 1.0*Program development 7.0Accounts ReceivableReview present system 1.5Design reports andcard layouts 2.0Flowchart 1.0Establish controls 1.5Management review 1.0• Program development 5.0Accounts PayableReview present system .5Design reports andcard layouts 2.0Flowchart 1.0Establish controls .5Management review 1.0• Program development 6.0Sales AnalysisReview present system 1.0Design reports andcard layouts 1.0Flowchart 1.0Establish controls .5Management review 1.0• Program development 4.0Inventory ControlReview present system 1.0Design reports andcard layouts 2.0Flowchart 2.0Establish controls .5Management review 1.0• Program development 7.0• Fur<strong>the</strong>r detan (Figure 05.8)Figure 05.4.


Section Subsections Page05 20 00 03CONVERSION PLANACTIVITY LISTFor each application (where applicable):Develop conversion proceduresTrain conversion personnelConvert filesParallel or pilot runTrain o<strong>the</strong>r departmentsFigure 05. 5CONVERSION PLANACTIVITY TIME ESTIMATES"Must" Original Schedule Revised RevisedDuration Start (S) orDates Dates # 1 Dates # 2inFinish (F)Activity Weeks Date Start Finish Start Finish Start FinishDevelop data preparation andcard punching procedures 1.0Develop conversion controlplans and procedures 1.0Train conversion personnel 2.0Convert payroll and labordistribution files 2.0Convert accounts receivablefiles 4.0Convert accounts payable files 4.0Convert inventory files 6.0Train o<strong>the</strong>r departments --all applications 4.0Parallel runs -- payroll andlabor distribution 4.0Parallel runs -- accountsreceivable 4.0Parallel runs -- accountspayable 4.0Parallel runs -- inventorycontrol 2.0TOTAL CONVERSION 10.0 (F) - 4/8/68Figure 05.6.


Section Subsections Page05 30 00 02PROGRAM DEVELOPMENT PLANACTIVITY TIME ESTIMATES"Must" Original Schedule Revised RevisedDuration Start (5) or Dates* Dates # 1 * Dates #2'inFinish (F)Activity Weeks Date Start Finish Start Finish Start FinishDefine PAY 01 (Payroll) .1Flowchart PAY 01 .1Code PAY 01 .1Desk-check, list PAY 01 .1Test data PAY 01 .1Test PAY 01 .2Production test PAY 01 .2Complete documentation PAY 01 .2Define PAY 02 (Payroll) 1.0Flowchart PAY 02 .5Code PAY 02 .8Desk-check, list PAY 02 .2Test data PAY 02 .2Test PAY 02 1.0Production test PAY 02 1.0Complete documentation PAY 02 .5Define PAY 03 (Payroll) 5Flowchart PAY 03 .2Code PAY 03 .5Desk-check, list PAY 03 .1Test data PAY 03 .1Test PAY 03 .2Production test PAY 03 .2Complete documentation PAY 03 .2Define PAY 04 (Payroll) 5Flowchart PAY 04 .2Code PAY 04 .5Desk-check, list PAY 04 .1Test data PAY 04 .2Test PAY 04 .2Production test PAY 04 .2Complete documentation PAY 04 .2Define PAY 05 (Payroll) .5Flowchart PAY 05 .2Code PAY 05 .5Desk-check, list PAY 05 .1Test data PAY 05 .2Test PAY 05 .2Production test PAY 05 .2Complete documentation PAY 05 .2Define PAY 06 (Payroll) 5Flowchart PAY 06 .2Code PAY 06 .5Desk-check, list PAY 06 .1Test data PAY 06 .2Test PAY 06 .2Production test PAY 06 .2Complete documentation PAY 06 .2Define PAY 07 (Payroll) 5Flowchart PAY 07 .2Code PAY 07 .5Desk-check, fist PAY 07 .1Test data PAY 07 .2Test PAY 07 .2Production test PAY 07 .2Complete documentation PAY 07 .2*Only one start and finish date should be supplied for each program being developed.Figure 05. 8 (Sheet 1 of 5).


Section SubsectionsPage05 30 00 03PROGRAM DEVELOPMENT PLANACTIVITY TIME ESTIMATES"Must" Original Schedule Revised Rev'sedDuration Stant (S) or Dates• Dates # l• Dates # 2 •inFinish IF)Activity Weeks Date Stant Finish Start Finch Start FinishDefine PAY 08 (Payroll) .5Flowchart PAY 08 .3Code PAY 08 .5Desk-check, list PAY 08 .1Test data PAY 08 .2Test PAY 08 .2Product test PAY 08 .2Complete documentation PAY 08 .1Define PLD 01 (Labor Dist.) .8Flowchart PLD 01 .5Code PLD 01 .5Desk-check, list PLD 01 .2Test data PLD 01 .3Test PLD 01 .5Production test PLD 01 .2Complete documentation PLD 01 .2Define PLD 02 (Labor Dist.) .5Flowchart PLD 02 .2Code PLD 02 .5Desk-check, list PLD 02 .1Test data PLD 02 .2Test PLD 02 .2Production test PLD 02 .2Complete documentation PLD 02 .2Define AR 01 (Accts Rec) .1Flowchart AR 01 .1Code AR 01 .1Desk-check, list AR 01 .1Test data AR 01 .1Test AR 01 .2Production test AR 01 .2Complete documentation AR 01 .2Define AR 02 (Accts Rec) .8Flowchart AR 02 .5Code AR 02 .5Desk-check, list AR 02 .2Test data AR 02 .3Test AR 02 .5Production test AR 02 .2Complete documentation AR 02 .2Define AR 03 (Accts Rec) 1.0Flowchart AR 03 1.0Code AR 03 .7Desk-check, list AR 03 .2Test data AR 03 .2Test AR 03 1.0Production test AR 03 1.0Complete documentation AR 03 .2Define AR 04 (Accts Red) .5Flowchart AR 04 .2Code AR 04 .4Desk-check, list AR 04 .1Test data AR 04 .1Test AR 04 .5Production test AR 04 .5Complete documentation AR 04 .2• Only one start and finish date should be supplied for each program being developed.Figure 05.8 (Sheet 2 of 5).


Section Subsections Page05 30 00 04PROGRAM DEVELOPMENT PLANACTIVITY TIME ESTIMATES"Must" Original Schedule Revised RevisedDuration Start (S) or Dates* Da es u 1' Dates # 2*inFinish (F)Activity Weeks Date Start Finish Start Finish Start FinishDefine AR 05 (Accts Rec)1.0Flowchart AR 05 1.0Code AR 05 .7Desk-check, list AR 05 .2Test data AR 05 .2Test AR 05 1.0Production test AR 05 1.0Complete documentation AR 05 .2Define AR 06 (Accts Rec) .5Flowchart AR 06 .5Code AR 06 .2Desk-check, list AR 06 .1Test data AR 06 .2Test AR 06 .4Production test AR 06 .4Complete documentation AR 06 .2Define AP 01 (Accts Pay.) .1Flowchart AP 01 .1Code AP 01 .1Desk-check, list AP 01 .1Test data AP 01 .1Test AP 01 .2Production test AP 01 .2Complete documentation AP 01 .2Define AP 02 (Accts Pay.)5Flowchart AP 02 3Code AP 02 .2Desk-check, list AP 02 .1Test data AP 02 .1Test AP 02 .2Production test AP 02 .2Complete documentation AP 02 .2Define AP 03 (Accts Pay.) .4Flowchart AP 03 .2Code AP 03 .2Desk-check, list AP 03 .1Test data AP 03 .1Test AP 03 .2Production test AP 03 .2Complete documentation AP 03 .2Define AP 04 (Accts Pay.) .5Flowchart AP 04 .4Code AP 04 .2Desk-check, list AP 04 .1Test data AP 04 .1Test AP 04 .2Production test AP 04 .2Complete documentation AP 04 .2Define AP 05 (Accts Pay.) .4Flowchart AP 05 .2Code AP 05 .2Desk-check, list AP 05 .1Test data AP 05 .1Test AP 05 .2Production test AP 05 .2Complete documentation AP 05 .2'Only one start and finish date should be supplied for each program being developed.Figure 05.8 (Sheet 3 of 5).


Section SubsectionsPage05 30 00 05PROGRAM DEVELOPMENT PLANACTIVITY TIME ESTIMATES"Must" Original Schedule Revised ReusedDuration Start (S) or Dates` Dates 4 1" Dates # 2"in Finish (F) IFActivity Weeks Date Start Finish Start Finish Start FinishDefine AP 06 (Accts Pay.) .5Flowchart AP 06 .3Code AP 06 .5Desk-check, list AP 06 .1Test data AP 06 .2Test AP 06 .4Production test AP 06 .2Complete documentation AP 06 .2Define AP 07 (Accts Pay.) .5Flowchart AP 07 .4Code AP 07 .5Desk-check, list AP 07 .1Test data AP 07 .1Test AP 07 .4Production test AP 07 .2Complete documentation AP 07 .2Define INV 01 (Inventory) .1Flowchart INV 01 .1Code INV 01 .1Desk-check, list INV 01 .1Test data INV 01 .1Test INV 01 .2Production test INV 01 .2Complete documentation INV 01 .2Define INV 02 (Inventory) .4Flowchart INV 02 .2Code INV 02 .2Desk-check, list INV 02 .1Test data INV 02 .1Test INV 02 .2Production test INV 02 .2Complete documentation INV 02 .2Define INV 03 (Inventory) .4Flowchart INV 03 .4Code INV 03 .4Desk-check, list INV 03 .1Test data INV 03 .1Test INV 03 .2Production test INV 03 .4Complete documentation INV 03 .2Define INV 04 (Inventory) 5Flowchart INV 04 .4Code INV 04 .4Desk-check, list INV 04 .1Test data INV 04 .1Test INV 04 .2Production test INV 04 .2Complete documentation INV 04 .2Define INV 05 (Inventory) 4Flowchart I N V 05 .2Code INV 05 .2Desk-check, list INV 05 .1Test data INV 05 .1Test INV 05 .1Production test INV 05 .2Complete documentation INV 05 .2• Only one start and finish date should be supplied for each program being developed.Figure 05. 8 (Sheet 4 of 5)•


Section Subsections Page05 30 00 06PROGRAM DEVELOPMENT PLANACTIVITY TIME ESTIMATES"Must" Original Schedule Revised RevisedDuration Start (S) or Dates* Dates # 1. Dates # 26inFinish (F)Activity Weeks Date Start Finish Start Finish Start FinishDefine INV 06 (Inventory) .4Flowchart INV 06 .2Code INV 06 .2Desk-check, list INV 06 .1Test data INV 06 .1Test INV 06 .1Production test INV 06 .2Complete documentation INV 06 .2Define SA 01 (Sales Anal.) .1Flowchart SA 01 .1Code SA 01 .1Desk-check, list SA 01 .1Test data SA 01 .1Test SA 01 .2Production test SA 01 .2Complete documentation SA 01 .2Define SA 02 (Sales Anal.) 1.0Flowchart SA 02 .5Code SA 02 1.0Desk-check, list SA 02 .1Test data SA 02 .1Test SA 02 .3Production test SA 02 .4Complete documentation SA 02 .2Total, application development 16.0*Only one start and finish date should be supplied for each program being developed.Figure 05.8 (Sheet 5 of 5).PERCENTAGE COMPLETEDActivityDefine programPayrollPAY01100PAY02100PAY03100Start 11/20Finish 2/3PAY04505 555<strong>All</strong>Payroll90A/R01100A/RStart 12/4Finish 2/3S<strong>All</strong>A/RSi ---5 S70<strong>All</strong>ApplicationsStart:11/20/67Finish:3/11/6840Document logic10010010050601005020Code1007040205Desk-check100105Prepare test data10010020303010Test100105Production testComplete documentation<strong>All</strong> activities above90 20 20 2085 49 33 155 5305031 35505 3---511010'Figure 05. 9. Program development -- progress chart


Section SubsectionsPage10 00 00 01Section 10: DOCUMENTING CURRENTAPPLICATIONSCONTENTSIntroduction 10.01.00Documentation of Manual Systems 10.10.00Documentation of Punched CardSystems 10.20.00Accounting Controls 10.30.00Survey Questionnaires 10.40.00Billing 10.40.10Accounts Receivable 10.40.20Sales Analysis 10.40.30Inventory 10.40.40Accounts Payable 10.40.50Payroll 10.40.60Manual System DocumentationExample - Payroll 10.50.00Introduction 10.50.01Job Description 10.50.10Survey Form 10.50.20Sample Documents 10.50.30Systems Flowchart of WeeklyProcedure 10.50.40


Section SubsectionsPage10 01 00 01INTRODUCTIONSince <strong>the</strong> cornerstone of your installation effort,planning, is now complete, <strong>the</strong> time to begin documentingis at hand.If you were going to remodel a building, it wouldbe very important to have <strong>the</strong> plans of <strong>the</strong> structureon which you would be working. You could, ofcourse, do <strong>the</strong> job without <strong>the</strong> plans, but much timewould be wasted in trial and error as you proceeded.The same situation exists when you are convertingan application to <strong>the</strong> <strong>1130</strong>. Proper documentationof <strong>the</strong> present system will guide you rapidly andefficiently into <strong>the</strong> new solution. Ra<strong>the</strong>r thanspending your time "rediscovering" <strong>the</strong> old procedures,you can spend it in improving <strong>the</strong>m.Depending on whe<strong>the</strong>r you are converting from amanual system or a punched card system, one of <strong>the</strong>following two subsections will help you plan thisphase of your preinstallation effort:Documentation of ManualSystems (10.10.00)Documentation of PunchedCard Systems (10.20.00)These introductory subsections are followed by adiscussion of <strong>the</strong> ways in which your current accountingcontrols can be documented (10.30.00).Questionnaires used for documenting manual systemsare <strong>the</strong>n illustrated (10.40.00).A payroll example, which is used also in latersections, is introduced in 10.50.00. This consistsof:Job descriptionSurvey formsSample documentsSystems flowchart


Section Subsections Page10 10 00 01DOCUMENTATION OF MANUAL SYSTEMSFollow <strong>the</strong>se steps if you currently do not usepunched card equipment, or if you are planning toput additional applications on <strong>the</strong> computer that arenot now mechanized:1. Ask questions <strong>about</strong> details of <strong>the</strong> job as it isbeing done now.2. Record <strong>the</strong> procedure by means of a flow -chart.3. Ga<strong>the</strong>r samples of all <strong>the</strong> documents beingused.Survey Notes. A set of questionnaires(10.40.00) is included that assists in surveying <strong>the</strong>most common data processing procedures: billing,accounts receivable, sales analysis, inventory,accounts payable, and payroll. No questionnairecan cover all <strong>the</strong> details of, for instance, all billingprocedures, but a start can be made that will leadyou to discover and analyze <strong>the</strong> unique elementsthat have to be accounted for in your own system.Before starting your survey with a questionnaire,review <strong>the</strong> questions and determine which ones youalready know <strong>the</strong> answers to, those you want tocheck out, and those you know are not applicable toyour company. Then add questions of your own.Where none of <strong>the</strong>se survey questionnaires areapplicable, record on plain paper <strong>the</strong> importantelements of <strong>the</strong> system, answering <strong>the</strong> questions"who", "what", "when", "why", and "how". Notice<strong>the</strong> amount of detail called for by <strong>the</strong> questionnaires,and get down to that level in your own surveys.You will often find that <strong>the</strong> people most familiarwith <strong>the</strong> details of <strong>the</strong> job do not see <strong>the</strong> forest for<strong>the</strong> trees, or --to use a more precise metaphor --<strong>the</strong>y think <strong>the</strong>y have been looking only at elms whensome of <strong>the</strong> trees have been maples. Whereverpossible, count <strong>the</strong> files yourself (rough counts areusually adequate), look at <strong>the</strong> completed (not <strong>the</strong>blank) documents, and talk to <strong>the</strong> man who actuallydoes <strong>the</strong> work, ra<strong>the</strong>r than taking someone else'sword for what he does.Flowcharts. As an understanding of <strong>the</strong> procedureis developed, you should draw flowcharts inwhich input/output documents are represented byone kind of block, processing or handling steps byano<strong>the</strong>r, and <strong>the</strong> flow of work by arrows, as shownin Figure 10.1.O<strong>the</strong>r symbols can be used for certain variationsof <strong>the</strong> basic symbols; <strong>the</strong>se are discussed ingreater detail in <strong>the</strong> <strong>IBM</strong> manual Flowcharting<strong>Techniques</strong> (C20 - 8152) and illustrated in <strong>the</strong> manualexamples in this section.Sample Documents. Samples of each documentused in <strong>the</strong> procedure should be ga<strong>the</strong>red. Wherepossible, filled-in documents should be picked up,as well as blank documents on which <strong>the</strong> peopleclosest to <strong>the</strong> work have made notes explaining how<strong>the</strong> documents are completed.In o<strong>the</strong>r words, you should have at least twosamples of each document in <strong>the</strong> system:1. A blank document. This should have <strong>the</strong>following information written on it:a. The volume of <strong>the</strong>se documents producedeach day, week, or month -- both maximumand average.b. Who produces <strong>the</strong>m.c. Where <strong>the</strong>y come from, and where <strong>the</strong>ygo, copy by copy.d. For each different kind of information, or"field", all possible varieties of informationthat can be entered. State howlong <strong>the</strong> field must or can be, and whe<strong>the</strong>rSymbolsFigure 10.1.ExamplePersonnelmastersheetPrepareEmployeeMaster PayrollCardsEmp ogeeMa terPayrollCardsVisuallyVerifyand File


Section SubsectionsPage10 10 00 02each individual "position" or character in<strong>the</strong> field is strictly numeric, is sometimesalphabetic, may be blank, may containspecial characters $., '*()=+-&/,or has any o<strong>the</strong>r restrictions on it.e. For each field, whe<strong>the</strong>r <strong>the</strong> informationin it has limits. For instance, a weeklysalary field could go up to $999.99 andstill consist of only five digits, but youmay want to pull out all of those that goabove $500.00 for special handling.f. For each field, its origin. If it has beencalculated, show <strong>the</strong> formula. If it camefrom ano<strong>the</strong>r document, state which one,and whe<strong>the</strong>r it has been altered in <strong>the</strong>process. Beware of fields that have <strong>the</strong>same name but are slightly different,such as date of receipt, date of entry,date of transcription, date of processing.2. At least one filled-in document. The filling -in should be done by <strong>the</strong> man who normally performs<strong>the</strong> job, and he or you should annotate <strong>the</strong>reasons for and restrictions on each step of hiswork. Make sure that all possible ways of filling in<strong>the</strong> document have been illustrated.Summary. When <strong>the</strong> documentation of manualsystems has been completed, you should have athand:1. Flowcharts2. Sample documents3. Survey notes, including:a. Complete lists of codesb. Current standardsc. Procedure descriptions, where <strong>the</strong> flowchartis not self-explanatoryd. Reasons for current methodse. Accounting control proceduresf. Any o<strong>the</strong>r facts <strong>the</strong>y may influence orcause restrictions on <strong>the</strong> way an applicationmay be designed.<strong>All</strong> <strong>the</strong>se survey notes should be cross-referencedto <strong>the</strong> flowcharts and sample documents.


Section Subsections Page10 20 00 01DOCUMENTATION OF PUNCHED CARD SYSTEMSFollow <strong>the</strong>se steps in documenting your presentpunched card applications:1. Make a list of all your control panels.2. Arrange <strong>the</strong> list by job step within application.For instance, a payroll application, like <strong>the</strong>one in 10.50.00, might consist of panels to perform<strong>the</strong> balancing of current earnings cards to timecards, matching current deductions cards to earningscards, preparing <strong>the</strong> deduction register, andall <strong>the</strong> remaining job steps.3. Obtain copies of all <strong>the</strong> reports that havebeen run using <strong>the</strong>se panels.4. Collect your current spacing charts and cardlayouts and make a checklist of <strong>the</strong>m. Use yourlist of control panels to make sure that you havega<strong>the</strong>red spacing charts and card layouts for all<strong>the</strong> operations. If not, put <strong>the</strong>m on your checklist,and ei<strong>the</strong>r find <strong>the</strong>m or get <strong>the</strong>m made up.5. Check your spacing charts against <strong>the</strong> currentlyrun copies of your reports, and bring yourspacing charts up to date. Mark <strong>the</strong>m on yourchecklist as <strong>the</strong>y are updated.6. Check your card layouts against your proceduresas you run <strong>the</strong>m. This will allow you to updateboth <strong>the</strong> card layouts and <strong>the</strong> written proceduresto conform with your current actual practice. Mark<strong>the</strong> card layouts on your checklist as <strong>the</strong>y are updated.7. Obtain a current schedule of jobs. Use yourlist of control panels to verify <strong>the</strong> schedule.Having finished <strong>the</strong>se steps, you should havecurrent and accurate copies of spacing charts andcard layouts. If you do not, your <strong>1130</strong> applicationdesign and program development will suffer, andyou will be forced to retrace your steps to get updatedfacts. The surveys (in 10.40.00) will ei<strong>the</strong>rverify <strong>the</strong> accuracy of your documentation or indicatediscrepancies that need to be checked fur<strong>the</strong>r.Next, since you have all <strong>the</strong> information at hand,you can develop <strong>the</strong> following items:1. Updated flowcharts of your applications2. Job descriptions3. Calculation descriptions and formulasThese items, if prepared thoroughly (and this isa very important "if'), can serve as <strong>the</strong> basis foryour entire <strong>1130</strong> application design effort.Summary. The important thing in documentingany procedure is that all <strong>the</strong> information be madeavailable to <strong>the</strong> programmer in concise, easilyunderstood form.You will find that <strong>the</strong>se documenting methodswill be very useful in analyzing all <strong>the</strong> proceduresin your business. By pinpointing bottlenecks, areasof duplication, etc. , <strong>the</strong>y can provide a means ofimproving those procedures that you do not plan toconvert immediately to <strong>the</strong> new system.Once a program has been completed for an application,<strong>the</strong> documentation will become a permanentrecord of <strong>the</strong> procedure. It can be used, forexample, as:1. A source of information for implementingfuture changes.2. An education device for familiarizing newoperators and management personnel with <strong>the</strong> procedures.3. A source of information for your auditors,who must be familiar with your procedures.Start documenting your present applications now.Once <strong>the</strong> application is documented, programmed,and operating on your new system, keep <strong>the</strong> documentationup to date. It will contribute toward anefficient and productive data processing installation.


Section SubsectionsPage10 30 00 01ACCOUNTING CONTROLSUnderstanding your present controls will help youdesign practical and effective controls for your newsystem.Control procedures can be documented in twoplaces:1. On your flowcharts, where, for instance,control tapes are balanced to accounting machinetotals.2. With <strong>the</strong> survey questionnaires or informalnarratives.For a discussion of various kinds of accountingcontrols that may appear in your system, refer tosection 20.10.00.


Section Subsections Page10 40 10 01SURVEY QUESTIONNAIRESSurvey Questionnaire - BillingPROCEDURES1. Bill before shipment or after?2. Reasons3. Is completion billing used?4. Optimum time from order to shipment5. Are shipments from stock? What percent?(a) Buy outside %(b)Manufacture? Drop Ship?6. Do you send confirmation of order to customer? When?7. Sold-to and ship-to information required on invoices? % of invoices?TERMS1. Standard by customer, variable by customer, or o<strong>the</strong>r2. Do salesmen have protected customers?3. Pricing flexible - changed to meet competition in field?4. How many must be acknowledged?5. Cash sales - volume and how handled?ITEM QUANTITIES1. Whole numbers, fractions, or decimals?2. Will you print quantity ordered, quantity shipped, back ordered?3. Largest quantity sold (include decimals)4. Unit of issuePRICES1. Standard, volume determines, customer class, variable? How many prices?2. Percent of billing lines with variable pricing daily


Section Subsections Page10 40 10 02Billing Questionnaire (cont'd)3. Variable pricing authorized by?4. Per CM, dz, gross, bd ft, o<strong>the</strong>r?5. Largest unit price6. Fractional pricesDISCOUNTS1. Line item only? Variable or standard?2. What governs discounts to customers?(a)(b)(c)(d)(e)(f)(g)CustomerType of merchandiseQuantity of merchandiseSalesman's quoted priceTotal of invoiceCombination of aboveO<strong>the</strong>r3. Group discounts4. Discounts on total invoice?(a)(b)Standard by customerVariable5. Should discount amount print on invoice?6. Chain discounts?(a)(b)(c)Line itemsGroupsInvoice totals7. Chain discount examples8. Terms or cash discount. Should it be calculated?


Section Subsections Page10 40 10 03Billing Questionnaire (contid)COSTING1. Standard, percent, o<strong>the</strong>r?2. Any lot or job costs?TAXES1. How many states?2. What % of items taxable?3. Are selected items on an invoice taxable?4. O<strong>the</strong>r taxes - excise, etc.5. Whole percents, fractional?FREIGHT1. Based upon weight? Volume? Explain2. Examples of computation3. Prepaid percent - collect percent4. Is freight cost known at billing time?5. At prebilling time?6. <strong>All</strong>owances - examples. How computed?7. Flat rates ?8. Minimums?9. Do items have standard weights?COMMISSIONS1. Paid on:(a)(b)(c)Gross profitGross invoiceVariable each line


Section SubsectionsPage10 40 10 06Billing Questionnaire (cont'd)ANALYSIS1. Time from receipt of order to billing of customer2. Number and jobs of people performing order writing and billing3. Type of machines and equipment presently being usedCONTROL AND EDITING INFORMATION1. What is <strong>the</strong> editing procedure for invoicing? Who is responsible for final approval of invoice?2. What controls are now established for accuracy?3. Do you have subsidiary branch locations?(a)(b)(c)If so, what accounting functions are <strong>the</strong>y performing?How many invoices is each branch preparing?Would it be more advantageous to centralize accounting operations, especially billing?


Section Subsections Page10 40 20 01Survey Questionnaire - Accounts ReceivablePROCEDURES: CASH1. List all cash credit posting media2. What discounts are offered? How are <strong>the</strong>y handled?3. Cash receipts and deposit slip prepared:(a)(b)SeparatelySimultaneously4. How often do payments include copy of invoice or statement or identification?5. What percentage of payments are nonstandard?6. What is policy on overpayments?7. Can cash be applied to oldest balance or must it be selective?8. What accounts are involved?9. Can distribution be made at cash posting time?10. How many ledger controls are carried?(a)(b)How are control groups determined?Illustrate divisions11. How often is a trial balance taken?(a)(b)Can trial balance be alternated by control?Could trial balance, aging, and customer purchasing analysis be prepared simultaneously?12. When are statements mailed?13. Attach samples of accounting (A/C) journal used, revised to include additional information you require.14. Volume and reasons for credit memos


Section SubsectionsPage10 40 20 02Accounts Receivable Questionnaire (cont'd)FORMS CONSIDERATIONS - STATEMENTS1. How many accounts in ledgers?(a)(b)(c)(d)Total activeTotal inactiveDoes total fluctuate or remain static?How are <strong>the</strong>y coded?2. Open item or balance forward?3. What percent of customers pay by:(a)(b)(c)Statement?Invoice?Time pay?4. How many statements mailed?(a)(b)(c)(d)TotalWeeklyMonthlyAre <strong>the</strong>y mailed to all accounts?5. If time pay is allowed, explain circumstances.6. Do statements show:(a)(b)(c)(d)<strong>All</strong> transactions for <strong>the</strong> month?Open items only?Aged balances only?Aged transactions?7. Any objection to aged balances only, with no reference?8. What description shows on statement?


Section Subsections Page10 40 20 03Accounts Receivable Questionnaire (contyd)9. Daily inquiries into customer records?10. Extent of bad debts11. Attach a sample statement, complete with various postings.LEDGER RECORDS1. What description is shown on ledgers?2. Credit limit on each card?3. Purchases to date? Is this desirable?4. Is aging by invoice? Oldest dollar amount?5. Attach a sample card, complete with typical postings.CREDIT REFERENCE1. Does credit department refer to ledgers? How often?2. Is a credit record o<strong>the</strong>r than ledger kept? If so, attach a sample.3. When does an account become delinquent?4. How are delinquents followed?5. Do you suspend credit buying of delinquent accounts? If so, how is it restored?6. Are accounts aged?(a)(b)(c)What breakdowns?When?How often?ANALYSIS1. Number of people involved2. Type of equipment involved


Section Subsections Page10 40 30 01Survey Questionnaire - Sales Analysis1. Information required by:(a)(b)(c)(d)(e)CustomerItemAreaSalesmanClass of trade2. What reports should management be receiving that <strong>the</strong>y are not now getting?3. Report information(a) What information is required on each report?(1) What records or registers are used to substantiate reports?■(2) What can be added to present reports to make <strong>the</strong>m more meaningful?(b) Who receives each report?(c) By what priorities are reports prepared?(d) Are cost analysis reports generated?(1) How often?(2) To whom?(3) What information?(4) By what classification?(e) Are gross reports prepared?(1) By what classification?(f) Are comparative sales analysis reports generated?(1) What period are <strong>the</strong> results based on?(g) Are salesman commission statements prepared?(1) How many salesmen?


Section Subsections Page10 40 30 02Sales Analysis Questionnaire (cont'd)4. Control information(a) What are controls and editing procedures for above reports?5. What is present cost to derive <strong>the</strong>se reports?


Section Subsections Page10 40 40 01Survey Questionnaire - Inventory1. What percentage of inventory items account for:(a)(b)(c)High activity?Medium activity?Low activity?2. Does <strong>the</strong> present coding structure have any real significance, such as block code, significant digit, etc. ?(a)(b)Give exampleAre bin locations assigned in sequence by part number?3. How many transactions are <strong>the</strong>re of each type?(a)(b)(c)Receipts and returnsIssuesMiscellaneous4. Are standard or economic order quantities used? If so, how are <strong>the</strong>y determined?(a) Do you order by vendor group or as required?5. Does <strong>the</strong> inventory record reflect planned requirements, such as:(a)(b)(c)(d)(e)(f)(g)On-hand balanceOn-order balanceReserved balanceAvailable balanceMinimum balanceUsage data, etc.Maximum balance6. What inventory costing method is used?(a)(b)AverageLast in, first out (LIFO)


Section Subsections Page10 40 40 02Inventory Questionnaire (cont'd)(c)(d)First in, first out (FIFO)Standard7. What is <strong>the</strong> frequency of inventory cost changes? What is <strong>the</strong> frequency of inventory sales pricechanges?(a)(b)How often are price changes of finished goods made?Are <strong>the</strong>y made by product line or by item?8. If partial shipments are made, what is <strong>the</strong> procedure for handling <strong>the</strong>m?9. Is <strong>the</strong>re a back-order problem? If so, how is it controlled?(a)(b)What percentage of orders have items back-ordered, substituted or canceled?How much $ volume do you lose?10. How and when is a physical inventory taken? By whom?11. What controls are set up and maintained on <strong>the</strong> inventory system?12. What is <strong>the</strong> cost of inventory maintenance?13. What are <strong>the</strong> present costs of keeping inventory records?14. What are <strong>the</strong> types of inventory records and reports?(a)(b)(c)Do <strong>the</strong>y result in a stock status summary report?How often are inventory reports prepared?Who receives <strong>the</strong>m?15. What is <strong>the</strong> origin and layout of source documents and what controls are used?16. How often are inquiries made into inventory records? What are <strong>the</strong>ir nature? Who makes <strong>the</strong>m?17. How are present inventory recordkeeping functions correlated with purchasing, billing, sales,manufacturing, etc. ?


Section Subsections Page10 40 40 03Inventory Questionnaire (cont'd)18. What comparative information do you need?(a)(b)(c)(d)Month-to-dateYear-to-dateSame period last yearPercent of comparisons19. Where must current inventory records be physically located?


Section Subsections Page10 40 50 01Survey Questionnaire - Accounts PayableREPORT INFORMATION1. Is a cash requirement register being prepared?(a)(b)What is <strong>the</strong> average daily cash requirement to meet payables?How often is this register prepared?2. Are amounts being distributed and charged to job orders and expense accounts?(a) What is <strong>the</strong> procedure for each of <strong>the</strong> above?(1) Number of open job orders(2) Number of expense accounts(b) Are departments budgeted?(1) How often are budgets depleted and how often are analysis reports submitted?CONTROLS AND EDITING PROCEDURES1. How are payable accounts reconciled?2. Who is responsible for editing before releasing checks, and what is <strong>the</strong> procedure?3. How often are payable accounts reviewed?4. What controls are in effect?PURCHASES1. Number of vendors active and inactive. What are criteria for active?2. Are orders placed verbally, by requisition, by purchase order, or o<strong>the</strong>r?3. Is blanket order placed for staggered shipments?4. How are incoming goods accounted for?5. How are partial shipments handled?6. What method is used to notify Accounts Payable regarding overs, shorts, or damaged goods?


Section Subsections Page10 40 50 02Accounts Payable Questionnaire (cont'd)7. Are purchase orders (P. 0. 's) coded by Accounting when written?(a) If not, when and how are codes assigned?INCOMING INVOICES1. Is an invoice register maintained? If not, how are invoices controlled?2. Pay by statement?(a) Is early-pay discount given?3. When is liability recognized?(a) Receipt of goods(h) Receipt of invoice4. Are invoices matched to P. O. 's?5. Are invoices received from same vendor with different discount dates? How are <strong>the</strong>y handled?6. Are any invoices paid before arrival of goods?7. Can one invoice be charged to two or more accounts?PROCEDURE1. Is a voucher system presently in use? Ledger system? O<strong>the</strong>r?2. How are invoices or vouchers filed to ensure that discounts will be taken?3. Are incoming invoices numbered consecutively?(a)(b)Upon receipt?O<strong>the</strong>r?CHECK WRITING1. How many banks are checks drawn against?2. If more than one, can <strong>the</strong> bank be determined before <strong>the</strong> voucher is opened?3. Are checks prenumbered?4. What accounting (A/C) distribution is required? Attach sample.


Section Subsections Page10 40 50 03Accounts Payable Questionnaire (cont'd)5. How often are checks written?6. What is present form of checks, voucher, and remittance advice? Attach sample..7. Are discounts computed at check-writing time? If not, when?8. Is a check register required?9. Are certain checks written daily? If so, estimate number.DISTRIBUTION1. Which accounts receive greatest number of distributions?2. How many income and expense accounts are kept? How many divisions are used?3. How many controlling accounts? Identify each.4. What department or person is responsible for A/C distribution of invoice?5. Is apron or rubber stamp used?6. What percent of invoices contain items chargeable to different income and expense accounts?7. Is distribution made directly from invoice? At checkwriting time?8. How much detail in distribution record?9. How many items o<strong>the</strong>r than invoices (e. g. , journal vouchers) are distributed each month?10. What is cutoff date?11. When is trial balance secured?12. How is trial balance secured ?MISCELLANEOUS1. Is obligation record required?2. Is purchase journal available? How prepared?3. Is vendor control card required?4. Total purchases-to-date by vendor required?5. Do you, or will you, use group processing method?6. Do you, or will you, use balance-forward method?7. Are expenditures compared against budget?


Section SubsectionsPage10 40 60 01Survey Questionnaire - Payroll1. How is time figured?(a)(b)(c)(d)(e)Tenths of hoursHundredths of hoursHours and minutesO<strong>the</strong>r (nearest half or quarter hour)Incentive or price rates2. What is overtime?(a)(b)(c)Over 40 hoursOver 8 hoursO<strong>the</strong>r3. How prevalent are rate changes? Temporary or permanent?(a)(b)(c)How many can a man have?When?Does job carry a rate?4. How many shifts are <strong>the</strong>re?(a)(b)What kind of bonus is <strong>the</strong>re?How is it calculated?5. What is employee turnover?6. What YTD information will appear on check stub?7. How many timekeepers?8. Are timeclocks used? Is time recorded in tenths or hundredths of hours?9. Is <strong>the</strong>re labor distribution?(a)(b)By job? Department? Operation? Machine?Is average labor cost used?


Section Subsections Page10 40 60 02Payroll Questionnaire (cont'd)(c)(d)Actual labor cost?How is overtime handled?PREPARATION DATA1. What are pay periods?2. When does pay period close?3. What is paying date? Preparation time?4. How are employees paid?(a)(b)Check, cash?Is envelope used?5. How many copies of journals?6. Any objection to <strong>the</strong> use of spot carbon on check?7. Should check amount be protected?8. Is check signer used?9. Do you write payroll checks on more than one bank?10. How and when are vacation checks written?11. How are advances handled?12. How are terminations handled?13. How is sick pay handled?14. How is holiday pay handled?INCENTIVES, SHIFTS, ETC.1. How many shifts?2. What is incentive formula?3. Are rates for various jobs known by employees?4. How often is it necessary to pay "make-up" pay?5. List indirect labor categories


Section SubsectionsPage10 40 60 03Payroll Questionnaire (cont'd)6. Are efficiency standards established?(a)(b)By machine?By employee?DEDUCTIONS1. Voluntary 1234562. Involuntary 7891011123. Average deduction amount(a) Voluntary 123456(b) Involuntary 7891011124. Percentage of activity(a) Voluntary 123456(b) Involuntary 789101112


Section Subsections Page10 40 60 04Payroll Questionnaire (cont'd)5. Largest month total ($)(a) Voluntary(b)Involuntary6. List <strong>the</strong> posting media for eachof <strong>the</strong> above7. What reports must be furnished?1234567891011121234567891011121234567891011128. How are salesmen paid?(a)(b)Salary or standard commissionExplain o<strong>the</strong>r


Section SubsectionsPage10 40 60 05Payroll Questionnaire (cont'd)9. Reports (payroll and labor distribution)(a)(b)Form (sequence of information)Content (size of fields, number of classifications)(c)(d)Frequency (Presently? With <strong>IBM</strong> approach to application?)Distribution10. Schedule requirements(a)(b)(c)(d)(e)Length of pay periodWhen are source documents available for processing?When does pay period close?How soon after pay period closes must checks be available?How long does it take for changes to clear through <strong>the</strong> personnel department?11. Reporting(a)(b)Who reports payroll source data? Employees? Timekeeper? Foreman?What degree of control does <strong>the</strong> accounting department have over <strong>the</strong> people who report data?12. Management requirements(a)(b)Who gets <strong>the</strong> reports?What would <strong>the</strong>y like that <strong>the</strong>ir present system doesn't give <strong>the</strong>m?13. Miscellaneous(a)(b)(c)In what states do you pay payroll?What special deduction considerations are <strong>the</strong>re?Is state or city income tax deducted?


Section Subsections Page10 50 I 01 01MANUAL SYSTEM DOCUMENTATION EXAMPLE --PAYROLLIntroductionThis example of a typical manual application consistsof <strong>the</strong> following items:Job Description -- PayrollSurvey Form - filled in for payrollSamples of all documents being usedFlowchart -- all of payroll procedureNotice that <strong>the</strong> illustrations are shown in <strong>the</strong>order in which <strong>the</strong>y are ordinarily developed. After<strong>the</strong> job description is written, <strong>the</strong> survey is completed,and all sample documents are ga<strong>the</strong>red.Then <strong>the</strong> procedure that produces <strong>the</strong> reports, using<strong>the</strong> information from <strong>the</strong> survey form, is drawn inflowchart form.


Section SubsectionsPage10 50 10 01Job DescriptionA job description is not always necessary, but isuseful when new people are introduced to an application,or when presentations are made for managementor visitors. Both of <strong>the</strong>se situations occurfrequently during <strong>the</strong> conversion process.The following is a typical job description. Notethat it is short, describes objectives, and providesa summary of <strong>the</strong> procedure.Payroll -- Job DescriptionThe objectives of <strong>the</strong> payroll procedure are:1. To record earnings, deductions, and taxes for historical purposes.2. To provide state and federal governments, unions, and o<strong>the</strong>r agencies with a record ofmoneys collected for <strong>the</strong>m.3. To furnish employees with a personal record of earnings, deductions, and taxes.4. To write and reconcile paychecks.5. To provide entries to labor statistics and miscellaneous reports.To accomplish <strong>the</strong> above, current period time cards, containing hours worked, are matched to <strong>the</strong>production report, and gross earnings are calculated and posted to <strong>the</strong> payroll register. Then, deductionsand net pay are calculated and posted to <strong>the</strong> payroll register, paychecks are written, andearnings records are updated. Miscellaneous reports are produced from earnings records, andquarter-to-date information is prepared for 941 and W-2 forms preparation.


Section Subsections Page10 50 20 01Survey FormThe following is a typical completed survey form.Note that <strong>the</strong> answers are short and descriptive.The survey form is always necessary.


Section SubsectionsPage10 50 20 02FACTORY PAYROLLSurvey Questionnaire - Payroll1. How is time figured?(a)(b)(c)(d)(e)Tenths of hoursHundredths of hours XHours and minutesO<strong>the</strong>r (nearest half or quarter hour)Incentive or price rates2. What is overtime?(a)(b)(c)Over 40 hours XOver 8 hours XO<strong>the</strong>r3. How prevalent are rate changes? 6emporaror permanent?(a))(1kVi:How many can a man have? irntkiNU lo(b)(c)When? Ck,A. ColAThAtt nntik lIVtAAket-e-v-.6Does job carry a rate?4. How many shifts are <strong>the</strong>re? 1 1 m, 3) ,La,(a)(b)What kind of bonus is <strong>the</strong>re? .2,vu1, 5 '.0(, O(,h..6L aHow is it calculated?6,93a ut f, ImAta o. )14-Q-5. What is employee turnover? 0Z5 C/ cruutAia, tOxvut66. What YTD information will appear on check stub?7. How many timekeepers? 0-e,Akt8. Are timeclocks used? Is time recorded in tenths or hundredths of hours? ae_AAiciuu9. Is <strong>the</strong>re labor distribution?AL1'(a)(b)By job? Department Operation? Machine?Is average labor cost used?


Section Subsections Page10 50 20 03(c)(d)Actual labor cost? -U-How is overtime handled?PREPARATION DATA1. What are pay periods? 1A4seitat2. When does pay period close? to-L,aue.w.4.3. What is paying date?, Pr paratift time? t <strong>the</strong>t4. How are employees paid?(a)(b)cash?Is envelope used? \..)0&LA L. ra.„,,,t5. How many copies of journals?6. Any objection to <strong>the</strong> use of spot carbon on check? 1Ler-7. Should check amount be protected? yl..)8. Is check signer used?9. Do you write payroll checks on more than one bank?10. How and when are vacation checks written? (),(A_AL-k_ )14a-kiz, dut,42,4te,„ vat,-,)11. How are advances handled?12. How are terminations handled? 09-k-4-‘)'-A-4 fie- /4--Na cub -ytibu,DR-et, Antu.41_,N-kh.(),A,\-tsz- 12 . .x.A 'IA 1:)&laiLek 0-6 "9-Aattil-A-P., S.-lahm lo-156-4-,13. How is sick pay handled? 1\.t..-14. How is holiday pay handled? ai it)--CtAL.. yuth ) ._,0-4VIA.L.ek.. A,41 )-A-k--akZ. P-Akit. kaut ket12-)u.INCENTIVES, SHIFTS, ETC.1. How many shifts? ■ 1 Z ) /5-'1, ) kt 12,k-CLAA2. What is incentive formula? (1, e-k ,:k_Lt..c..„,c.,,6t, e-t-\,vokl.foctrc-ei., C-u-C1/4, iLittx.wW-cb3. Are rates for various jobs known by employees? Li;4. How often is it necessary to pay "make-up" pay? --)15-u-t.A,5. List indirect labor categories Q,..1.:::,,..-G,L1 (ate ,1/4,..tveriA.k_ CAkklz-A:)W-cikk-AAA-4-4-L 1 )..0.-A,-I_Ly 1 /1 eLLA., -WaSAA:AAI.viEtAft).--1M_L-vvt-reA414.)


Section SubsectionsPage10 50 20 046. Are efficiency standards established?(a) By machine? X(b) By employee?DEDUCTIONS1. Voluntary 1 Wx7tei-‘,432 0-ka-NẠre-V5.- 0.45-NAIS:OpALe-x.43 kt-e-t-h)4562. Involuntary 781AA3Le-‘4., ctu-e..491011 4-e-t_at123. Average deduction amount(a) Voluntary 1 ii) t.tifs 0.71703456(b) Involuntary 7 11.508 15.c-C910 * erti11 t I, Die124. Percentage of activity(a) Voluntary 1 2.52 903 Z456(b) Involuntary 7 'ICI8 j c9 ►510 lop11 45012


Section Subsections Page10 50 20 055. Largest month total ($)(a) Voluntary(b)Involuntary1 L l t9t-t"23 11, i Sc4567 ft -3)tO8 5tcr9 4 I CSCIC * t■--t-tr11 $ 1) C-1r126. List <strong>the</strong> posting media for eachof <strong>the</strong> above456789101112toz, oAs_t_A-6). )ut,u,ckz,ke,4 Wei uut,i2!)etcLa,.AR_ 4t Ciku.kilk ) e_tu_t)a),ft WaJ iQ_bak-EciaLuaQ5Lc6_ &TA,7. What reports must be furnished?8. How are salesmen paid?(a)(b)Salary or standard commissionExplain o<strong>the</strong>r


Section SubsectionsPage10 50 20 069. Reports (payroll and labor distribution)(a) Form (sequence of information) Ckt naxti3OnkAnit-(b)Content (size of fields, number of classifications)"1/1144-vAAw C Ika M A-.4 3 titam..kim..L ( x A x x , x Pei e tis,c} cxx.)) ()t(x) Jo A:x.4,-A, (xxxA,x) can, E-tt-t-CY,i)Ih'k hit atu“, -401, G< )0


Section Subsections Page10 50 20 07ADMINISTRATIVE PAYROLLSurvey Questionnaire - Payroll1. How is time figured?(a)(b)(c)(d)(e)Tenths of hours XHundredths of hoursHours and minutesO<strong>the</strong>r (nearest half or quarter hour)Incentive or price rates2. What is overtime?(a)(b)(c)Over 40 hoursOver 8 hoursO<strong>the</strong>r3. How prevalent are rate changes? r permanent?(a)(b)(c)How many can a man have? lilkolf,/ sAAAAAA.0 ) fum, /tooWhen? A)CM:1-12.A1--Does job carry a rate? QtAine _.4. How many shifts are <strong>the</strong>re? 6"vuL(a)(b)What kind of bonus is <strong>the</strong>re? 1,49-wp.-How is it calculated?5. What is employee turnover? 16 b/0ov-tk, Oat6. What YTD information will appear on check stub? nke-vtiz_.7. How many timekeepers? OnAL16 I8. Are timeclocks used 9 s time recorded in tenths or hundredths of hours?•A9. Is <strong>the</strong>re labor distribution?(a)(b)By job? Operation? Machine?Is average labor cost used?


Section Subsections Page10 50 20 08(c)(d)Actual labor cost? tiff-4.How is overtime handled?PREPARATION DATA1. What are pay periods?2. When does pay period close? CotNit 6- 0, 3Ast.m.ke,3. What is paying date ?A Preparation time? 5 Mkevw-cicLi4)4. How are employees paid?(a)(hecl -.) cash?(b)Is envelope used? UC1)5. How many copies of journals? &VA-6. Any objection to <strong>the</strong> use of spot carbon on check? -11—7. Should check amount be protected?8. Is check signer used? *4)9. Do you write payroll checks on more than one bank? LVAL,10. How and when are vacation checks written? GL-tOVEL-6-1,4.) \)o-c.t.iam-IA)11. How are advances handled? 11/4.{s-vu.,12. How are terminations handl d? Qs -6 cuta (Lc13. How is sick pay handled?.emu),Ai)Le..a,14. How is holiday pay handled? C L-6-",-01-11INCENTIVES, SHIFTS, ETC.1. How many shifts?2. What is incentive formula?3. Are rates for various jobs known by employees?4. How often is it necessary to pay "make-up" pay?5. List indirect labor categories to_k, IWASat....1/4116.. TA-64-4-A4


Section Subsections Page10 50 20 096. Are efficiency standards established? 1,tr-(a) By machine?(b) By employee?DEDUCTIONS1. Voluntary 12 Urvikt/b-aL-E'-t-ui34 Aa-c-tt,562. Involuntary 7 112-eta)va 912.terwt..e- .194,101112Dili-c-t_thiLlrir3. Average deduction amount(a) Voluntary 1 lc,o-o--2 Cy-3 1,(2719--4 14.56(b) Involuntary 7 97 40 , IM'8 It I4. Percentage of activity(a) Voluntary 1 ,?5-2 03 35--4 I t56(b) Involuntary 7 lb-Cr8 09 ibDr101112101112


Section SubsectionsPage10 50 20 105. Largest month total ($)(a) Voluntary 12f(44 1tzt.y, iaiLzAtno-e)p._Q_.6.te_Azre-34 3 5056(b) Involuntary 7 1 S?)0-tr-tr8 1, rr9 4 3 ) c--D1011126. List <strong>the</strong> posting media for eachof <strong>the</strong> above1 Co-utc\z,-Q, IZR_234567 Oak elta A,QA&Q,891 01112eusL._it01, )kk-k-abIcjkx„ .V. ) el-Q-a2;itc.24.1-116h-ea ,tAriA,7. What reports must be furnished?8. How are salesmen paid?(a)(b)Salary or standard commissionExplain o<strong>the</strong>r


Section Subsections Page10 50 20 119. Reports (payroll and labor distribution)(a)(b)Form (sequence of information)Content (size of fields, number of classifications)(c)(d)Frequency (Presently? With <strong>IBM</strong> approach to application?)Distribution10. Schedule requirements(a)Length of pay period(b) When are source documents available or processing? klU 4When does pay period close? (.1.c.(c) -1(d)(e)How soon after pay period closes must checks be available?AHow long does it take for changes to clear through <strong>the</strong> personnel department? E-LQ11. Reporting(a)Who reports payroll source data? Employees? Timekeeper? Foreman? \-0k -4-ts-,(b) What degree of control does <strong>the</strong> accounting department have over <strong>the</strong> people who report data?Crv,-C-tv12. Management requirements %1(a)(b)Who gets <strong>the</strong> reports? (L-C∎-(.7L \ et ttWhat would <strong>the</strong>y like that <strong>the</strong>ir present system doesn't give <strong>the</strong>m? (10-C'e2 (44-4;tAtbleievs.13. Miscellaneous " c'..-k-v1 of 1,(L at_14_ et-,)(a) In what states do you pay payroll?C • Ct• 9-vt t" .4.1=YIlb) What special deduction considerations are <strong>the</strong>re? 1,LeLtk-t_k_(c) Is state or city income tax deducted? (--\


Section SubsectionsPage10 50 30 01SAMPLE DOCUMENTSThe following is a typical collection of sampledocuments. Note that both blank and completeddocuments are present.It is always necessary to collect all documents,both completed and blank, for your current system.


Section Subsections Page10 50 30 02ORDER NO. CUSTOMER SQ. FT. NO. OUT S. U. RUN NO. PIECESMAN HRS. MAN HRS. RUNTOTAL SET TOTALTOTALSCLOCKNO.NAME START STOP REG. BONUS MACH. DATEPIECESMACHHRSSQ.HRS.SET UPALLOWRUNMAKEUPTOTALBONUSForm 101


Section SubsectionsPage10 50 30 03ORDER NO. CUSTOMER SO. FT. NO. OUT S. U.MAN HRS. MAN HRS. RUNRUN NO. PIECESTOTAL SET TOTAL/034 J7A/ES W-4 8000 8000 0 /7/3 345 7 9CLOCKNO.TOTALSNAME START STOP REG. BONUS MACH. 1/3 DATE /-//-6840/1 R.BEDAN 8;00 4.'00 8 0PIECES 34-5MACHHRSSO. 8000 HRS. 9SET UP 2 ALLOW eRUNMAKEUP 0TOTAL 9 BONUS 0Form 101


Section Subsections Page10 50 30 04MASTER EMPLOYEE TIME SHEETNAME MON. TUES. WED. THURS. FRI. SAT. TOTALSBROOALONA, J.CLOY, C.CRASWELT, F.DAZDEL, M.DORLIN, J.FOLLORE, R.MI ROHOSE, V.PANUNI, D.WALLJAMS, J.


Section SubsectionsPage10 50 30 05MASTER EMPLOYEE TIME SHEETNAME MON. TUES. WED. THURS. FRI. SAT. TOTALSBROOALONA, J. e 8 8 8 a 40CLOY, C. 8 9 e e 9 42CRASWELT, F. 8 8%2 8 8 9 42DAZDEL, M. /0 /0 /0 8 8 46DORLIN, J. 8 8 8 8 8 40FOLLORE, R. 9 8 8 9 3i/z 4.31/2MI ROHOSE, V. 8 8 8 8 8 40PANUNI, D. 8 8 8 8 8 40WALLJAMS, J. 8 8 8 0 0 24


Section Subsections Page10 50 30 06TIME SHEETNAMETWO WEEKS ENDINGSTART—STOP LUNCH HOURS WORKEDSAT.MON.TUES.WED.THUR.FRI.TOTAL FIRST WEEKSAT.MON.TUES.WED.THUR.FRI.TOTAL SECON D WEEKTOTAL HOURSCHECKED BYAPPROVED BY


Section Subsections Page10 50 30 07TIME SHEETNAME


Section Subsections Page10 50 30 08PRODUCTION & LABOR REPORTWeek Ending Rate Machine ShiftDeM Pas,MSq. Ft.Standard HoursDelay TimeNon %Set-up Run Total Rated Eff <strong>All</strong>ow. M/UNonRateActualOvertimeHoursActualDollarsMTWTFirThisWeekPrey.Wks.ToDateAOr.PRODUCTION & LABOR REPORTWeek Ending Rate Machine ShiftDotMPcs.MSq. Ft.Standard Hours Non %Actual Hours BonusDelay Time NonRateSet-up Run Total Rated Elf Mach. Man Hours <strong>All</strong>ow. M/U BonusActualOvertimeHoursActualDollarsMTWTFSS„)„,z,,,,-,z,zzz,/i//////////,///////444/,////////// /ThisWeekPrey.Wks.ToDoteAar


Section Subsections Page10 50 30 09PRODUCTION & LABOR REPORTWeek Ending/-/3- 61Rate Machine shift3.50 7 3DcM Pcs.MSq. Ft.Standard HoursNon ' %Actual HoursBonusDelay TimeSot.0 p Run Total Rated Eff Mach. Man 1 Hour s <strong>All</strong> ow. M/UNonBR= iActl ActualOvertime/- 9 510 m /0/26 X 0 6.0 70 /0 2d 4.a. /4.2 .5 40 x/ . i /276.1-10 726 T /3502 ,6 4i I Z 4 .6 j 93 6.8 /3.8! - .6 . 5- - - /1292.1-1/ 43/ w 9526 4 0 5.1 6.1 1.2 85 3.8 /0. 9 1 - 1.0 /. 2 - -Actua lDollars/130./-/Z 5-01 T 9972 .3 6.9 72 .1 90 6.9 /52 X 2 .3 .4- - /.¢ 792./-/3 63/ F /2703 .5 70 75 ..f 94 ZO /6.1 - .5" .6 - - 997ss_week 15129 3.4 32.5 33-:9 4./ 1 90 3e.5 70.j /• 7 3.4 3„8 - 2.2 568 7Pre" /0750/ 76 63. 3 70.9 2/ 19 67 35 /43.0 50 73 6.9 /.7 3.7 /2701ToDate /63330 /40 93.8 /86.1 /3.2 ip 99.8 2/31 6.7 /0.7 /0.7 /.7 5.9 /8395ZPRODUCTION & LABOR REPORTWeek Ending Rate Machine Shift/-/3-68 3.75- 8 /DateR es.mSqḞt. ri• .Standard HoursActual HoursNon%BonusDelay TimeSet-up Run Total Rd Rated Eff mod,. Man Hoursu<strong>All</strong>ow. M/UNonRateBonusActualOvertimeHoursActualDollars/-9 606 M /3706 .6 6.5 7/ .9 19 ' 6.0 /5.7 .7 .6 .7 .9 /375./-10 908 T 2/206 .6 6.6 72 .8 90 6.6 /42 - .6 .7 - /0 /696./-// 671 w /4/93 40 3:9 4.9 1/ 16 3.-9 /3.9 .9 /0 Z 1 - - /377/-/2 43/ T 9/20 ,6 6.9 75- .5 94 4.9 /41,2 .9 .6 .1 - - 98/./-/3 /260 F 28'661 .7 7/ 7? .2 91 7/ /5.- / - .7 .7 - - 2790.Ssd' .1This6890 ! 3.5 330 36.5- 3.5 9/ 132.5 741 2.5 3.5- 3.7 - 49 6P/46iI IPrey.Wks. /70483 1 73 41/ 7112 4.6 94 44.3 03./ X/ 73 77 /0 3.2 /7503Date 23-72931 /0.8 /NJ ///. 9 1/ 93 91'1 2242 76 /ad' a0 /0 _X/ 25649Z ,


Section Subsections Page10 50 30 10NAMECLOCK NO. TAX CLASSIFICATIONYEARREMARKSADDRESS ABE DEPT Ill DEPT. 121CONSTANT DEDUCTIONSB. B. NO. TEL. NO. QUANTA EARNED EGA a SI W" TAX CITY REASONOTHER TAXCITIZENSHIP FIRST DORIC AVAILABLYEARCODE REASON CODEsm,,,,, ,E WA CATASTROPHE CEMPLOYMENT RECOR .. DATE RATE PER' SECOND CONTINUED CA DISCIPLINE 0UNAVAILABITITYOUT REASON I THIRD LABOR DISPUTE LO SELF EMPLW SEINtfFOURTH1244 TOTALPERIODENDINGHOURSRATEEARNIN GS DEDUCTIONS AMOUNTR O. RATEWITH HTAO,L,0 1H0OVERTIME OTHERS TOTAL F. 0. A. B.A B C 0 OF CHECKCHECKNUMBER12345678910111213OTR.14151617181920212223242526QTR.W-2


Section Subsections Page10 50 30 11NAMECLOCK NO. TAX CLASSIFICATIONY E A R /966 ._Ilf-gREMARKS/-1738 e / A.600 -4.-.9.9.0.z20.00ce/ADDRESS AGE DEPT II/ DEPT. (2)CONSTANT DEDUCTIONSS. B. NO. TEL. NO.ouART . R AR ED OA 6 SI TA ogrL.RTA REASON CODE REASO CODEFIRSTADAK AVAILABLECITIZENSHIPYEARSICKNESS WA CATASTROPHE CEMPLOYMENT RECORD it DATE RATE PER SECONDIN OUT REASON LABOR DISPUTE LD SELF EY PL . 0 SEtiFOURTHI-TOTAL1234678PERIODENDING0070302/ZS5A/3/25HOURSRATEEARNINGS DEDUCTIONS AMOUNTREG. RATE OVERTIME OTHERS TOTAL F. 0. A B. "7:r G A B C D 0 F CHECK4,* Qt /965 none/.57023/soma76923x0923702370237023323/060323/323/RN323/323//250028500/2500/2500/2500/2500/2500769a00769767767769769/551505/535-5 -ezi/336150120002000200020002000woo5685.591710579/550E35579/556055379/5CHECKNUMBER61666220625365146406567609910111213OTR 59/53 .400R001415161718192021222324loti,/z2qiss/6.5/206/36//77///sr ale Amos /7667692376925/093497073702370:5769:57692363176/323/323/----——/700/75002//60/2990/2990/2990/HO/2990769769/49.370769769767769531600/5313-01/535SOB/C?Ma20620Moo20002000zoaa200561155712371/5759626105659626604559626WI/602611970/07 37115736/74/52526QTR. 68162 -o- g30i9e 3/1.0.8 MAO /1510 300.0.1 114-41-ac 2,000 02/75W-2


Section Subsections Page10 50 30 14PERIODENDING HOURS RATE REG RATETHE CONTAINER COMPANYCOLUMBUS, WASH.OVERTIME OTHERS TOTALEARN N OSPLEASE DETACHA- CITY TAXD. INS.WITHHOLDINGTAXA C 0 AMOUNTOF CHECKDEDUCTIONSC- NIETO.0- CREDIT UNIONKEEP THIS STUB FOR YOUR RECORDN? 8123THE CONTAINER COMPANYN? 8123COLUMBUS, WASH.123 -4567PAYTO THEORDER OFTO THE NATIONAL BANK & TRUST CO.OF COLUMBUS, WASH.THE CONTAINER COMPANYPAYROLL ACCOUNT NO.2••W-12-2-68 40 4 50 180 00 0 00 0 00 180 00 7 82 36 00 6 00 00 129 18PERIODENDINGHOURSRATETHE CONTAINER COMPANYCOLUMBUS, WASH.REG RATE OVERTIME OTHERS TOTALEARNIN GBPLEASE DETACHA- CITY TAX C- MI80.WITHHOLDINGTAX A B C 0 AMOUNTOF CHECKDEDUCTIONS13- INS. 0- CREDIT UNIONKEEP THIS BTUS FOR YOUR RECORDN? 81231 11111.I 1■THE CONTAINER COMPANYCOLUMBUS, WASH2-2-68PAYTO THEORDER OF6t4 Jc5,*„.zaTO THE NATIONAL BANK & TRUST CO.OF COLUMBUS, WASH.THE CONTAINER COMPANYPAYROLL ACCOUNT NO. 2W-1


Section SubsectionsPage10 50 40 01SYSTEMS FLOWCHART OF WEEKLY PROCEDUREFactoryAdministrativeEmployeeHoursBalanceTimeCardsProductioniReportTotalEmployeeTimeSheetsTotalHoursV VMasterEmployeeTimeSheet----____-------MachineActivityReportEmployeeTimeSheets---.____.-------BalanceFileTimeCardsMasterEmployeeTimeSheet------------Post toLabor andProductionReportCalculateGrossPayPost toPayrollRegister1


Section Subsections Page10 50 40 02EmployeeEarningsFilevCalculateStatutoryDeductions,Voluntary Deductionsand Net PayEmployeeEarningsRecords--------------Write Check,Check Stub, andPost to PayrollRegister andEarnings Records........ -/-"----Tote EachColumn ofPayrollRegisterTotal EarningsRecordsiCrossfootforBalanceFilePayrollRegisterEarningsRecordsDistributeChecksPost EarningsRecords toGeneralLedgeFileGeneralLedgerFileE mployeeEarningsRecordsf


Section SubsectionsPage10 50 40 03Quarterly ProcedureEmployeeEarningsFileTotal EachColumn ofEarningsRecordsOriginal941A1st Copy 941ASent to LocalGovernment2nd Copy941APost toEarningsRecords941AFileCalculateYear-to-DateTotalsPrior 941APost toEarningsRecordsCrossfootforBalanceCrossfootEarningsRecordsSummarizeEarnings, FICA,and FIT to941Type941A/941and94IA Originalsto FederalGovernmentIst Copy941WriteW2(year-end only)DistributeCopies asPrescribedby Law


Section SubsectionsPage15 00 00 01Section 15: SOME PRELIMINARY QUESTIONSAND ANSWERS REGARDING DATASTORAGECONTENTSIntroduction 15.01.00<strong>Data</strong> — on Disk or Cards? 15.10.00General Considerations 15.10.01Flexibility in Order of <strong>Processing</strong> 15.10.10Jobs Involving More Than One File.... 15.10.20Frequency of Changes to Your File.... 15.10.30Need for Inquiry into Your File 15.10.40Size of Your <strong>Data</strong> File 15.10.50Your Backup Requirements 15. 10.60Record Size 15.10. 70O<strong>the</strong>r Considerations 15.10. 80Summary 15.10.90How to Safeguard Your Disk <strong>Data</strong> Files .. 15.20.00Introduction 15.20.01Know Your <strong>Data</strong> 15.20.10Know What Can Happen to Your <strong>Data</strong> 15.20.20Design an Accident-Insensitive System 15.20.30Detect Errors Before They DoDamage 15.20.40Plan Modest-Size, Modular Programs 15. 20. 50Always Back Up Your Disk Files with aDuplicate Copy 15. 20. 60Provide Tested and DocumentedRecovery Procedures 15.20.70


Section SubsectionsPage15 01 00 01INTRODUCTIONOften, before starting <strong>the</strong> design of a system, <strong>the</strong>reare many questions regarding data storage. Two of<strong>the</strong> more important are:• Should I use cards or disks for my data files?• How can I safeguard my data?This chapter answers <strong>the</strong>se questions on a broadbasis, leaving <strong>the</strong> details for later chapters.


Section Subsections Page15 10 01 01DATA — ON DISK OR CARDS?General ConsiderationsBefore you get too far into systems design and programming,you should ask a basic question <strong>about</strong>every data file you intend to use: Should it be storedon a disk cartridge or in <strong>the</strong> form of a card deck?The disk can be an extremely powerful mediumfor <strong>the</strong> storage of your data; however, it can be misused.Some data, if placed on <strong>the</strong> disk, will causeyour programmer more work in <strong>the</strong> long run than ifa simple deck-of-cards approach had been used.In order to lessen <strong>the</strong> possibility of such a situation,let us answer some of <strong>the</strong> questions that arisewhen choosing a storage medium for data.


Section SubsectionsPage15 1 0 10 01Flexibility In Order of <strong>Processing</strong>In general, your data, whe<strong>the</strong>r on disk or cards,contains some master information (names, rates,balances, etc. ) in some order or sequence. Whenyou process this information, <strong>the</strong> transactions maybe in ano<strong>the</strong>r sequence. For example, your employeemaster data file may be in man-numbersequence, while your employee detail cards aregrouped by department.In this situation, <strong>the</strong> disk has a distinct advantageover cards, since it is a direct access storage device(DASD). This means you can directly accessany record, regardless of which record was processedlast or which record is next. This allows youcomplete flexibility in <strong>the</strong> order of processing.With your master data on cards, you have to sortboth <strong>the</strong> master deck and <strong>the</strong> transaction deck into<strong>the</strong> same order, collate <strong>the</strong>m toge<strong>the</strong>r, and <strong>the</strong>nprocess your data in <strong>the</strong> desired sequence.Although <strong>the</strong> disk has a great advantage overcards, its importance varies with <strong>the</strong> size of <strong>the</strong>file. Are you talking <strong>about</strong> 100 employees and a10-minute sorting job, or 1,000 employees and 45minutes of card handling? In later sections someo<strong>the</strong>r considerations will be discussed that may tip<strong>the</strong> scales in favor of cards.


Section Subsections Page15 10 20 01Jobs Involving More Than One FileThe previous topic can be expanded to considermore than one file, which is <strong>the</strong> case in many commercialapplications. For example, many payrollapplications involve a job cost file as well as <strong>the</strong>employee payroll file. If an employee detail cardsays that man 607 worked 12.5 hours on job 70976,you can find man 607 in <strong>the</strong> employee file and add12.5 hours to his weekly total, <strong>the</strong>n find job number70976 in <strong>the</strong> job cost file and add 12.5 hours to itsweekly total, all within one program. A card filesystem would involve:1. Sorting and collating <strong>the</strong> employee detailcards with <strong>the</strong> employee master cards2. Running <strong>the</strong> program and punching a new updatedemployee master card3. Separating <strong>the</strong> cards4. Sorting and collating <strong>the</strong> employee detailcards again, this time with <strong>the</strong> job master cards5. Running a different program, this one punchinga new master job cost card6. Separating <strong>the</strong> cards and filing <strong>the</strong>mDepending on <strong>the</strong> number of cards involved, thiscould be a cumbersome process. But again, someof <strong>the</strong> considerations discussed later may overridethis one.


Section Subsections Page15 10 30 01Frequency of Changes to Your FileA third consideration in deciding on card or disk is<strong>the</strong> number of times <strong>the</strong> data in your file must bechanged, and <strong>the</strong> difficulty involved in changing it.Some amount of change is inevitable; in a payrollfile every week will bring raises, new dependents,changes of address, etc. These minor changes donot present much of a problem.With a card file it is very easy; a new card ispunched and substituted for <strong>the</strong> old card.With a disk file it is somewhat more involved;you must run a change program, which reads <strong>the</strong>new data from cards or <strong>the</strong> console keyboard andinserts it in <strong>the</strong> proper place on <strong>the</strong> disk record.Major changes are ano<strong>the</strong>r matter — new employees,a new group of items in stock, etc. Hereagain, changing a card file is relatively easy, andchanging a disk file more difficult. It is a simplematter to punch a master card for new item number1705 and place it in <strong>the</strong> card deck between items1704 and 1800. It is not quite so simple on <strong>the</strong> disk,where items 1704 and 1800 are probably adjacent,with no space between <strong>the</strong>m. Ei<strong>the</strong>r item 1705 isplaced in a special area, with a special routine tofind it, or <strong>the</strong> entire file is reorganized, movingevery item after 1704 "down" one position to makeroom for item 1705. This also would require aspecial program or routine.If a data file is subject to frequent major (organizational)changes, you may add a few points to <strong>the</strong>"card file" side of <strong>the</strong> balance. These points mayor may not be enough to swing <strong>the</strong> decision, since<strong>the</strong> first two items (processing order and numberof files) are more important, and generally favordisk use.Remember, when you change a field on a card,you still have <strong>the</strong> old card; when you change somedata on <strong>the</strong> disk (usually an entire record at a time:),<strong>the</strong> old information is gone. Therefore, specialcare must be taken to ensure that disk changes areprocessed correctly <strong>the</strong> first time.


Section Subsections Page15 10 40 01Need for Inquiry into Your FileIn some cases it is very desirable to be able to lookinto your data file to get certain current information:number of pieces of item number 170653 on hand,year-to-date gross pay of man number 8091, etc.When your data file is in <strong>the</strong> form of a card deck,this is relatively easy, since you merely find <strong>the</strong>right card, interpret it, and read <strong>the</strong> data, much asyou would any o<strong>the</strong>r hard-copy file — index cards,ledger sheets, etc.People are accustomed to doing this, and oftenresist <strong>the</strong> change to disk-resident files because <strong>the</strong>ycannot "see" what is on <strong>the</strong> disk.It is true that data written on <strong>the</strong> disk is somewhatless tangible than if it were on a deck of cards, butthis is not <strong>the</strong> overriding consideration it is madeout to be.True, it takes a special program or subprogramto read and display data on a disk, so demands forinquiry do add a few points to <strong>the</strong> "card file" side of<strong>the</strong> balance. However, a properly designed systemcan lessen or eliminate <strong>the</strong>se points entirely.If someone within your company requires, say,<strong>the</strong> current status of inventory, it may be possibleto replace his 5" x 8" card file with a daily listingof stock status, or a weekly listing with daily updates.If he insists on immediate response toup-to-<strong>the</strong>-minute status, <strong>the</strong> programmer can buildan inquiry subroutine into every program, calling itonly when some console switch is turned on:CALL DATSW(7, MM)GO TO (9,10), MM9 CALL INQUR10 CONTINUEThese four statements would be placed at a convenientspot in every program. Whenever anyonewanted to inquire of <strong>the</strong> disk, he would turn onswitch 7. The subroutine INQUR would soon becalled, and probably request that a part number beentered through <strong>the</strong> console keyboard. After <strong>the</strong>requested information was looked up on <strong>the</strong> disk, itwould be typed on <strong>the</strong> console printer, and <strong>the</strong> mainprogram would continue.Large demands for inquiry sometimes make <strong>the</strong>use of card files appear more attractive than diskfiles, but proper systems design can often reduce<strong>the</strong> importance of this factor. In fact, inquiry intoa disk-resident file is often a plus factor, since <strong>the</strong>data obtainedwould have an up-to-<strong>the</strong>-minute status.


Section SubsectionsPage15 10 50 01Size of Your <strong>Data</strong> Filedisk is sometimes not worth <strong>the</strong> extra effort, andvery large data files will not fit on <strong>the</strong> disk. MostThis item is hard to separate from some of <strong>the</strong> files fall somewhere in between, and some factoro<strong>the</strong>r considerations. However, all o<strong>the</strong>r things o<strong>the</strong>r than size will govern <strong>the</strong> final card or diskbeing equal, puffing very small data files on <strong>the</strong> decision.


Section Subsections Page15 10 60 01Your Backup RequirementsWhenever you work with files containing importantdata (payroll, accounting, etc. ), you should notignore <strong>the</strong> possibility of accidental destruction ofthis information. Many accidents can befall carddecks — card jams in <strong>the</strong> reader, floods, spiltcoffee, misplacement, etc. Because you can recoverfrom many of <strong>the</strong>se accidents by patching torncards, duplicating watersoaked cards, etc. , it isnot too common to find duplicate sets of mastercard files maintained.<strong>Data</strong> files kept on <strong>the</strong> disk cartridge are subjectto a similar list of accidents, but with a difference:it is often impossible to reconstruct <strong>the</strong> data afteran accident, unless you have planned for just suchan occurrence.Because of <strong>the</strong> need for preplanning, <strong>the</strong> matterof backup may be considered a disadvantage for <strong>the</strong>disk file. In actuality, it may be on <strong>the</strong> plus side,since it forces duplicate files.


Section SubsectionsPage15 10 70 01Record SizeBecause of <strong>the</strong> physical limitations inherent in apunched card (80 columns), it can be cumbersometo process long records that are kept in card form.Each record may require four or five cards, whichmust be identified and kept in order. On <strong>the</strong> o<strong>the</strong>rhand, disk records may be as long as 320 words (640characters). If long records are required, you havea few "plus" points for placing <strong>the</strong> data file on disk.


Section Subsections Page15 10 80 01O<strong>the</strong>r ConsiderationsIn addition to <strong>the</strong> factors noted previously, <strong>the</strong>re maybe o<strong>the</strong>rs of equal or greater importance — factorsthat may be completely unrelated to <strong>the</strong> particulardata file under study. Some typical factors are <strong>the</strong>storage cost of many cards versus one disk, management'swishes, and <strong>the</strong> desire to train programmersin disk techniques.


Section SubsectionsPage15 10 90 01SummaryThis section has briefly covered some of <strong>the</strong> diskvs-cardconsiderations and attempted to give generalguidelines for making this decision. It would beideal if <strong>the</strong>se factors could be presented in <strong>the</strong> formof a decision table, score sheet, or o<strong>the</strong>r device,but this is not possible. Lacking such a tool, youmust study each data file, mull over <strong>the</strong> pros andcons of disk or cards, and make your own decisions.Some companies (especially those installing <strong>the</strong>irfirst data processing system), realizing that <strong>the</strong>irfiles fall on <strong>the</strong> borderline, decide to start with carddata files. Their reasoning is correct: The systemmay be less sophisticated and require more machineand operator time, but it is easier to program, use,and understand. Later, if <strong>the</strong>y decide that a certainfile should be placed on <strong>the</strong> disk, it is relativelysimple to make <strong>the</strong> change. The bugs in <strong>the</strong> systemhave been ironed out, <strong>the</strong> programmers are moreexperienced and confident, and <strong>the</strong> general atmosphereis more conducive to such a step.


Section Subsections Page15 20 01 01HOW TO SAFEGUARD YOUR DISK DATA FILESIntroductionThis section is of particular interest to those using(or considering) <strong>the</strong> disk for storage of data files.Accidents will happen, and you must plan ahead tominimize <strong>the</strong>ir effect. This is especially true in<strong>the</strong> case of disk, where data is stored in <strong>the</strong> formof magnetized spots, recorded at extremely highdensities, and read/written by a precise mechanism.On <strong>the</strong> o<strong>the</strong>r hand, hard copy data is relativelyinsensitive to accidents. Punched cards can befolded, spindled, and mutilated (even torn, crumpled,splattered with coffee, etc. ) without disastrousresults. A few minutes (or hours) at <strong>the</strong>keypunch can remedy all but <strong>the</strong> most drastic cardmishaps. O<strong>the</strong>r paper documents (ledger book,index cards, forms and reports) are not toodifficult to duplicate or reconstruct if <strong>the</strong> originalis destroyed.The purpose of this section, however, is not todiscourage <strong>the</strong> use of <strong>the</strong> disk for data storage; usedproperly, <strong>the</strong> disk offers advantages that overshadow<strong>the</strong> potential hazards. If you follow <strong>the</strong>common-sense suggestions in this section, accidentscan become rare, improbable events — morea nuisance than a disaster.


Section SubsectionsPage15 20 10 0 1Know Your <strong>Data</strong>Before starting into a long discussion of how toprotect disk data, let us review <strong>the</strong> various typesof data fields in your disk records and determinewhich, if any, are worth protecting. Naturally,you don't want any of your data lost, but certainitems are more important than o<strong>the</strong>rs, since <strong>the</strong>yare much more difficult to replace.Take a typical payroll file, where <strong>the</strong>re is arecord for each employee:1. Employee number2. Name, address, city and state3. Indicators — marital status, sex, numberof dependents, etc.4. Pay rate5. Year-to-date dollar figures — gross,taxes, etc.6. Quarter-to-date dollar figures — gross,taxes, etc.7. Miscellaneous cumulative — days vacation,sick leave taken, etc.The first four items are comparatively static,seldom changing, but <strong>the</strong> latter three probablychange every pay period.If an accident occurs (you should assume <strong>the</strong>worst possible case), <strong>the</strong> entire record for everyemployee is lost. How would you reconstruct yourdata file? The first four items are easy — <strong>the</strong>latest information probably exists in <strong>the</strong> form ofa card deck and can simply be reloaded onto <strong>the</strong>disk. That is how it got <strong>the</strong>re in <strong>the</strong> first place.However, <strong>the</strong> last three items present a differentpicture — <strong>the</strong>y change each pay period. When youwrite <strong>the</strong> updated disk record, this week's total iswritten over last week's total, and last week'stotal disappears from <strong>the</strong> disk. Unless you takedefinite steps to save it before writing on top ofit, last week's total will completely cease to exist.Some disk data fields, <strong>the</strong>refore, are morecritical than o<strong>the</strong>rs — particularly those thatchange often, are modified on <strong>the</strong> basis of previousdata (for example, year-to-date gross), or arenot kept in duplicate copies.


Section Subsections Page15 20 20 01Know What Can Happen To Your <strong>Data</strong>Before you can go <strong>about</strong> safeguarding a disk datafile, you must know what you are safeguarding itagainst. Basically, <strong>the</strong>re are three generalclassifications of hazards:1. Physical hazards. Although <strong>the</strong> disk cartridgeis in a sturdy container, it is certainly notimmune to careless handling, loss, natural disaster,etc. The cartridge should be stored atmoderate temperatures, (between 60 and 90 degreesFahrenheit) and should not be placed on high shelvesor o<strong>the</strong>r precarious places. In general, commonsense prevails.2. Intentional modification. Payroll data ando<strong>the</strong>r confidential information should be kept ondisk cartridges dedicated to that use, and shouldbe kept in a secure place. As in <strong>the</strong> case ofphysical hazards, <strong>the</strong>re is very little else that canbe said <strong>about</strong> this sensitive area except thatcommon sense must be used.3. Accidental modification. Every programthat writes on <strong>the</strong> disk should be given very closescrutiny. Ask yourself: Is <strong>the</strong>re a chance thatwrong information could be written on my diskfile? Nine times out of ten <strong>the</strong> answer is yes. A/1you need is one mispunched card column, with <strong>the</strong>resulting wrong answers, and you have a diskrecord with erroneous data. If <strong>the</strong> data you areplacing on <strong>the</strong> disk is of a critical nature (as discussedin <strong>the</strong> preceding pages), you may haveproblems.Later sections will discuss some of <strong>the</strong> waysyou may avoid such accidental modification, andhow you may easily recover from <strong>the</strong>m. Some of<strong>the</strong> potential sources of such accidents are:1. Programming errors (program not completelydebugged, etc.)2. Errqrs in input data3. Mistakes by <strong>the</strong> <strong>1130</strong> operator (running aprogram twice, etc.)


Section SubsectionsPage15 20 30 01Design an Accident-Insensitive SystemThe safety of disk data should be a constant considerationwhen designing a system. "An ounce ofprevention is worth a pound of cure" — or, in dataprocessing terms, a few minutes spent in planning cansave many frantic hours or days in keypunching andcomputer reruns. An accident may never occur,but it would be foolhardy to ignore its possibility.By following a few basic guidelines, <strong>the</strong> systemmay be designed so as to be relatively insensitiveto accidents; no matter what may happen, recoveryis quick and straightforward.


Section Subsections Page15 20 40 01Detect Errors Before They Do DamageWhenever <strong>the</strong>re is any chance of erroneous databeing written on <strong>the</strong> disk, you should provide aseries of checks to minimize <strong>the</strong> damage. If <strong>the</strong>reis any possibility that input data cards contain baddata, <strong>the</strong>y should be checked. Your keypunchoperators should be familiar with <strong>the</strong> business, sothat <strong>the</strong>y can recognize outright mistakes on sourcedocuments. Programmers should be urged tobuild reasonableness checks into <strong>the</strong>ir programs.For example, a program that reads employeelabor cards should always check <strong>the</strong> number ofhours worked and, if <strong>the</strong> number is questionable,take appropriate action (such as type a messageand pause).Program results in <strong>the</strong> form of printed answersshould be spot-checked before <strong>the</strong> next processingphase. Most errors are easily spotted early in<strong>the</strong> game, provided someone is <strong>the</strong>re to look for<strong>the</strong>m.


Section SubsectionsPage15 20 50 01Plan Modest-Size, Modular ProgramsAt first thought, it would appear that <strong>the</strong> bestprogram is one that does as much as possible. Whyhave half a dozen small payroll programs when onecould do everything? Unfortunately, however, alarge program that does many things tends to compounderrors rapidly.Let us look at <strong>the</strong> typical payroll job steps foreach employee:1. Read employee's payroll labor card(s)2. Read his master data from disk3. Compute gross4. Compute deductions and net pay5. Compute all YTD and QTD totals6. Write his new master disk record7. Print payroll register8. Print paycheck9. Print check registerSuppose you wrote one very large program to doall nine steps and one of <strong>the</strong> cards for <strong>the</strong> 56th mansomehow got mixed in with <strong>the</strong> cards of <strong>the</strong> 108thman. Your programmer has done a good job oferror checking, so <strong>the</strong> <strong>1130</strong> types CARDS MIXEDUP and pauses. Youhave processed 107 employees— printed <strong>the</strong> register, written checks, updateddisk records, etc. — with one man (<strong>the</strong> 56th)completely wrong. How do you recover?Correct <strong>the</strong> cards and rerun from <strong>the</strong> beginning?No. Besides printing duplicate checks, that wouldcompute and write new YTD and QTD totals foreveryone and completely ruin your disk datarecords.Keep going and fix <strong>the</strong> 56th man later? Possibly,but how? This would require a special programto correct his now-erroneous disk record. It wouldalso require a handwritten paycheck, a handcorrection to <strong>the</strong> payroll register, handwrittentotals, and a lot of explaining to <strong>the</strong> accountingdepartment.Reprogram <strong>the</strong> entire system to be less accidentprone?Yes, but a little too late. It should neverhave been written to do so many things.This example represents an everyday occurrence.Programs are written this way and cause greatconsternation when <strong>the</strong> inevitable error in inputdata occurs — or when <strong>the</strong> operator enters <strong>the</strong>wrong week-ending date, or when <strong>the</strong> paper in <strong>the</strong>printer jams, etc.A properly planned payroll system, like <strong>the</strong>example used throughout <strong>the</strong> following chapters,would consist of four programs, not one:PAY16 • Read Input Cards• Check for ErrorsPAY04, Part 1 • Read Input Card• Find Man Number on MasterDisk File• Perform Calculations• Update Disk• Repeat Steps 1 - 4 for <strong>All</strong>EmployeesPAY04, Part 2 • When Part 1 Is Finished,Print Payroll Register Directlyfrom Master Disk FilePAY05 • Print Payroll Checks Directlyfrom Master Disk FilePAY06 • Print Check Register Directlyfrom Master Disk FileThe advantages of this plan are obvious:1. The input cards are checked before <strong>the</strong>yare used to modify <strong>the</strong> disk records.2. Payroll checks are printed after <strong>the</strong> payrollregister has been inspected for errors.


Section Subsections Page15 20 60 01Always Back Up Your Disk Files with a DuplicateCopyRegardless of how <strong>the</strong> processing system is designed,<strong>the</strong>re should be a duplicate copy of everydisk data file. If you have multiple disk drives,you can copy from one disk drive onto ano<strong>the</strong>r; ifyou have one drive, you must dump to cards. Thecopying (or dumping) should be on a regular basis,and should not be left to chance or done whenever<strong>the</strong>re is nothing else to do. Both copying and dumpingmay be done easily with <strong>the</strong> Disk Utility Program,as outlined in section 60.If your <strong>1130</strong> system has only one disk drive, it isimpossible to copy disks, and backup must be in <strong>the</strong>form of cards. Ei<strong>the</strong>r <strong>the</strong> DUP *DUMPDATA functionmay be used, or you may write your own dumpprogram. With large data files, both dumps take asignificant amount of time. For example, it takes<strong>about</strong> three hours to dump a 1000-sector data file.Because of <strong>the</strong> time involved, <strong>the</strong>re is a naturaltendency to avoid dumping such files. However, ananalysis of a typical situation shows this to be selfdefeating.Assume an 800-man employee file, contained in400 sectors. To dump it with a 1442, Model 6,takes <strong>about</strong> 60 minutes.The weekly processing sequence is as suggestedearlier:PAY16 Edit 30 min.PAY04 Calculations, Disk Update 90 min.and Payroll RegisterPAY05 Payroll Checks 60 min.PAY06 Check Register 30 min.For purposes of analysis, assume <strong>the</strong> worst possiblecase — namely, that somehow during PAY04<strong>the</strong> payroll data cartridge is completely destroyed.(No matter how improbable or infrequent you thinkthis might be, it can happen.) How do you recover ?If you dump <strong>the</strong> data file every week, you must:Reload <strong>the</strong> dumped deck 30 minutesRerun PAY16 and PAY04 2 hoursYou have completely recovered in 2-1/2 hours.If you dump every o<strong>the</strong>r week, and you again consider<strong>the</strong> worst case (your last dump was two weeksago), you must get <strong>the</strong> data cards from last week,and:Reload <strong>the</strong> dumped deck 30 minutesRerun PAY16 and PAY04 with 2 hourslast week's cardsRerun PAY16 and PAY04 with 2 hoursthis week's cardsIn 4-1/2 hours you have caught up to where you werebefore <strong>the</strong> accident.If it had been three weeks since your last dump,<strong>the</strong> reconstruction time would be 6-1/2 hours; fourweeks, 8-1/2 hours; five weeks, 10-1/2 hours; etc.Each week adds <strong>about</strong> 2 hours.These figures assume that you can immediatelylay your hands on <strong>the</strong> previous week's data cards in<strong>the</strong> proper order. If this is not so, <strong>the</strong>se timescould go up drastically. The figures also assumethat everything goes smoothly during <strong>the</strong> recoveryphases. This, however, is not a very safe assumption,since <strong>the</strong> operators will be rushed and unfamiliarwith <strong>the</strong> procedures.Without knowing <strong>the</strong> probability of such an accident,it is impossible to compute <strong>the</strong> optimum dumpfrequency. It is probable, however, that you willnot want to be in a 10-1/2-hour recovery position,no matter how slight <strong>the</strong> probability, just to save anhour a week and a few thousand cards.In this case, <strong>the</strong> best approach would seem to bea dump every week for <strong>the</strong> first few months of <strong>the</strong>installation, every o<strong>the</strong>r week after everything hasstabilized, and every third week if conditions seemto warrant it.


Section SubsectionsPage15 20 70 01Provide Tested and Documented RecoveryProceduresIt does little good to follow <strong>the</strong> previous advice ifyour recovery procedures have not been tested anddocumented. Usually, time is of <strong>the</strong> essence, and<strong>the</strong> operator should not have to study program listingsto determine what to do when accidents occur.This is inviting trouble and can turn a minor mistakeinto a disaster.If a program checks <strong>the</strong> input data for errors (asit certainly should), <strong>the</strong> error messages should beself-explanatory or be keyed to a document that explainsexactly what to do. For example, a wellwritten and well documented program will type amessage such as ERROR NO. 6 and pause, waitingfor <strong>the</strong> operator to take corrective action. The"run book", or "operation manual", should containa complete description of what happened and what todo <strong>about</strong> it. Figure 15.1 shows a typical error recoverysheet; Figure 15.2 is a blank copy of <strong>the</strong>same form.


Section Subsections Page15 20 70 02<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB P4Kec,Z. Z.PROGRAM NAME PAY .l'PROGRAMMER NAME JPMESSAGE TYPED:ERRoR2 MA-//14/1-./ %A 33PAUSE - DISPLAYED IN ACCUMULATOR1 1AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT /7 , AND:CLEARS TOTAL AHD GOES To ,FEA0 4 0ET,9/i_ C4,21)?/9.5.5- UM/A/G / T /5 THE- p/R*57- c.,9eo lc-OR /YEW MANDESCRIPTION OF WHAT IS WRONG.DE - 7,9/L cAet, A44A/ NUMBER L/J.A3 /5 LoW.Se 77./4/t/LAST c4/2.0, W/-//CH 1/4Z MA-1MM. /7 - Slioc/40 8'' EQUALOR HIGHERPROBABLE CAUSE:-nz/E 0E7/9/L CARD ■JUST RE -RD 15 /A/ THE- WPOAIG: PL ACE.IT bez0A/G5 EARL/ER /A/ THE DECK.RECOVERY PROCEDURES-,e-. M01/ 4..,7 0.0 7-- OA-- 5&'QIIE A/CC- C4205 '4AID CCWT/A(6-6.W/7 11 J08. HOLD C4 R0.5 eE AIOVEL) CIA/7 -/L. P.e0c7P-4.41IS RUN AGA/A/. ADJUS T CON7-,e0.! 7-077,4LS AT ENOQ, RUN,COMMENTS'A.-/4e6-. - cERT-4,/n/ THRT WHOEVER' .30,erE -o N 7,41ECA,E.'.0.5 KNOWS 777147 7-115}/ GOOFED!SCORESHEETDATE /2/2 3//5-INITIALS 34 /, JAI/Figure 15.1.


Section SubsectionsPage15 20 70 03<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOBPROGRAM NAMEPROGRAMMER NAMEMESSAGE TYPED:PAUSE — DISPLAYED IN ACCUMULATORAFTER PAUSE, CONTROL TRANSFERS TO STATEMENTDESCRIPTION OF WHAT IS WRONG•PROBABLE CAUSE:RECOVERY PROCEDURES.COMMENTS'SCORESHEETDATEINITIALSFigure 15. 2.


Section Subsections Page20 00 00 01Section 20: <strong>1130</strong> APPLICATION DESIGNCONTENTSIntroduction 20. 01.00Accounting Controls 20.10. 00Review of Accounting ControlPrinciples 20.10.10More Specific Suggestions for Documentand Accounting Controls 20.10.20Form Design 20.20. 00<strong>1130</strong> Considerations 20. 20. 10Form Design Principles 20 20 20Card Design 20.30. 00<strong>1130</strong> Considerations 20.30. 10Card Design Principles 20.30. 20Design of Disk <strong>Data</strong> Files 20 40 00Introduction 20. 40. 01<strong>Data</strong> 20 40 10Field Size 20.40.20<strong>Data</strong> Sequence 20.40.30File Organization 20.40.40Record Format and Blocking 20. 40. 50File <strong>Processing</strong> 20. 40. 60File Control 20.40.70Payroll Example 20. 50. 00Narrative 20. 50. 10Card Forms and ConsoleKeyboard Input 20.50.20Console Printer and Line PrinterForms for Output 20. 50.30Disk Record Formats 20.50.40System Flowchart 20. 50. 50Language Selection 20. 60. 00Introduction 20. 60. 01Programming Languages ... ...... 20.60.10Application Programs 20. 60.20Which Programming Language orApplication Program ShouldYou Use ? 20. 60.30


Section SubsectionsPage20 01 00 01INTRODUCTIONUp to this point, you have been concerned mainlywith planning and ga<strong>the</strong>ring facts <strong>about</strong> <strong>the</strong> way youare processing your data now. The next step is totake this information and mold it into applicationdesigns for <strong>the</strong> <strong>1130</strong>. Follow this plan:1. Be sure your current-system documentationis complete. This cannot be overemphasized, becausetime gained by doing a hasty but poor job indocumentation will be lost later. In fact, it willprobably be lost several times over, because of <strong>the</strong>need to sift out errors of omission from o<strong>the</strong>r designand programming errors, research <strong>the</strong> omittedfacts, <strong>the</strong>n rewrite and retest all affected programs.2. Design or redesign your reports. This mustbe done in detail, and all interested parties shouldsign off on <strong>the</strong> new layouts. The forms layoutsillustrated later in this section are sufficient toguide data processing personnel in <strong>the</strong>ir programming.The people who will use <strong>the</strong>se forms shouldbe shown samples, as <strong>the</strong>y will actually appear,with real data hand-printed in <strong>the</strong> formats that areplanned.3. Lay out <strong>the</strong> cards (see 20.30.00).4. Draw flowcharts of <strong>the</strong> procedures you willfollow in processing <strong>the</strong> cards to produce <strong>the</strong> reports.Decide what programming system or applicationprogram (such as <strong>1130</strong> Commercial SubroutinePackage) you will use for each run, and noteit on your flowcharts.5. Establish procedures for accounting controlswhere you need <strong>the</strong>m. They may be different fromthose you are using now.(Steps 2-5 are usually overlapped to a large extent.Changes in reports usually require changes in cardformats, procedures, and accounting controls.Similarly, changes in any one of <strong>the</strong> latter threeelements affect <strong>the</strong> o<strong>the</strong>rs.)6. Hold a management review after <strong>the</strong> firstapplication has gone through <strong>the</strong> steps above.7. Let each person who is programming carryone of <strong>the</strong> programs in this initial applicationthrough Program Development (see section 25) tocompletion. By so doing, he will broaden his experiencequickly, develop a more realistic idea of<strong>the</strong> amount of time required for application design,programming, and testing, and get a clearer ideaof <strong>the</strong> depth of detail needed in your current systemdocumentation. After this experience has beengained, review your activity schedule dates and adjust<strong>the</strong>m according to what you have learned.This section reviews <strong>the</strong> important considerationsof designing accounting controls, forms, andcards. Then <strong>the</strong> same payroll example introducedin 10.50.00 is presented, along with typical formand card designs and job flowcharts, as well as <strong>the</strong>disk record layouts for <strong>the</strong> programs required to dothis payroll.To help you decide which language to use for anygiven run, this section also covers <strong>the</strong> considerationsthat go into language selection. Finally, itpresents an example of a method for estimating <strong>the</strong>length of time required to run a program.


Section Subsections Page20 10 00 01ACCOUNTING CONTROLSThis section covers <strong>the</strong> subject of accounting controlsat two levels. The first part, "Review ofAccounting Control Principles", points out <strong>the</strong> typesof control that are required and serves as a reviewif you have set up and used controls before. It endswith a short summary.The second part, "More Specific Suggestions forDocument and Accounting Controls", deals withspecific examples of control sheets and methods ofcontrol, and can be used as source material forsetting up your own control documents and procedures.


Section SubsectionsPage20 10 10 01Review of Accounting Control PrinciplesAccounting controls are an essential part of yourdata processing installation. The inherent accuracyof data processing equipment and <strong>the</strong> elimination ofmany error-prone clerical steps helps reduce <strong>the</strong>number of errors in processing; however, goodaccountingpractice requires that you have a preciseprocedure available to prove and reconstruct <strong>the</strong>basic records of <strong>the</strong> system. Controls are alsonecessary to guard <strong>the</strong> records of your businessagainst fraudulent acts.The accompanying exhibit shows a typical informationflow through a system. Informationfrom source documents is punched into cards. Thefirst control (Al) ensures that your information wastranscribed correctly and completely. This can bedetermined in one of several ways:1. The cards can be key-verified.2. Control totals from <strong>the</strong> source documents canbe balanced against <strong>the</strong> card totals. For example,an adding machine total of <strong>the</strong> quantities on a batch(several source documents) can be balanced against<strong>the</strong> total of <strong>the</strong> quantities in <strong>the</strong> cards created from<strong>the</strong> documents., This same technique can be usedto control o<strong>the</strong>r numeric fields, such as employeenumber, part number, etc. The total is oftencalled a "hash" total. If an out-of-balance conditionoccurs, a listing of <strong>the</strong> cards provides a meansof comparing <strong>the</strong> card information with <strong>the</strong> sourcedocuments, and <strong>the</strong> error is quickly isolated andcorrected.3. Document or transaction counts can be usedto ensure that a card document is created for everytransaction.Since <strong>the</strong> information in <strong>the</strong> cards will be usedto update several associated records, accuracy isof prime importance.At <strong>the</strong> time <strong>the</strong> cards are run through <strong>the</strong> systemfor accumulating control or hash totals, o<strong>the</strong>r testscan be performed.Fields may be tested for size or reasonableness.For example, <strong>the</strong> nature of your business may besuch that <strong>the</strong> quantities have reasonable limits,based on <strong>the</strong> class of an item. Any item exceeding<strong>the</strong> limit can be so noted for review beforeprocessing. This type of test might keep you,for instance, from shipping 24 bathtubs to a smallcountry store as a result of mispunching an itemnumber for pliers.Batch size (<strong>the</strong> number of documents includedin a control group) should be small enough to keeperror tracing from becoming too cumbersome. On<strong>the</strong> o<strong>the</strong>r hand, it is not reasonable to control eachdocument separately.As <strong>the</strong> documents enter <strong>the</strong> process (A2), <strong>the</strong>same control list above can be used on a cumulativebasis to ensure that all <strong>the</strong> cards from <strong>the</strong> severalbatches that constitute a processing run are completelyprocessed.Card documents being created by <strong>the</strong> processcan be balanced against your control (A3) totals.A control should be maintained on all card files(A4). The total from (A3) will be used to updatethis control as cards enter <strong>the</strong> file. Before processinga large card file, it is often advisable to runa trial balance on <strong>the</strong> file--particularly if <strong>the</strong> fileis being updated or used as a source of referencebetween processing runs. The purpose of this trialbalance is to catch errors in filing, missing cards,duplicate cards where a change was made but <strong>the</strong> oldrecord was not removed, etc.A control listing of all cards entering and leaving<strong>the</strong> file establishes <strong>the</strong> control total entry and providesan audit trail if it is necessary to identifylost or duplicate records.The accompanying exhibit also shows an exampleof a simple control sheet. Each time records enter<strong>the</strong> file or are removed, an appropriate entry ismade and <strong>the</strong> file balance is updated.It is often possible to provide audit requirementsas a by-product of creating normal reports. Forexample, <strong>the</strong> trial balance of your file might be astock status report. The value of separate balancingruns must be determined by experience for eachapplication and will vary with <strong>the</strong> experience andcapability of your operating personnel.The number and types of controls will dependa great deal on <strong>the</strong> application. Your own auditorsshould be consulted in determining control procedures.Controls and audit trails should conformwith <strong>the</strong>ir requirements and should be establishedas an integral part of <strong>the</strong> data processing procedure.Much of <strong>the</strong> material in subsection 20.10.20will help you and your auditors design adequatecontrol forms.In setting up controls that will operate successfully,<strong>the</strong> following should be kept in mind:1. Only those controls that satisfy a needshould be included.2. The overall system of controls should beconceived and arranged for when procedures arebeing planned. Thus <strong>the</strong>y will be an integral partof each procedure, and those areas that may havea tendency to be overcontrolled or undercontrolledwill be spotted.


Section Subsections Page20 10 10 02ControlTopeSourceDocumentsTransactionCordsHas <strong>the</strong> information on <strong>the</strong> source documents beentranscribed correctly on <strong>the</strong> cards?Does every source document or transaction hove anassociated punched card?Do figures meet reasonableness tests?Are oll necessary fields filled with information?0orlBalancingRegister provides an audit trail.V<strong>Processing</strong>ControlTransactionRegisterBalanceBalance<strong>Processing</strong>OutputDocumentsA2t File EntryRegister..----"----OutputCardsBalancingDo <strong>the</strong> card outputrecords balance tocontrol?If so, post to <strong>the</strong>file control.A3Regi provon audit trailThis procedurewould be reversedwhen removingcards from <strong>the</strong>file.FILE CONTROLDate Source DR CR Balance Autha 4/6s– 1;_*-ENne Y/400 .0 pi?. 00 P42/145" Fa., I& TR ). 422 0 ,44,0 4, . ,,,,, "RFi le ControlA442/s/45"r NrR 043- 9-..274 93.2.6,.2/4/cr TrmA BAL. 792.6 5' 7i)FileTrialBalanceDoes file balanceto control?,----Typical control of data processing system


Section SubsectionsPage20 10 10 033. Personnel who maintain <strong>the</strong> controls should befamiliar with machine functions so that <strong>the</strong>y canlocate, determine <strong>the</strong> cause of, and correct out-ofbalanceconditions.4. Controls should be simple and easy to maintainso that workflow is not disrupted.5. A description of control operations should bedocumented and assembled for reference and trainingpurposes.6. Whenever possible, control operations shouldbe mechanized.7. When documents to be processed are batched,batch size should be such that work will continue toflow steadily.8. Company auditors should agree with <strong>the</strong> auditand control procedures.9. Department controls should always be establishedoutside <strong>the</strong> department, at <strong>the</strong> source of <strong>the</strong> data.


Section Subsections Page20 10 20 01More Specific Suggestions for Document andAccounting ControlsThe following discussion of accounting controls isconcerned with (1) those controls established andused outside <strong>the</strong> data processing installation and(2) those established and used inside <strong>the</strong> installation.Outside controls consist primarily of <strong>the</strong> initiation,authorization, and verification of source documentsrepresenting accounting transactions. Inside controlsconsist of (1) checking operations, in whichtranscribed transaction data is verified, and (2)balancing operations, which ensure <strong>the</strong> accurateprocessing of all transaction data.Generally, <strong>the</strong> necessity for accounting controlincreases with <strong>the</strong> volume of transactions or documentsprocessed and <strong>the</strong> complexity of operationsperformed. A variety of control techniques will bediscussed. The techniques to be employed dependupon individual conditions within your organization.It is important that <strong>the</strong> controls which you use alwaysprovide a proper balance between <strong>the</strong>ir costand <strong>the</strong>ir value. Since a system of accounting controlsmay be obsoleted by a change in accountingprocedure, company policy, company organizationand/or data processing equipment, controls shouldbe examined and evaluated periodically. Companyauditors should participate in establishment andevaluation of a control system.Outside ControlsControl techniques described in <strong>the</strong> following textare not necessarily limited in use to any one application;<strong>the</strong>y are easily modified for use with a varietyof applications.Document register. Control of individual documentscan be maintained effectively by <strong>the</strong> preparationof a register on which each document islisted at <strong>the</strong> point of receipt or origin. The registershould include ei<strong>the</strong>r a description that is sufficientto identify each document quickly, or a serial identificationnumber. The serial number not onlyfurnishes positive identification and an effectivemethod for later reference, but is also most easilyused at <strong>the</strong> point of entry or origin. When eachdocument has been completely processed, it is"checked off" or canceled on <strong>the</strong> register. Uncancelednumbers represent documents that ei<strong>the</strong>rare in process or have been mislaid. Intermediateprocessing operations for each document may beshown on <strong>the</strong> register and dated as <strong>the</strong> documentpasses those points in <strong>the</strong> procedure. The illustrateddocument register for sales orders not onlydiscloses a missing or misplaced document, butalso indicates any delays in processing--as mightbe <strong>the</strong> case with order 12843, which, several daysafter its receipt, has not yet been billed.Serial numbering and <strong>the</strong> batch control ticket.Where serial numbers are printed or stamped oneach document, rearrangement in serial numberorder and a check for missing numbers may beperformed during, as well as after, processing toensure inclusion of all documents. This plan isparticularly adaptable to documents such as checksor drafts, where each document must be accountedfor. When <strong>the</strong> document is an <strong>IBM</strong> card, <strong>the</strong> serialnumber may be punched into, as well as printed orinterpreted on,' <strong>the</strong> card; arrangement of <strong>the</strong> documents,as well as a count of and sequence checkfor missing documents, may <strong>the</strong>n be accomplishedautomatically.Serial numbering may also be used for groupsand batches. If so, <strong>the</strong> number of documents ineach batch is recorded, toge<strong>the</strong>r with <strong>the</strong> batchserial number, ei<strong>the</strong>r on <strong>the</strong> first document or ona separate form accompanying <strong>the</strong> batch. Forlarge-volume operations, batch size should bepredetermined for ease and efficiency in handling.The illustrated batch control ticket employs adocument count as well as document and batch serialnumbering. By maintaining a file of <strong>the</strong> batch controltickets, both <strong>the</strong> sending and receiving departmentscan account for all documents.Transmittal and route slips. A letter of transmittaldescribing a group or batch of documents isfrequently employed to establish control and transferresponsibility when documents move from one departmentor location to ano<strong>the</strong>r. The transmittal slip,as shown, is usually a printed form with spaces toindicate <strong>the</strong> variable information for <strong>the</strong> batch.When <strong>the</strong> volume of work or <strong>the</strong> number ofpeople who may perform any given operation islarge, it may be desirable to fix responsibility foraccounting for documents passed from each operationto <strong>the</strong> next as well as from one department toano<strong>the</strong>r. In this case, a route slip is employed,ei<strong>the</strong>r in addition to or in combination with <strong>the</strong>letter of transmittal. The route slip is similarto <strong>the</strong> batch control ticket shown, except that inthis case each department, or operational stepperformed, is identified, along with an indicationof <strong>the</strong> processing time and <strong>the</strong> operator or clerkresponsible for each job. Responsibility is fixed,and <strong>the</strong> means to effect a degree of work controlas well as document control has been incorporatedinto <strong>the</strong> same form.


Section SubsectionsPage20 10 20 02DATERECEIVEDORDER NUMBERORDER REGISTERDATEAUDITEDDATEBILLEDDATESHIPPED/a //y 12831 ,e//y ,,bir .,i/s,12832 /o//6 ,..,• //•,1283312834 /4, /..,- /0/.7 /./..p" ,,,v,/ 12835"/" ..,,,/, 7.,1283812837 . /e/ AC . /o//7.. . .‘,//p. 12838 /otiri•12839 /04er • ./0 /7MONTH 49t1444"--REMARKS12840.,, .12841 ' /0//4 io//7/a//5 12842 /a //4- /0/•7 •/alit12843 /0/4 6,,,,,A44‘,.,..;„4-a.,r-...12844 /4. //f- id //fOrder register/ 4‘BATCI NOWeee/ In.44.‘,„ --.779°Z-TO:/0/ a/DATE \...-...1 ,..,,. ,,-.FROM:NUMBERED37/.13 6-a.5.-FROM/NO. OF DOCUMENTSTORECEIVED ATTACHED DOCUMENTS SPECIFIED ABOVEMild f /DATESIGNATUREPLUM SIGN AND FORWARD THE COPT OF THIS MATCH CONTROLTICKET TO SENDING DEPT. WITHOUT PILOT.Batch control ticketToThi404.4•P ii/k7"'"" Al. uDe,e-,52-//Vg,r."– 'a 032. / 0,2Sp000rzAda,AZ6;643.2/CARD SHIPMENT TRANSMITTAL/71MATCH NO.lF WOG,ereAdoftvetlir . /WA'"D. Xoef-NUMBERED/ al/ 4 734i I 73 8•sDATEDATE DID. INITIALS/01/618\11 T ►A,FROM TOREINANKSROUTING SLIPCrNO. OF DOCUMENTSCk.e.,-/734,f <strong>the</strong> ,246.1AAAAA•N• pirrt.101c. 110 GI ttttt rono•.O. •NORETURN TO CONTROL CLERKTransmittal and route slips


Section Subsections Page20 10 20 03Cancellation and time stamps. As a documentis received at a control point or passed through agiven department, it may be "canceled" by a stampto indicate that it has reached or passed through acertain stage in its processing. Any clerk or operatorhandling documents would automatically rejector return for checking any document not bearing<strong>the</strong> correct cancellation. As shown in <strong>the</strong> accompanyingillustration, <strong>the</strong> use of <strong>the</strong> time stamp forcancellation affords, in addition to document control,a method of achieving work time or production control,since it furnishes an accurate, unalterablerecord of elapsed time for handling.Matching. The reassembly and matching ofduplicate documents can be used to effect control.This technique is particularly useful when multiplecopies are prepared, as with carbon copies, andeach copy is <strong>the</strong>n used to prepare records at adifferent location, for example, purchasing departmentand receiving department. When all copiesare reassembled and matched at <strong>the</strong> predeterminedpoint, <strong>the</strong> presence of all copies indicates completeprocessing. If <strong>the</strong> documents are punched cards,matching and checking can be done automatically.Control of factors subject to change. Factorsused for calculations and processing may be reviewedand changed from time to time. Examplesof such factors are discounts, selling prices,credit limits, commission percentages, and inventoryreorder levels.Controls must be established that allow onlyauthorized changes to be made. This is accomplishedby requiring a signature with each request for change(see change authorization exhibit). Changes aredocumented by printing a register (see changeregister exhibit). A copy of <strong>the</strong> report is routedback to <strong>the</strong> initiating department for review andapproval.Inside ControlsControls within <strong>the</strong> data processing installationshould ensure that all transactions are processedcompletely and accurately. The series of checksand balances that make up <strong>the</strong>se controls mustbegin with <strong>the</strong> entry of transactions into <strong>the</strong> dataprocessing installation and continue throughoutprocessing.TO56PURCHASE ORDERNEW MEXICO COMPANYHOUSTON. TEXAS DATE 10/12=MAL MANUFACTURING cctemlyENDICOTT, N. Y.LSNOW OUR ORDER NO. ON ALL INVOICES.PACKAGES AND SNIPPING1 ORDER No. 311NAIL INVOICES IN TRIPLICATE UNLESSOTNERIVISE SPECIFIED.SNIPTO ABBE VIA Emir WAY F 0 IIQUANTITY DESCRIPTION Foci40 SQUARE SHANK SWIVEL 1120275 FLAT TOP RIGID 131025 KIT SHANK urn BRIO17203ax,2 BOLT MID NUT MARK32105 9 rn C)4 RFD SKI RING STEM44104m40 BOLT AND= SHANK 62110 .i. 5.=cr)a w4. ZI■I70ii. —.3 2 m..., ZCO —IOW* .11. I O•o. . O.T. I DT . TO N.T. •MoT•a•TIOIT I OA. I CMSVOX. TO TOT Tn.s axe tOodomo• OE TOT 11.• MOWWMKN •N UKO•POO•Tt• .111.01• PAW MM.IA C. ill.rA-4r-Time stamp cancellation


Section SubsectionsPage20 10 20 04REGISTIVITIOR OEM FORU.S. SAYINGS MONOEF:gAMTruntlsowTO OA 40ISTIOLO n rotOrr Too Torgr./ • Wig a Dosr Par Aro oar err err olO12.0 FIELDA mY wNE-RE• Ire orome vow. or...OTTOOT•OTO: Machine Accounting Dept. DATE, 11/250.1 MAO, I FROM: Marketing'11.1.11.EFT."VTHE FOLLOWING PRICE CHANGES SHOULD BE MADE:ITEM NO. DESCRIPTION NEW PRICE12 2685 PEA SOUP $ 6.00112 3074 ORANGE JUICE 3.85713 1111 HAND SOAP 2.20013 2954 CONDENSED MILK 1.63913 4182 TOOTH PICKS .353-Fif. g. A4a....agea-AUTHORI ZED SIGNATUREChange authorizationsCHANGE REGISTERDATEITEM CODEDESCRIPTIONFACTORBEFORECHANGEFACTORCHANGE11-2612 2685 PEA SOUP 5.956 6.00112 3074 ORANGE JUICE 3.132 3.85713 1111 HAND SOAP 2.253 2.20u13 2954 CONDENSED MILK 1.652 1.63913 4182 TOOTH PICKS .352 .353("‘Change register


Section Subsections Page20 10 20 05Control techniques and devices. A list of controldevices and techniques, many of which can beincorporated into <strong>the</strong> procedure for any data processingsystem, includes:• Serial numbering. The serial numbering oforders, invoices, checks, etc., provides controlwhile <strong>the</strong> data is in transit. Each item or documentin <strong>the</strong> series or group is assigned a successivenumber; an indication of <strong>the</strong> beginning and endingnumbers accompanies <strong>the</strong> group.• Batching with a document or item count. Inbatching data with a document or an item count, <strong>the</strong>items or documents are counted instead of numbered;an indication of <strong>the</strong> count accompanies <strong>the</strong> group.This technique can be used to control data, bothbefore and after it is punched into cards--for example,requisitions, changes, receiving reports,and punched cards for various analysis reports.• Batching with a control total. In batching witha control total, some data field that is common toall items or documents is accumulated for <strong>the</strong> controltotal, which <strong>the</strong>n becomes <strong>the</strong> basis for balancingoperations during processing. The control fieldmay be an amount, a quantity, an item code, anaccount number, etc.; totals based on an accountnumber or code are known as "hash" totals. Anadvantage of this technique is that balancing canoften be performed during regular machine processingoperations at no extra cost in time.• Crossfooting. Crossfooting is <strong>the</strong> additionand/or subtraction of factors in a horizontal spreadto prove processing accuracy. It can be used on apayroll register to prove that <strong>the</strong> final totals ofnet pay and deductions equal <strong>the</strong> final total earnings;this provides control on report preparation as wellas calculating and card-punching operations. Inposting transactions to records that are temporarilystored in a computer (for example, accounts receivable),crossfooting is used to prove <strong>the</strong> accuracyof posting, ei<strong>the</strong>r as each transaction isposted, or collectively at <strong>the</strong> end of <strong>the</strong> run, or both.• Zero balancing. Zero balancing is an effectivemethod of verification when both detail items(for example, accounts payable distribution cardsor records) and <strong>the</strong>ir summary (for example, anaccounts payable disbursement card or record) areprocessed toge<strong>the</strong>r. Each detail item is accumulatedminus, and <strong>the</strong> summary plus. The result is a zerobalance if both are correct.• Negative balance test. It is possible to detecta change in sign during arithmetic operations andei<strong>the</strong>r stop <strong>the</strong> machine or signal <strong>the</strong> condition forsubsequent review. In payroll applications <strong>the</strong> signcheck is used to indicate <strong>the</strong> condition in whichdeductions exceed gross pay; in accounts receivable,accounts payable, inventory, and general ledgerapplications it can be used to recognize any balancethat becomes negative.• Blank field test. This means checking anydata field for all blank positions. As a computercontrol, it can be used to prevent <strong>the</strong> destructionof existing records in storage, indicate when <strong>the</strong>last item from a spread card has been processed,skip calculation if a rate or factor field is blank,etc.• Comparing. Comparing, as a control technique,permits data fields to be machine-checkedagainst each o<strong>the</strong>r to prove <strong>the</strong> accuracy of matching,merging, coding, balancing, reproducing,gang punching, and record selection.• Sequence checking. Sequence checking is usedto prove that a set of data is arranged in ei<strong>the</strong>rascending or descending order before it is processed.It is generally a mechanized operation andmay be performed in a separate machine run orsimultaneously with ano<strong>the</strong>r operation in one run.• Visual comparisons. Comparisons are basedprimarily upon experience, past performance, anda knowledge of trends that have intervened. Byknowing <strong>the</strong> status as of a certain time and observingtrends since that time, it is possible to determineto some degree whe<strong>the</strong>r present recordsrepresent a complete and accurate picture. Forexample, present-period payroll is often comparedagainst last-period payroll to spot any questionablevariations.Controls on processing operations. The numberof available techniques indicates <strong>the</strong> need for athorough study of your application and equipmentinorder to come up with a system of controls whichis adequate but which does not overcontrol and delayprocessing. In so doing, it is desirable to mechanizeas many controls as possible. Mechanized controlsare always performed at a constant, rapidspeed; manual ones are not. A study of <strong>the</strong> applicationwill reveal:1. How closely it is to be controlled.2. Points in <strong>the</strong> procedure at which controlsmust be placed.3. The correcting and restart procedures to beemployed at each point, in case <strong>the</strong> operation doesnot balance. If <strong>the</strong> procedure is a manual one, itshould be clearly documented for operator referenceand training purposes.4. How accounting control responsibilities areto be divided.The basis for control during processing must beestablished as data enters your installation. This


Section SubsectionsPage20 10 20 06is generally done when transactions are edited andmay consist of assigning a system of serial numbersor developing a document count, a transactioncount, an item count, a tape listing and totalof some field such as quantity, amount, or code,etc. , or a combination of <strong>the</strong>se. When <strong>the</strong>se preliminariesare taken care of, your transactions areready for processing.During report preparation, <strong>the</strong> primary controlobjective is to prove that all items (accounts ortransactions, etc.) are included in <strong>the</strong> processingand that arithmetic is performed accurately. Itcan be assumed that <strong>the</strong> data itself is correct, sincepunching, summary, and posting operations areproved as <strong>the</strong>y occur.To ensure <strong>the</strong> inclusion of all items in <strong>the</strong> report,a final control total is developed during processingand balanced at <strong>the</strong> end of <strong>the</strong> run to a predeterminedone. In cycle billing operations, <strong>the</strong> control maybe an account number hash total of those accountsthat are in <strong>the</strong> cycle; for o<strong>the</strong>r reporting operationsit may be a control total based upon an amount, aquantity, or ano<strong>the</strong>r code field. For control ofarithmetic functions that occur during report preparation,<strong>the</strong> following techniques should be investigated:crossfooting, total transfer, zero balancing,parallel balancing, reasonableness test, or a combinationof <strong>the</strong>se.Built-in checks and controls. Built-in checksshould be taken advantage of and not duplicated byprogrammed or manual controls. They function asa result of internal machine circuitry and are <strong>the</strong>reforeperformed automatically. For example, allmachines have checks which stop <strong>the</strong> machine foran operation that is impossible or in conflict withano<strong>the</strong>r.Computers utilize input/output checks. Theinput check ensures that all data is read and codedcorrectly. The output check ensures that your outputcharacters are correctly set up for punchingand/or printing.This discussion does not include all built-inchecks; for more information regarding a specificpiece of equipment, refer to <strong>the</strong> reference manualdescribing <strong>the</strong> machine.The audit trail. An audit trail must be incorporatedinto every procedure; you should providefor it early so that it becomes an integral part.In creating an audit trail it is necessary to provide:1. Transaction documentation that is detailedenough to permit <strong>the</strong> association of any transactionwith its original source document.2. A system of accounting controls which provesthat all transactions have been processed and thataccounting records are in balance.3. Documentation from which any transactioncan easily be recreated and its processing continued,should that transaction be misplaced or destroyedat some point in <strong>the</strong> procedure.The audit trail shown in <strong>the</strong> accompanying exhibitmight be found in an accounts receivable application.The original or entry sales register isprepared by date of entry immediately after <strong>the</strong>cards have been punched or activated from a file.<strong>All</strong> punched information is listed on <strong>the</strong> registerin detail, so that if a transaction has to be recreatedat some later time, reference to <strong>the</strong> source documentwill not be necessary. To prove <strong>the</strong> accuracyof <strong>the</strong> register's preparation, its final total isbalanced to a predetermined one; if <strong>the</strong> two areequal, <strong>the</strong> final total is also posted to <strong>the</strong> controlsheet. The sum of <strong>the</strong>se individual totals on <strong>the</strong>control sheet establishes <strong>the</strong> final control total towhich all accounts receivable operations for <strong>the</strong>period must balance.Cards for <strong>the</strong> cash receipts book are ei<strong>the</strong>rpunched or activated from a holding file. Afterbeing prepared in detail, <strong>the</strong> cash receipts book isbalanced to a predetermined total. If it is in balance,<strong>the</strong> final total is posted to <strong>the</strong> control sheetand <strong>the</strong> receipts are posted to accounts receivable.When <strong>the</strong> aged trial balance is run, <strong>the</strong> final totalshould equal <strong>the</strong> difference between total debits andtotal credits to accounts receivable; this differenceis available from <strong>the</strong> control sheet. If <strong>the</strong> totals donot agree, all <strong>the</strong> transactions for <strong>the</strong> accountingperiod can be sorted into entry date sequence, summarized,and checked against <strong>the</strong> daily entry totalson <strong>the</strong> control sheet to isolate <strong>the</strong> entry date that isout of balance. The transactions for that date arerelisted; an entry-by-entry comparison on <strong>the</strong> duplicateand original entry registers will reveal <strong>the</strong>discrepancy so that a correcting entry can beinitiated.The sales register and cash receipts book providedocumentation that is sufficient for reconstructinga transaction or associating it with <strong>the</strong> originalsource document. Balancing each register to apredetermined total proves that all transactions in<strong>the</strong> group have been processed through that point.The entries on your control sheet provide <strong>the</strong> meansfor balancing accounting records at <strong>the</strong> end of <strong>the</strong>accounting period.


Section Subsections Page20 10 20 071 or 2SALES REGISTER Dumber 31• soOCASH RECEIPTS REGISTEREA, SHANE WIFE BR 72 33 22112345751231 12351SO SHANK RIGID03 211123.0791231 12351DOLT AND NU/ SHANK 21 03 22112300751131 12351.4vvv.T.v.v..,RIU SPR RING STEM 41 07 221123.3791231 12351..FREIGHT2:1123.375.1231 12351 0 .31 vevAN• "AL...... 0.v•ANN....3S • • ..A. ve iv.22112341791231 123510 C•STLE HARDWARE CO 606225 13111150611, 6 • 93117 • 92117CENI,A•L up.,45,4 suPPLY625 7 3•7 11112 300 12,2 3 )69103 36 116 57SO SOCKET RIGID 1 61 02 1E3052307 2131 12352EuSTOA BUILT 1 51RHO GP RING STE • 6,1 C. 16305230722111E305230761231cHAN,EL .VHOLE 5 •1-6.2 3•22 1 , I 11232412.2 6 5 0 0 .0 0 • 9 0,0 0 10003 a12352 O COvENT/AY 0 It9205195:111229212,23 95097 9 31,951 90 22352 H.3.‘1- I AIO SUPP CO 6 5 12 "61112310 1 2 1 26 •15133 • 0 7 10 28 31FLAY TOP SWIVEL 5 32 °a l 3aost,o, 231 12352 cr Lv i NA I RE Cow.5035107•1111606112FREIGHT163052776a271 12352 0 MAI EC REP INI NG GO60 912279111225,222 3 301166 30 ,232156 2 A7, 5 1o s ()163052.7E1M 12352 NEwTON PARW •NO CO10 5NEW NAE R I CO CO•AP•NY751 . 116 101111239 I 1 76 L.3■ 76 ,317111199 311,30 100000 1000'00N V OAS •ND ELEC CO122122.6{11232512'26 105510 3 1033193 3110 0ExTENSICN 5WANA 02 17605C0691231 12353 veSTAL STEEL CO • epso , a alllo.sz i a , a 1.06 1 1 4 Ms 1A132ADAPTER ROUND 16 05 77505064271 12353 W1NTERDALE R•ILWAv 7652 167611 9562 3 1 6501.60 6 5 01.0BOLT AND NUT SHANK 6 1 IC 77005=691231 2353 OIF REIGHT 77005064131 123536 97 50 7 6 90 R IO 1 70 56170050691731 1235A I .RI ANGLE HEAD A 02 16305413,662,4, 12354 20 40 one 17'60SID PIPE STEM17 03 1.05417763.1 17,54 .711,3i50, 10200 ISiYO:uS/06. BUILT51 12 163054,576,,,, 12350 21192 SC89350F REIGHT 1E305.131612 RI 12156E V381E305413706271 1235,135145134,6 101 90.. 93e • Incoming transactionsFLAT TCP RIGID1 31 02 21,3557.3641231 12355 164 5 6YPO8CuST0. BUILT1 51 02 237355 n4. 231 12355 101 '5 9375 .0 listed in detail for permanent9q 5FLAT TOP SplvEL32 03 237355/3641431 12355 485 95 21 ^25 16,313TOP RIGID6 )1 Oa 25.735513640731 12355 040 35196)5261100 audit referenceCUST OM BuILI51 10 25.7355156412,11 12355 117/ 45 52*5 4243♦ 52165.4E16,11 25715573.10131 12355Ima2t735573441 12355116493116+5• 907.5• E : •ELI S460K ml/H B.( 2 03 2234910561231 12356 102 121:50 9.20• 12450SJ SOC6LT SWIVEL 2 63 02 2016010511131 12356 2559 65 121105 8660 12105FLAT TOP SWIVEL 3 32 05 24109105 zai 12355116,00 a9m0OLD SPA RING STEW AI 06 2216910571231 12355La4aoCUSTOm BUILT 6 51 10 221•910541731 12356 11177 5 °ears 706:73 OBB75FREIGHT221A9105 Al2131 12,56• 1522219910561.1 12356123.41214331000 112 •774123 590 ITA1r76460ACCOUNTS RECEIVABLECONTROL SHEET .AINTv A./962414141.-........ ...••••• ..r... ... .. ............• ........ ...,.... ..... ................,. ...., ,..... .... ...., ... .. ,. ...v.:::1: 62 65 16I. / /0 • • 41i9 0 V/stirmirtmerffirawrimmmErn■/2 61 034 69 4•35 14 33e 3 1550 AN 30 96133 Se 1/2. 5 061 ilo 2 41/3 97 2 3S8 4,5 55I ff S 2 .2 . 30/9 ' i /2 7 Sii 65/.3,26117/ ,IIIIII ■SRNU $22NI2Ja'nonffrimmrimirrammirliltligi1 0ME "'RI.1.1:II19744,/ 110• • 2 ' • -1:2•vCneck toTrial BalancIIP4Audit trial


Section SubsectionsPage20 20 00 01FORM DESIGNThe first part of this section, written for personsfamiliar with punched card processing, deals with<strong>1130</strong> considerations only.The second portion is more detailed and servesas an introduction to <strong>the</strong> subject for those who arenew to automated data processing.


Section Subsections Page20 20 10 01<strong>1130</strong> Considerations1. The ability of both FORTRAN and <strong>the</strong> <strong>1130</strong>Commercial Subroutine Package to provide headinginformation can greatly reduce <strong>the</strong> cost of forms.Standard stock forms can be used for all internalreports, and appropriate headings can be providedat <strong>the</strong> time <strong>the</strong> report is prepared. Setup time canbe significantly reduced by eliminating <strong>the</strong> need tochange forms in <strong>the</strong> printer.2. The 120-character print line is probably atleast equal to your present capacity. Considerprinting narrow forms two-up --that is, two pagesside by side (on special paper for splitting), printedat <strong>the</strong> same time. This technique can double youroutput or can avoid <strong>the</strong> need for extra runs or extracarbon copies where <strong>the</strong> number of required copiesis large.3. The extra speed of your printer (1403) mayallow you to make some short runs twice instead ofbuying expensive multiple-part paper just for thoseruns.4. Interchangeable chain cartridges for <strong>the</strong> 1403allow you to improve <strong>the</strong> appearance of certainreports by providing a variety of special characters.Also, printing speed can be considerably improvedby selecting a character set containing only <strong>the</strong>characters you need.5. The ability to have both <strong>the</strong> 1403 and 1132 online can save time, in some cases, by eliminating<strong>the</strong> need for rerunning cards to produce a second,different report.


Section SubsectionsPage20 20 20 01Form Design PrinciplesThe design of effective, economical forms reqires acertain amount of preparatory evaluation andanalysis. The major objectives are legibility,simplicity, economy, and efficient preparation.Local <strong>IBM</strong> representatives should be consultedearly; <strong>the</strong>ir guidance and reference materials mayhelp avoid costly mistakes. Steps to be taken informs design are:1. Establish <strong>the</strong> need for <strong>the</strong> new form. Similarforms may exist which, with minor changes,will satisfy <strong>the</strong> new requirements.2. Study <strong>the</strong> machine to be used for printing.In so doing, use <strong>the</strong> reference manual for thatmachine; most manuals have at least one sectiondevoted to <strong>the</strong> tape-controlled carriage and/or formdesign. These sections contain valuable information<strong>about</strong> forms specifications as well as differentprinter characteristics and operation.3. List all types of information to be recordedand <strong>the</strong> number of positions that will be allotted forprinting each. In doing this, assemble and studypast and present statistics. These can be evaluatedin light of future plans and <strong>the</strong>n used as an indicationof probable needs. One of <strong>the</strong> greatestweaknesses in forms design is <strong>the</strong> tendency toburden a form with unnecessary information. Sinceentire data processing procedures may be gearedto <strong>the</strong> preparation of a certain report, extraneousinformation can be costly.4. Lay out <strong>the</strong> form on a printer spacing chart.(See Figure 20.17. ) In using <strong>the</strong> spacing chart <strong>the</strong>following tips will be helpful (some will be discussedin greater detail later):• Use bold type to make special information orheadings stand out.• In columns for figures allow sufficient spacefor <strong>the</strong> largest amount plus punctuation.• Place filing information near <strong>the</strong> top of <strong>the</strong>form.• Title <strong>the</strong> form.• Include form number, date, and page number.• Keep headings small, to allow room forwritten data.• Consider total headings at <strong>the</strong> bottom of <strong>the</strong>form.• Use different-colored copies as an aid inrouting.• Use double-ruled lines to set off sections.• Avoid horizontal rulings as much as possible.• Consider guide marks for names, addressesand folding.• If possible, choose a standard form width.• Make certain that <strong>the</strong> form length is compatiblewith <strong>the</strong> spacing to be used.• Include a guide for forms alignment in <strong>the</strong>printer.5. Make a test using a copy of <strong>the</strong> proposed form.Examine <strong>the</strong> report carefully to make certain thatzeros are printing properly and that amount fieldsare large enough.During <strong>the</strong> creation of a form <strong>the</strong> designer shouldunderstand and keep in mind <strong>the</strong> following:Form width. The overall width of a form isimportant in determining printing space. Although<strong>the</strong> <strong>IBM</strong> form-feeding devices available will handlea great variety of document sizes, certain practicalaspects should be observed.Form costs can be reduced by confining widthsto <strong>the</strong> standard sizes of paper stock used by businessforms companies. (These sizes can obtained from<strong>the</strong> companies; reference to <strong>the</strong> individual machinemanual will indicate which are acceptable. )In addition, width standardization permits (1) purchaseof report binding and filing supplies in fewersizes and greater quantities at reduced cost, (2)more convenient forms handling, and (3) a reductionin <strong>the</strong> setup time of form-feeding devices.Form length. The total number of body lines in aform (regardless of whe<strong>the</strong>r six-or eight-lines-perinchspacing is employed) can be any whole number,up to 132. It should be evenly divisible by two in <strong>the</strong>case of double spacing, and by three in <strong>the</strong> case oftriple spacing.Horizontal spacing. <strong>All</strong> printing is ten charactersper inch. Vertical lines separating fields anddecimal positions should be drawn so that each splitsa printing position. If <strong>the</strong>y are drawn between adjcentpositions, paper shrinkage, variations in forminsertion and alignment, as well as o<strong>the</strong>r variables,may prevent satisfactory registration during printing.Vertical spacing. The vertical spacing of <strong>the</strong>printers is under operator control and can be setfor six or eight lines per inch. The importance ofthis is that double spacing at eight lines per inchpermits 33-1/3% more lines to be listed on a pagethan double spacing at six lines per inch. While it istrue that six lines per inch at single spacing givesmore items than eight lines per inch at doublespacing, <strong>the</strong> latter offers increased legibility.Form skipping. The maximum distance that canbe skipped without losing machine time is not <strong>the</strong>same for all printers. The individual machine orsystems reference manual should be read so thatlittle or no processing time is lost.


Section Subsections Page20 20 20 02Form alignment guide. If possible, a guide forform alignment should be determined and preprintedon each form to facilitate machine setup operations.It is important that a description of <strong>the</strong> form alignmentguide and its use be included in <strong>the</strong> operationmanuals. A delay in machine setup will create adelay in processing.Numeric amounts. In determining <strong>the</strong> number ofprint positions needed for numeric fields, <strong>the</strong> sizeof <strong>the</strong> total must be provided for, ra<strong>the</strong>r than <strong>the</strong>size of <strong>the</strong> detail amounts. If marks of punctuationare to be machine-printed, <strong>the</strong> size of <strong>the</strong> fieldshould be checked to make certain that printingpositions have been allotted.Printable characters. The standard printablecharacters are:A — Z0— 9More information may be found a appropriatemachine reference manual.Marginal perforations. Most forms have a verticalperforation 1/2" from each side. Sometimes,however, forms are designed with dissimilarmargin widths. For example, a form with an overallwidth of 9-7/8" may be perforated 1/2" on <strong>the</strong>left and 7/8" on <strong>the</strong> right, to leave an 8-1/2" x 11"letter-size report after <strong>the</strong> marginal strips are removed.Many such variations in margin size areused. At least one unused printing position shouldbe left between a machine-printed character and aperforation.Since some report binders utilize <strong>the</strong> form-feedingholes for binding, many reports are set up withno perforation on <strong>the</strong> binding side. The practice ofeliminating perforations and letting <strong>the</strong> form-feedingholes remain on both sides of <strong>the</strong> finished reports isbeing followed more and more, particularly withinternal reports.Binding. In most cases, it is desirable to minimizebinding space in order to reduce form cost.Therefore, information that will be referred toleast should be placed nearest <strong>the</strong> margin, since itbecomes more difficult to read information near <strong>the</strong>binder posts as sheets are added to a binder.Because of <strong>the</strong> amount of space required forheadings, many forms can be bound at <strong>the</strong> top, withno sacrifice in readability. If it is desirable to bindcontinuous forms without bursting <strong>the</strong>m or binding<strong>the</strong>m on <strong>the</strong> side, binding holes can be punched inboth <strong>the</strong> top and bottom of <strong>the</strong> forms.Carbon copies. Substantial savings can be realizedby mininizing <strong>the</strong> number of carbon copies.Some techniques that are effective in doing this are:1. Side-by-side duplicate reports2. Consolidation of reports for multiple use3. Sequence-routing of reports to different department's,instead of simultaneous distribution4. Mechanical or photographic reproductionAny report that is subject to constant usage, suchas a weekly timesheet, should be prepared on a durablegrade of paper. For most multiple-copy work,<strong>the</strong> first, or original copy and <strong>the</strong> last copy areheavier in weight than <strong>the</strong> intermediate copies.Lighter weights of paper have less cushioning effecton <strong>the</strong> printing impact, and <strong>the</strong>refore permit morelegible printing on multiple copies. On <strong>the</strong> o<strong>the</strong>rhand, <strong>the</strong> paper must be of sufficient weight andstrength to prevent tearing while feeding or ejectingforms.The carbon paper used should produce <strong>the</strong> requirednumber of legible copies without excessivesmudging. Various carbon forms in use include:1. One-time carbon. This is used once and discarded.2. Carbon-backing paper. The carbon surface ison all or part of <strong>the</strong> reverse side of <strong>the</strong> original.3. Chemical-coated paper. The chemical coatingon <strong>the</strong> back on one sheet reacts with <strong>the</strong> coating on<strong>the</strong> face of <strong>the</strong> next, under <strong>the</strong> impact of <strong>the</strong> printingmechanism.Type style is also an important consideration formultiple carbon copies. Standard type gives maximumlegibility. A smaller type style tends to "fillin" when printed through several sheets of paper;with a bolder type style <strong>the</strong> force of <strong>the</strong> hammerblow is spread so that sharpness and density aredecreased.The legibility of some special-purpose type islimited. Since it is fixed in size, <strong>the</strong> more charactersthat are crowded within <strong>the</strong> area, <strong>the</strong> smallereach character becomes. Therefore, as <strong>the</strong> numberof carbon copies increases, <strong>the</strong> difinitive lines ofeach character seem to become broader. The resultis a character that is difficult to read.In some cases carbon paper is narrower than <strong>the</strong>form. It may be held in place by a fastening techniqueat <strong>the</strong> horizontal perforations between forms,or by some o<strong>the</strong>r method such as stitching, gluing,or marginal perforations.


Section SubsectionsPage20 20 20 03The recommended maximum distances betweenfastenings are:Maximum DistanceForm Length between Fastenings1 to 5 inches 5 inches5-1/2 to 11 inches 11 inches11 to 14 inches 7 inches14 to 17 inches 8-1/2 inchesFor forms more than 17" in length, <strong>the</strong> maximumdistance between stitches should be determinedby actual test.If staples are used, <strong>the</strong>y must:• Be located out of <strong>the</strong> printing area.• Be properly crimped so <strong>the</strong>y won't catch onguide edges or staples in succeeding forms.• Not cause excessive bulging during feeding,particularly at <strong>the</strong> out-fold.Form types. Depending on its purpose and destination,<strong>the</strong> form on which a report is printed mayrange from <strong>the</strong> least expensive blank stock to customdesign. Imprinted stock forms are standardsizeforms which are stocked in large quantitiesand upon which lines, headings, markings and somedesigns are printed as desired. Custom forms arethose designed to fill special needs of size, complexity,and design. Although more expensive, <strong>the</strong>ycan be used advantageously to "sell" your company.


Section Subsections Page20 30 00 01CARD DESIGNThis section is divided into two parts. Thefirst provides information that will be useful to aperson who has had punched card experience butwants to become familiar with <strong>the</strong> considerationsunique to <strong>the</strong> <strong>1130</strong>. The second deals with morebasic card design principles. A more extensivecoverage of <strong>the</strong> subject is contained in <strong>the</strong> <strong>IBM</strong>manual Form and Card Design (C20-8078).


Section SubsectionsPage20 30 10 01<strong>1130</strong> Considerations1. Lining up similar fields between cards isdesirable for ease of recognition, for offlinepunched card processing, and for ease of cardhandling. A program can as easily define a field inone set of columns as in ano<strong>the</strong>r.2. The results of calculations often do not haveto be punched into cards. It takes but a few millisecondsfor <strong>the</strong> computer to recalculate <strong>the</strong> samefigure <strong>the</strong> next time it needs it.3. The EBCDIC character set contains 256possible codes. However, many of <strong>the</strong>m cannot behandled by standard FORTRAN programs. Only 53characters are permitted in card input (see <strong>the</strong>FORTRAN manual, C26-3715); of <strong>the</strong>se, only 48may be printed by <strong>the</strong> 1132 Printer.4. Normally, an 11-punch over <strong>the</strong> units positionof a field indicates to <strong>the</strong> <strong>1130</strong> CommercialSubroutine Package that a field is negative, whilea 12-punch or no-zone indicates that it is positive.The combinations (11-0) and (12-0) are not validFORTRAN codes. However, <strong>the</strong> <strong>1130</strong> CommercialSubroutine Overlapped I/O Package can handle <strong>the</strong>m.5. Punching speed for serial punches (1442)varies with <strong>the</strong> last column punched. For example,if <strong>the</strong> card is to be punched in cc 1-10, 176 cardsper minute can be punched on a 1442, Model 6. Thesame data can be punched in cc 71-80 at only 49cards per minute. Therefore, fields to be punchedshould be placed close to column 1. Fields to beread can <strong>the</strong>n be placed anywhere to <strong>the</strong> right offields to be punched, with no effect on card readingspeed.


Section Subsections Page20 30 20 01Card Design PrinciplesDetermining Card <strong>Data</strong>The first step in card design requires a studyof <strong>the</strong> final report that is to be printed from <strong>the</strong>card and a listing of data needed for it. Next <strong>the</strong>procedure is studied, and any data needed for processingbut not for <strong>the</strong>, report is added to <strong>the</strong> samelisting. Every item is recorded on a worksheet.Provision must be made for recording in <strong>the</strong> cardall data that is listed, unless it is calculated oro<strong>the</strong>rwise generated.A check should be made that <strong>the</strong> necessaryreference data is included. Reference data shouldbe sufficient to:1. Identify <strong>the</strong> transaction with <strong>the</strong> originalsource document from which it was created.2. Indicate <strong>the</strong> date on which <strong>the</strong> transactionoccurred.3. Establish some reference, such as invoicenumber, batch number, account number, orsalesman number.Care should be taken to avoid duplicate or unnecessaryreference data.Determining Field SizeThe number of positions required to record eachtype of information should be determined.The size of <strong>the</strong> field for card codes, invoicenumber, and account number is determined by <strong>the</strong>largest single number to be recorded. Withquantity and amount fields, <strong>the</strong> largest amountthat will occur on a reasonably frequent basis mustbe determined, ra<strong>the</strong>r than <strong>the</strong> largest it couldever be. If <strong>the</strong> largest possible amount is knownand its chances of occurring are rare, multiplecards may be punched for <strong>the</strong> transaction.After all card data is listed, <strong>the</strong> number ofcolumns required should be added. If this isbetween 80 and 100, it may be possible to reduceit to 80. If it is over 100, an additional card isevidently required. At this point a check shouldbe made to see whe<strong>the</strong>r <strong>the</strong> fields can be rearrangedso that all transactions need not havemultiple cards, but could have if necessary.Master information can be punched in one card andvariable information in <strong>the</strong> o<strong>the</strong>r. Sufficient referenceinformation must be included in <strong>the</strong> secondcard if sorting is required.Some techniques to be considered for reducing<strong>the</strong> number of card columns are:• Reduce <strong>the</strong> size of reference fields by repeating<strong>the</strong> numbering series more frequently. For example,invoice number may start with 1 each quarterinstead of each year.• Record in <strong>the</strong> eleventh and twelfth punchingpositions various codes that may be using a separatepunching position.• Avoid unnecessary data: for example, <strong>the</strong> useof both an order number and an invoice number maynot be necessary if one will provide adequate referenceto <strong>the</strong> o<strong>the</strong>r.• Reduce <strong>the</strong> size of reference fields by recoding.It may be possible to eliminate several positions.• Reduce <strong>the</strong> number of columns required forrecording reference data by ignoring positions thatare not essential for this purpose.If more than one card is to be used to hold a"record", <strong>the</strong> division of information between <strong>the</strong>cards can be made on <strong>the</strong> following bases:1. Place constant information in one card(master) and temporary information in <strong>the</strong> secondcard (detail).2. If more than one source document is used,place <strong>the</strong> information of each document on a separatecard and code <strong>the</strong> cards.3. When one transaction affects two differentaccounts, design a card for each account withdiffering degrees of detail as required by eachaccount.4. For printing a bill, order, or o<strong>the</strong>r notice,design a card for each section of <strong>the</strong> form. Someof <strong>the</strong>se cards (for example, name and addresscards, constant data cards) can be reused.Determining <strong>the</strong> Sequence of FieldsFour basic factors are involved in determiningfield sequence:1. Sequence of data on <strong>the</strong> source documentfrom which <strong>the</strong> new card will be punched2. Machines and programs used to process <strong>the</strong>new cards3. Manual operations in which <strong>the</strong> new card willbe used4. Location of identical data in o<strong>the</strong>r cards withwhich <strong>the</strong> new one will be processedKeeping <strong>the</strong> sequence of fields similar to <strong>the</strong>order in which <strong>the</strong> data is read from <strong>the</strong> sourcedocument will make <strong>the</strong> keypunching operationfaster and more accurate. This is especiallyimportant since keypunching is a manual operationand <strong>the</strong>rfore subject to far greater fluctuation in


Section SubsectionsPage20 30 20 02speed and accuracy than <strong>the</strong> subsequent mechanizedoperations. The sequence of fields can be arrangedto take maximum advantage of machine characteristics.Specifically, field sequence can be designedto maximize <strong>the</strong> usage of card punches, sorters,computers (see 20.30. 10), control panel wiring, or<strong>the</strong> manual handling of cards. Placing data in <strong>the</strong>same columns of <strong>the</strong> new cards as used in o<strong>the</strong>rcards ensures that sorting and controlling <strong>the</strong> datacan be speedily performed when <strong>the</strong> cards are processedtoge<strong>the</strong>r. It also simplifies control panelwiring where cards are processed by standardpunched card machines. If data on <strong>the</strong> new card isto be checked visually by manually fanning a deck ofcards, <strong>the</strong> fields for that data should be located atei<strong>the</strong>r <strong>the</strong> left or right end of <strong>the</strong> card.Using a Card Layout FormA multiple-card layout form (X24-6599) should beused when planning several cards simultaneouslyor when planning a new card that will be used wi<strong>the</strong>xisting cards. The use of this form makes it easyto align those fields that are common to more thanone card, where this is desirable. It also makesworking with <strong>the</strong> formats easier, since <strong>the</strong>y are onone sheet of paper and can be compared with oneano<strong>the</strong>r.Designing <strong>the</strong> Card FormAfter field size and sequence are established, <strong>the</strong>design of <strong>the</strong> card itself can be done. This isusually drawn on a special form considerably largerthan <strong>the</strong> punched card. Photographic reduction isused to create <strong>the</strong> proper-size print plate (called an"electroplate", or "electro").It is not always necessary to design a card formfor each card used in an application. Where <strong>the</strong>cards are used only within your data processingdepartment, are interpreted, and are needed onlyin small quantities, it may be advantageous to usea standard card form, such as <strong>the</strong> <strong>IBM</strong> 5081.Certain principles in <strong>the</strong> design of card formsshould be kept in mind:1. Field and box headings should be explicit andforce writing into desired locations.2. Adequate space should be allowed for accommodatingwritten information..3. The right-hand side of a box containing handwritteninformation should be at least five columnsto <strong>the</strong> left of <strong>the</strong> columns in which it is to bepunched. This is so that <strong>the</strong> data will not be obscuredby <strong>the</strong> punch station of <strong>the</strong> card punchmachine when it is time to punch it.4. Information to be punched should not be handwrittenalong <strong>the</strong> bottom edge of a card, since <strong>the</strong>shield on <strong>the</strong> <strong>IBM</strong> card punch obscures <strong>the</strong> lower1/8" of <strong>the</strong> card.5. Field headings should be above <strong>the</strong> zero rowof a card unless interpretation or printing ofpunches prevents it.6. Headings and interpreted data should be keptbetween rows, so that punches will not obliterate<strong>the</strong>m.7. Preprinted decimals and commas should beplaced where dollar amounts will be interpreted.8. Colored cards, colored stripes, and cornercuts may be used for visible distinction betweencards. Also, an identifying punch (called a "key")may be used.9. Card column numbers should be preprintedwhere possible and digits should be placed where<strong>the</strong> numbers can be punched. These aid in reading<strong>the</strong> punches in a column.10. Mark-sensing fields should be placed on <strong>the</strong>right-hand side of a card, so that <strong>the</strong> card can beeasily held and marked.11. Card or company names should be printed on<strong>the</strong> ends of a card.12. When coded punches are used, decodingabbreviations should be preprinted on <strong>the</strong> card.13. Where no more than 40 columns are needed,a sectional or "tumble" card may be designed inwhich <strong>the</strong> layout in columns 1-40 is duplicatedupside-down in columns 41-80. This allows <strong>the</strong>card to be used twice and cuts card costs in half.Testing <strong>the</strong> Card LayoutAfter <strong>the</strong> card layout is developed, <strong>the</strong> fourth andfinal step in card design is performed — namely,testing <strong>the</strong> card for its effectiveness. For <strong>the</strong> test,<strong>the</strong> new design must be laid out on several cardsand <strong>the</strong> cards must be used in <strong>the</strong>ir designatedprocedure.


Section Subsections Page20 40 01 01DESIGN OF DISK DATA FILESIntroductionThe formats of cards and forms are <strong>the</strong> tangibletypes of input/output. You still must design <strong>the</strong> intangiblerecord formats.Your <strong>1130</strong> <strong>Computing</strong> System is concerned withtwo different intangible records: those in corestorage and those on <strong>the</strong> disk cartridge. Although<strong>the</strong> storage media are different, <strong>the</strong> design considerationsare <strong>the</strong> same.The items discussed in this section concern <strong>the</strong>components of disk records, <strong>the</strong> order of <strong>the</strong> components,and groups of records. Considerationscovered include growth, organization, and content.More detailed information on many of <strong>the</strong> topicscovered here may be found in section 80.


Section SubsectionsPage20 40 10 01<strong>Data</strong>The first step in file design requires a study of allprocedures that utilize <strong>the</strong> file. On <strong>the</strong> basis of<strong>the</strong>se studies, record each necessary item on aworksheet like <strong>the</strong> one illustrated in Figure 20.1.Indicate <strong>the</strong> type of information, <strong>the</strong> frequency ofoccurrence, and <strong>the</strong> sequence in <strong>the</strong> source document,if applicable. The following should be done:• Check that <strong>the</strong> necessary reference data is included,if this is a source file.• Weigh <strong>the</strong> effects of media storage costs vsprogram execution time for constant-type data, suchas tax-exempt dollars in payroll.• Include fields obtained by processing, if <strong>the</strong>results must be recaptured later.• Examine all applications that utilize <strong>the</strong> file,in order to prevent omission of necessary data.• Explore future requirements of <strong>the</strong> currentprocedures. For example, it might be judicious toinclude an additional deduction field in your payrollapplication.• Determine any additional information neededfor planned applications. It may be more practicalto include an extra field now than to reorganize yourfiles later.• Study <strong>the</strong> feasibility of consolidating existingdata files into a single data file to eliminate duplicationof common information, if such a combinedrecord would not too adversely affect <strong>the</strong> runningtime.• Ascertain whe<strong>the</strong>r material needed in a newapplication, for which <strong>the</strong> data file is to be designed,is available already in an existing data file.• Verify that <strong>the</strong> data file, when set up, willcontain all <strong>the</strong> basic information to meet <strong>the</strong> requirementsof all persons who will be using <strong>the</strong> productsresulting from <strong>the</strong> file processing.• Consider file maintenance and audit control.FILE DESIGN WORKSHEETDateStartedCompletedFile NameDesignerProcess Cycle Record Characteristics Fi e Dynamics File Media RequirementsDA MO Type: Character Site NO. REC. YRLY % YRLY SO' 5 YR % TOT NO. TYPE AMOUNTWK YR Fixed MIN MAX AV ADD DROP GROWTH RECVar A B C D E5(B-C) =D A+AD=EInformation Required for <strong>Processing</strong> and Type of Information Field Size SequenceReporting Required IN IN INTRIAL TRIAL TRIAL FINAL SOURCE RECORD RELATEDDOCFILESREMARKSFigure 20, 1. File design worksheet


Section Subsections Page20 40 20 01Field SizeThe number of positions required to record each itemof information should be determined and entered ona form similar to that shown in Figure 20.1.Type of FieldControl and indicative data field size should equal<strong>the</strong> total number of digits in <strong>the</strong> largest single itemto be recorded in <strong>the</strong> particular field. Occasionally,to conserve storage, <strong>the</strong> high-order digits may bedisregarded for a field such as order number.Quantitative data field size may equal <strong>the</strong> totalnumber of digits in <strong>the</strong> largest amount to be recorded,or <strong>the</strong> number of digits that will occur with reasonablefrequency. Procedures can be developed tohandle <strong>the</strong> rare exceptions.Recording MediumSince some media, such as cards and disks, containa fixed number of positions per unit of storage (cardfield or disk sector or track, etc.), it is essentialto consider this overall limit in order to designefficient and practical records.Example:On <strong>the</strong> <strong>1130</strong>, your disk records are automatically"blocked" within 320-word sectors. A 55-wordrecord will be blocked 5 records to <strong>the</strong> sectorwith 320-(5x55) or 45 words unused. Ra<strong>the</strong>r thanwaste <strong>the</strong>se 45 words, you might as well increase<strong>the</strong> size of <strong>the</strong> record to 64 words, which willstill allow 5 per sector (5x64 320) with nowaste. Or, if possible, reduce <strong>the</strong> record sizeto 53 words, which permits 6 records per sector.File Size (Total Number of Records)Since <strong>the</strong> field size affects <strong>the</strong> total record size, allunnecessary positions should be eliminated to decreaseI/O time and storage media requirements.Future RequirementsIf <strong>the</strong> demands to be placed on <strong>the</strong> information indicatean impending need for ano<strong>the</strong>r position, itwould be easier to incorporate <strong>the</strong> additional characterin <strong>the</strong> design phase so as to avoid reprogrammingand a patched-up record layout.Field Compaction <strong>Techniques</strong>Because a reduction in <strong>the</strong> length of a record pro-, duces such positive results as an increase in DASDpacking and a decrease in time to read and/or write,field compaction techniques should be investigatedand <strong>the</strong> cost of <strong>the</strong> technique evaluated as each fileis designed. Some methods to consider for reducing<strong>the</strong> number of positions are found in 80.60.00.A given compaction technique must be evaluatedfor:1. Amount of core storage required to hold <strong>the</strong>encode-decode instructions2. Encode-decode subroutine timing requirements3. Compaction percentage achieved4. Compatibility with programming systems5. Retention of collating sequence6. Retention of fixed field length7. Effect on <strong>the</strong> overall system, including relatedclerical functionsSome of <strong>the</strong>se methods are discussed in detail insection 80. For a discussion in depth of compactiontechniques see Record Compaction <strong>Techniques</strong>(E20-8252).


Section SubsectionsPage20 40 30 01<strong>Data</strong> Sequence<strong>Data</strong> sequence is most critical for those files thatwork with source documents. Card punching, terminaloperations, etc. , being manual operations, aresubject to <strong>the</strong> greatest variation in rate of production.Anything that simplifies <strong>the</strong>se functions tends to ensurea faster and more accurate operation. The followingare points to bear in mind:• Recording of data in <strong>the</strong> same order as that inwhich it is normally read. If <strong>the</strong> data sequence isconsiderably different from that on <strong>the</strong> source document,it may be necessary to redesign <strong>the</strong> sourcedocument and retrain personnel. If <strong>the</strong> file is to beused as input to a serial I/O unit, such as disk tocard, <strong>the</strong> sequence is dictated mainly by <strong>the</strong> sequencedesired on <strong>the</strong> output unit.• Location of like fields in <strong>the</strong> same relativerecord positions in files that work toge<strong>the</strong>r. Thisensures that sorting and controlling can be accomplishedif <strong>the</strong> file is contained in cards; it alsofacilitates programming.• Placement of sorting fields adjacent to oneano<strong>the</strong>r, with <strong>the</strong> minor code on <strong>the</strong> right and eachprogressively higher code to <strong>the</strong> left. Although sortprograms can operate on multiple-control fields,time is used to extract and combine fields into asingle key.• Compatibility with computer characteristicsso that data sequence does not affect processingspeed.• Arrangement of alphabetic/alphameric data inone area of <strong>the</strong> record. This facilitates handling ofdata, particularly in fixed-word-length machines,such as <strong>the</strong> <strong>1130</strong>, and permits minimum core andmedia requirements.• Adherence to requirements of programmingsystems.


Section Subsections Page20 40 40 01File OrganizationFor strictly card- and/or paper-tape-orientedsystems, file organization normally is sequential.Therefore, <strong>the</strong> following discussion of indexed sequential(as in an encyclopedia) vs random organization(as in shuffled playing cards) is orientedmainly toward <strong>the</strong> design of disk data files.Indexed Sequential Advantages• Both sequential and random transactions canbe handled effectively in most cases.• Reports arranged in data file sequence can beobtained without sorting.• Control over both <strong>the</strong> processing and <strong>the</strong> storedfile can be more positive.• Less storage space is required.• Frequently <strong>the</strong> entire file need not be onlinesimultaneously.Indexed Sequential Disadvantages• More core storage may be required becauseof index handling routines.• Process time is greater for random inputbecause of index file seeking and processing.Random Advantages• Less core storage is required normally.• Process time is less for random input.Random Disadvantages• To maintain access requirements, frequentreorganization may be necessary if <strong>the</strong> file is dynamic.• Extensive key analysis and development ofaddress conversion routines probably are requiredfor implementation.A detailed description of <strong>the</strong>se techniques may befound in section 85.


Section SubsectionsPage20 40 50 01Record Format and BlockingTo select <strong>the</strong> record format and blocking, each of<strong>the</strong> following factors must be considered:1. File boundaries. Cards are limited to 80columns of punched data, while <strong>the</strong> disk has 320words that may be recorded on each sector.2. Core storage requirements. Since IOCShandles physical records for I/O operations and containsa core storage area large enough to accommodate<strong>the</strong> physical record, you must supply a corestorage area for a logical record. In addition, forefficient operation, multiple I/O areas may be requiredfor <strong>the</strong> I/O devices.


Section Subsections Page20 40 60 01File <strong>Processing</strong>Before <strong>the</strong> file design is finally determined, <strong>the</strong> runtime and associated costs should be calculated for<strong>the</strong> entire system. The results must be evaluatedto determine whe<strong>the</strong>r <strong>the</strong> original design objectiveshave been met. If <strong>the</strong> system is I/O-limited (thatis, if I/O time exceeds process time), <strong>the</strong> followingapproaches may be considered:• Create a second master file splitting away from<strong>the</strong> main master file those fields not required on <strong>the</strong>primary runs. For example, name and addressrecords could be kept in a separate name and addressfile. This new file would be used perhaps only asoutput documents are printed.• Extract from <strong>the</strong> master file <strong>the</strong> active recordsfor processing. This method is useful if <strong>the</strong> ratio ofactive master records to total master records isvery low.• Increase <strong>the</strong> number of input buffers. If <strong>the</strong>activity rate is low and processing time per hit ishigh, more process time can be overlapped if <strong>the</strong>input is queued in additional buffers. Ifprocess timerequires 250 milliseconds while an input area canbe filled in 50 milliseconds, <strong>the</strong>re will be 200 millisecondsof unoverlapped process time per hit, withtwo input areas. If <strong>the</strong> number of input areas wereincreased to four, only 100 milliseconds would notbe overlapped.


Section SubsectionsPage20 40 70 01File ControlThe design of a data file connot be divorced from<strong>the</strong> environment in which <strong>the</strong> file must function.Some of <strong>the</strong> considerations of file control and maintenanceare now discussed.<strong>Data</strong> ValidationThe entry of incorrect data into a file should be prevented.The following techniques may be used tocontrol <strong>the</strong> accuracy of input data:1. Precoded forms, or standardized and simplifiedforms, which reduce <strong>the</strong> possibility of error at<strong>the</strong> point of origin of <strong>the</strong> data.2. Batch controls that establish totals for agiven group of records to detect <strong>the</strong> loss or distortionof data during intermediate handling. Abatch may consist of a fixed number of items or <strong>the</strong>transactions that occurred in a given period of time.Typical batch totals are record counts, dollar orquantity amounts, and "hash" totals of significantdata, such as wage rates. Frequently, batch totalsare recorded in a trailer record to provide automaticzero-balance checking.3. Turnaround documents, such as prepunchedremittance forms, which require little or no extrarecording and a minimum of handling.4. Character checking, which determineswhe<strong>the</strong>r <strong>the</strong> data in given positions of <strong>the</strong> recordcontain permissible characters. This type of checkcan be used to ensure that <strong>the</strong> proper algebraicsign is present for <strong>the</strong> type of transaction or thatalphabetic data is not included in numeric fields,and vice versa, or that data is present where required(not blank).5. Field checks that examine <strong>the</strong> content of afield for certain characteristics. These include:• Limit checks, which determine whe<strong>the</strong>r datais within a prescribed range. Such checks can applyto fields such as employee's wage rate, amount ofgross pay, etc.• Historical checks, which use prior experienceas a basis of validation. The public utility industryoften compares, for reasonableness, prior consumptionfor a year or more against current usage.• Validity checks, which compare <strong>the</strong> contentof a field against a list of existing "good" numbers.This prevents posting to nonexistent account numbers.Matching by control key against a master file indicatesduplicate and missing numbers.• Logical relationships, which determine whe<strong>the</strong>r<strong>the</strong> items of input data have a logical relationship toone ano<strong>the</strong>r or to <strong>the</strong> file <strong>the</strong>y affect. For example,if an employee adds a bond deduction, a bond denominationis also required.• Self-checking numbers, which detect incorrectidentification numbers (such as account number,employee number, etc.) by performing certainma<strong>the</strong>matical calculations on <strong>the</strong> base number andcomparing <strong>the</strong> resulting digit against a check digitappended to <strong>the</strong> base number.Operating ControlsThe following controls are common methods used todetect errors caused by poor operator performance,equipment failure, or malfunctioning programs:1. Disk cartridge ID checking, which verifiesthat <strong>the</strong> proper cartridge is online before any processingcan take place.2. Record counts, which check that <strong>the</strong> numbersof records before and after processing are <strong>the</strong> same,in order to guard against accidental loss of a record.3. File totals, which ensure that <strong>the</strong> file is inbalance in light of <strong>the</strong> transactions just processed.For example, <strong>the</strong> previous file total for a givenfield plus <strong>the</strong> net change represented in <strong>the</strong> transactionsshould be equal to <strong>the</strong> sum of <strong>the</strong> individualrecord fields after <strong>the</strong> transactions are processed.4. Intervention logging, which records through<strong>the</strong> console printer any intervention by <strong>the</strong> operator.Error AnalysisThe file control techniques suggested above indicate<strong>the</strong> wide variety of methods available. Selection of<strong>the</strong> specific control procedures depends on suchfactors as <strong>the</strong> frequency of possible occurrence, <strong>the</strong>results if <strong>the</strong> error were allowed to enter <strong>the</strong> system,and <strong>the</strong> chance that <strong>the</strong> error might remain undetectedeven through later operations. <strong>All</strong> errorsshould be logged indicating <strong>the</strong> nature and <strong>the</strong> cause.A review of <strong>the</strong>se error logs can serve as a guideto management to increase or decrease errorcontrol.When errors are detected, any of <strong>the</strong> followingprocedures can be used:1. Programmed halts, where <strong>the</strong> computer ishalted by detection of certain conditions, and <strong>the</strong>operator follows prescribed steps dependent upon<strong>the</strong> nature of <strong>the</strong> halt. The trend is away from programmedhalts to eliminate operator intervention.2. Bypass procedures, where <strong>the</strong> error conditionis recorded on some output medium, such aspaper tape or console printer, for later analysis,and <strong>the</strong> computer continues without stopping.


Section Subsections Page20 40 70 023. Suspense accounts, where totals are postedfor invalid records in order to keep in a singleaccount all items requiring analysis.Audit TrailAn audit trail may be defined as <strong>the</strong> means whereby<strong>the</strong> source transaction and its corresponding supportingdocumentation can be related to processeddata. Although <strong>the</strong> audit trail may be a by-productof normal processing, it may sometimes be additional.The requirements of <strong>the</strong> auditor should bediscussed to provide <strong>the</strong> necessary historical informationtrail.ReconstructionIf <strong>the</strong> information on a file is mutilated, <strong>the</strong> need forreconstruction arises. The method selected dependsupon such factors as job priority, <strong>the</strong> time and costrequired to provide reconstruction data, and <strong>the</strong>time and cost required to perform <strong>the</strong> reconstruction.Listed below are several approaches:1. Periodically, a dynamic disk file should becopied (dumped) on paper tape, on cards, or onano<strong>the</strong>r disk. Often, <strong>the</strong> copy can be made as aby-product of a periodic run. <strong>All</strong> transactions since<strong>the</strong> last dump must be retained to update <strong>the</strong> copy tocurrent status.2. To avoid reprocessing of all transactionssince <strong>the</strong> last dump, write <strong>the</strong> updated records onpaper tape or cards as <strong>the</strong> transactions are processedagainst <strong>the</strong> file. In sequential processing, only onepaper tape or card record per active disk record iswritten. In case of reconstruction, <strong>the</strong> record with<strong>the</strong> most recent status can be used to replace <strong>the</strong>corresponding record on <strong>the</strong> dumped file.3. If no output unit is available to record <strong>the</strong>updated records, as suggested above, <strong>the</strong> mastercan be flagged, and on a later run <strong>the</strong> flag can signala copy operation for a given record. This techniquerequires a rewrite to <strong>the</strong> file for removal of <strong>the</strong> flag.4. The contents of a static file should be availableei<strong>the</strong>r by copying to ano<strong>the</strong>r disk or by dumping ontopaper tape or cards that may be used later to reload<strong>the</strong> mutilated file.


Section SubsectionsPage20 50 10 01PAYROLL EXAMPLENarrativeNote: <strong>All</strong> of <strong>the</strong> pages in <strong>the</strong> following examplerepresent material that you should have developedby this point in <strong>the</strong> installation of your system.When completed, <strong>the</strong> material becomes a part ofyour system documentation (see section 35).* * *The corporation consists of six manufacturingplants, engaged in <strong>the</strong> fabrication of Liquid DairyProduct Packaging in Ohio, Indiana, WestVirginia, and Texas. The payroll system wasdesigned to accommodate all six plants, whichhave separate bookkeeping records. However,<strong>the</strong> accounting functions are centralized in onelocation. Communication is by phone and mail.The system consists of 16 programs.The files creation program is first. <strong>Data</strong> decksare keypunched for each individual, in sets, byplant. The data is edited and, when correct, isloaded on <strong>the</strong> disk by PAY01. Three files arecreated: a master file, an index file, and a plantinformation file. A second data deck with employeeclock number and name is loaded onto <strong>the</strong> masterfile by PAY02.Changes to <strong>the</strong> disk information are made byPAY03. Documents, received from personnel departmentsat <strong>the</strong> individual plants, are checked,summarized, keypunched, and verified. Timesheets, submitted by <strong>the</strong> plant payroll departments,are keypunched and verified. <strong>All</strong> <strong>the</strong>se cards areprocessed by PAY16, which edits and generatescontrol totals. PAY04 <strong>the</strong>n processes <strong>the</strong>se cards,performing all payroll calculations. Cards are read,pay is computed, disk files are updated, and cardsare extended with current pay figures. After allcards are processed, a payroll register is printed.Checks are printed by PAY05. A header card isread and <strong>the</strong> checks are printed from <strong>the</strong> disk file.PAY06 lists <strong>the</strong> check register from <strong>the</strong> disk file.If an error is made in computing pay, PAY11 provides<strong>the</strong> means of voiding checks. The extendedtime cards from PAY04 are read in and <strong>the</strong> affectedemployee records are reset. The above areweekly runs.At month end, registers are prepared showingeach individual's deductions for <strong>the</strong> month:PAY13 writes union dues register.PAY14 writes credit union register.PAY15 writes stock deductions register.PAY12 resets charity deductions code.At <strong>the</strong> end of <strong>the</strong> quarter and at <strong>the</strong> end of <strong>the</strong>year, PAY07 and PAY08 are used to balance <strong>the</strong>disk files to control totals.PAY09 produces <strong>the</strong> 941 tax report.PAY10 produces a tax worksheet used to determinetax liability.


Section Subsections Page20 50 20 01Card Forms and Console Keyboard InputPAY01 Plant no. - 1 digit - keyboardWeek no. of month - 1 digit - keyboardCheck no. - 2 digits - keyboardName - 18 blanks - keyboardPlant name - 32 characters maximum - keyboardFigure 20.3 - cardPAY02 Plant no. - 1 digit - keyboardFigure 20.4 - cardPAY03 Plant no. - 1 digit - keyboardFigure 20.2 - cardSocial Security Number, if changed - keyboardFigure 20.5 - cardFigure 20.6 - cardPAY04 Figure 20.7 - cardCheck no. - 5 digits - keyboardWeek no. of month - 1 digit - keyboardMaximum check amount allowed - 5 digits - keyboardFigure 20.8 - cardPAY05 Figure 20.7 - cardCheck no. - 5 digits - keyboardCheck maximum amount - 5 digits - keyboardClock no. (if requested) - 4 digits - keyboardPAY06 Figure 20.7 - cardPAY07 Plant no. - 1 digit - keyboardPAY08 Figure 20.10 - cardFigure 20.11 - cardFigure 20.6 - cardPAY09 Figure 20.12 - cardFigure 20.13 - cardFigure 20.14 - cardFigure 20.15 - cardFigure 20.16 - cardPAY10 Figure 20.10 - cardFigure 20.6 - cardPAY11 Figure 20.7 - cardFigure 20.9 - cardFigure 20.6 - cardIf requested:Insurance deduction - 4 digits - keyboardStock deduction - 4 digits - keyboardCharity deduction - 4 digits - keyboardMiscellaneous deduction - 4 digits - keyboardPAY12 Plant no. - 1 digit - keyboardPAY13 Plant no. - 1 digit - keyboardIndividual amount for a plant - 4 digits - keyboardPA Y14 Plant no. - 1 digit - keyboardPAY15 Plant no. - 1 digit - keyboardPAY16 Figure 20.7 - cardFigure 20.8 - card


•£ 'oe aznsId086L9LLL9L5Lnuetto6L69e9t99e59v9nn19096595LS9SSSI ,StSZSIS9S6P9 LP9PS1HODIP0YBESEtte£SEKSEZEIC0M9 U8ZSZI,ZUZCIZOMIlliteltliltlii40113 9 9 999 16666666666666666666666666666666666666666666666666666666666666666666666666666666699999988999989998999898999999899999998999989998989898999999999998889999898819999LLILLILLILLILLLLILLLULLULLILLLILLULLLLLLLLLLWILLULLI.LIILLLILLILLILLLILLILL99999999999999999999999999999999999999999999999999999999999999999999999999999999g o ggSGGSGSGSGSSGSGGSGS0900999000000000000000000000006000009090009000900000GCMGt444tttt17444ttittitttttt4tt4t4P4Mttilitittt4tttttittttlittUtti7MtitttttiqtotiltttPti74Ce£CCEMECCUEEECCEECEECECCEEMECUCECCECCECECEECECEEMECCUCCEMECCUCUEEE1111111111111M1111111111111111111111111111111111111111111111111111111111111111111111,11.111.111,11111111.11.1.111.111111111111111111111111111111111111111-1111111111111.086L9LLL9LSL,LUZLIL0L6969/99901,944i9190985955955SKETZSESOGB1, 11,L 91 gr ptEt2 ltiri6ESCa9 STKETZCICOMULL9 SinagliOi9I9ILI9ISI1ICIZtl in9 99 296 10 00 0 0 000 0 0 00 0000 0 000 000 000 00 00000 0 00000 0 00 00 0000 00 0 000 000 000 00 00000000 000 0 00 000 0I n.,4,- .:::,9, 'ii?1 .t..2 p7E..F iF. 1'"07 9,1,4a.,3C1,^ .1001°1-1 , 16', 1; s .„(124i.'ON1 5 A !Ames,eposg, mu0 Aedi',,N1,70131'y'z 'oz aal2Id7g4OBSLILLL9/5/PLELZLILOL8989L999 g9t9C9I8190913;65LSOSCSNESZSISOS146109,51HDri,ltiNGEKLEKSti,ettalEOC6ZULZSZSZPLUZZ120i1414L114S111C1,I140111 9 L 9 9 9 2 2 16666666666666666666666666666666666666666666666666666666666666666666666666666666699899899899989999899899999899989988998989998999999999999999998899989889989999899LLL1.1.111111LLLLLLLLLILLLLLLLILLULLLILLILLILLILLLILLLILLLLILLLLULLL1111LLILLILL99999999999999999999999999999999999999999999999999999999999999999999999999999999GGSGMCgSVISGSGSSCGSSGSGSSSGSGGSGSGSSSCSGSGSGSGGSGSGSGG5GGSGSGSGSGSGGSCSEGSGSgS44tttitttt4444tt4ttittttiittitttt4ttintttiqttti7444tUtttlittttiqttttttlitttitttttilttt4tECEECECCEEMEEMEEECCEEEEMEEEECCEEMEEEECCEMECECECCEECEEECCCEECCECEEECECEZiZZZZZZZZZZZZZUZZZZZZZZMZZZZZZZZZZZZZZZZZZZEZZZZZUZZZZZUZZZZZZZZZZZZZUZZZlill111111111111111.1.11.1.1.111111lillitillilltillIll1111111.1111l11111111111.11.11.1111088LIILLUILSLYLUZLIL0/69119L9995911E8L9190913S1431155SISCSZSI OCOStL19151,tteta, ltOtURLE9ESEKESUICOCSZULZSZUKUZZILOM9ILI8ISIPIELII40111 9 L 9 9 4 9 2 10000000000000000000000000000000000000000000000000000000000000000000000000000000051u.18'6'-'43 i.:,,N, ,./ZOOZ 09 OZabedsuopesqnsuogoes


Section Subsections Page20 50 20 03/ClockNo.NameBlankV 123 30000000000000000000000000000000000000000000000000000000000000000000000000000000001 2 3 4 5 6 7 8 910 11 12 13 14 15 1611 18 192921 2223 24252627 28 2930 31 32 33 343536 31 38 39 40414243 4445 464748 4950 51 52 53 5455 5617513 59 6061 5263 6465666168 69 10 71 12 13 14 15 7671 7829$3111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666666666666666.6666666666666667777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999991 2 3 4 5 5 7 8 9 /0 11 12 13 14 15 1611 18 19 20 21 22 23 2425 2627 282930 31 32 33 3435 36 31 38 39 404142 43 4445 46 47 48 49 50 51 52 53 54 55 56 57 58 5960 61 62 63 646566 61 66 69 10 71 12 73 74 15 76 71 18 7980Figure 20. 4.Social/ SecurityClock No.No.litli 4,',51.2-O5 «I 845 .5 ''4- i.iPay69, ci Rate c,1;


Section SubsectionsPage20 50 20 04Blank0 00 00 0 00 000 0 00 0 0 0 0 0 0 0 0000 000 0 0 0 0 0 000 0 00 000 000 000 00 0 0 . 0 00 0 00 00 0 0 000 0 00 0 000 00 0 0 0 0 0 01 2 3 4 5 8 7 8 9 10 11 12 13 14 15 18 17 18 19 20 21 22 23 24 25 X 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 424344454847 48 49 50 51 5253545556575859606162636465686768697071 72 73 74 75 78 77 78 7911111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222 23333333333333333333333333333333333333333333333333333333333333333333333333333333 34444444444444444444444444444444444444444444444444444444444444444444444444444444 45555555555555555555555555555555555555555555555555555555555555555555555555555555 56666666666666666666666666666866666666666666666666666666666666666666666666666666 611171111171171111111117111711111117171177171171711171117177117117171117711111778888888888888888888888888888888888888888888888888888888888888888888888888888888 89999999999999999999999999999999999999999999999999999999999999999999999999999999 91 2 3 4 5 5 7 8 9 10 11121314257817 1819202122232425 28 21 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 48 47 48495051525354555857585960818283646566V 686970717273 7475787718 79 80Figure 20. 6./PlantNo.CheckDateEarningsDateTotalClockNumbersTotalRegularHoursTotalOvertimeHoursTotalBonusHoursTotalSpecialEarningsBlank00 00 00 0 000 0 000 00 0 0 000 0 0000 000 00 00 0000 00 0 0000 0 00 0 00 0 00 0 000 0 0 0 000000000 0 0 0 000 0 0 0 0 01 2 3 4 5 8 7 5 8 10 11121314151817 18 19 20 21222324 75252728 29 30 31 32 33343535373839404142434445 48 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61628364 OM 67 68 69 70 71 72 73 14 75 78 77 78 79 8011111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666866666666666666666666666666666666666666666666)66666666666666666666667777777777777777777777777777777777777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999991 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 17 18 18 20 21 22 23 24 25 26 27 282930313233343538 37 38 39 40 41 42 43 4445 46 47 48 49 50 51 52 53 54 55 58 57 585960816263648586876389707172737475 76 77 78 79 50Figure 20. 7.


Section Subsections Page20 50 20 05/ClockNo.RegularHoursOvertimeHoursBonusHours"ii Special8 Earnings-8 Special8 Earnings-8 Special8 EarningsBlank13a00000000.0000000000000000000000000000000000000000000000000000000000000000000000001 2 3 45 8 7 8 9 10 11121314151817 18 9 202122 23 2425 2827 2828 30 3132 33 34 35 36 37 38 39 404142 43 44 4546 47 48 49 50 5152 535455 56 57 58 5960 6162 6364 85 66 67 68 69 70 7172 7374 75 78 77 78 79 80111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333,i33333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666667711117111117771171117711111111117177111711111177171111117117771111111111111117788888888888888888888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999991 2 3 4 5 6 7 8 8 10 11 12 13 14 15 18 17 18 18 20 21 22 23 24 25 28 27 28 29 30 31 32 33 34. 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 58 60 81 62 63 64 55 68 67 68 69 70 71 72 73 74 75 76 77 78 79 80Figure 20.8./Total <strong>All</strong> i l2AClock Regular Overtime Bonus -8 Special 41 Special 43 Special PayLocal Credit Union O<strong>the</strong>rNo.g a'''Hours Hours Hours 8 Earnings 3 Earnings 8 Earnings Rate Gross Net FIT FICA Tax Union Dues Deductions ii, en000000000000000000000000000000000000000000000000000000000000000000000000000000001 2 3 4 5 8 7 8 9 011121314151617181920212223242526272829303 3 3334353637383940414243444546 7484950515 5354555657585960616263648566876869 071727 74757877781919311111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555-55555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666661177711177117111711771717171111777171177111117111711111717717777111111117711717788888888888888888888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999991 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 16 20 21 22 23 24 25 28 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 48 47 48 49 50 52 53 54 55 56 51 58 58 60 6182 63 64 65 66 67 88 69 70 71 72 7 74 75 76 77 7819 80Figure 20.9.


Section Subsections Page20 50 20 06PlantNo.Blank0 00000000000000000000000000000000000000000000000000000000000000000000000000000002 3 4 5 8 7 8 9101112131415181718192021n232425282728293031323334353837383940414243444548474849505152535455565755596061526364656867586910717273747578777879801 11111111111111111111111111111111111111111111111111111111111111111111111111111112 22222222222222222222222222222222222222222222222222222222222222222222222222222223 33333333333333333333333333333333333333333333333333333333333333333333333333333334 44444444444444444444444444444444444444444444444444444444444444444444444444444445 55555555555555555555555555555555555555555555555555555555555555555555555555555556 666666666666666666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777777777777777777777777777777777778 88888888888888888888888888888888888888888888888888888888888888888888888888888889 99999999999999999999999999999999999999999999999999999999999.999999999999999999992 3 4 5 6 7 8 610111213141518171119202122 23242528272829303132333435383738334041424344454647484550515253545556575859608182636465586761697071727374757877787110Figure 20, 10,ClockNo.Blank0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 2 3 4 5 5 7 5 9 10111213141515171815202122232425N2725283031323334353537383940414243444548474845505152535455555758592+361828364656887888970717273747576777578501111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222.2222223333333333333333333333333333333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777777777777777777777777777777777777888888888888888888888888888888888888888888888888888888888888888888888888888888889999999999999999999999999999999999999-19999999999999999999999999999999999999999991 2 3 4 5 8 7 8 9 /01/12131415181718192021222324252527282930313233343538373839404142434445464745495051525354555657585960131528324858813768697071721374757577757980Figure 20, 11.


Section Subsections Page20 50 .20 07iDate forReportingPeriod2 eEBlank0000000000000000000000000000000000000000000000000000000000000000000000000000000012 345 6 7 8 13 1011121314151617181920212223242525272829303132333435383738394041424344454847484950515253545556575859608182831348513387886970717273747578777819801111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666661111711111177771171111171717111111111171111111111111711111711111111111171111111788888888888888888888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999991 2 3 4 5 5 7 8 9 10 11 12 13 14 15 18 17 18 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 38 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 58 57 58 59 60 81 S2 63 84 65 68 87 68 69 70 71 72 73 74 75 76 77 78 79 80Figure 20. 12.Company NameBlank000000000000000000000000000000000000000000001 2 3 45 8 7 9 9101112131415181718182021222324252827282830312233343538373839404142434411111111111111111111111111111111111111111111. 1111111111111111111111111111111111112222222222222222222222222222222222222222222233333333333333333333333333333333333333333333444444444444444444444444444444444444444444445555555555555555555555555555555555555555555566666666666666666666666666666666666666666666777777777777777777777777777777777777777777778888888888888888888888888888888888888888888800000000000000000000000000000000000045 46 47 48 49 50 51 52 53 54 55 56 57 58 59 50 61 62 63 54 85 68 87 178 88 70 11 72 73 74 75 18 77 78 79 8022222222222222222222222222222222222233333333333333333333333333333333333344444444444444444444444444444444444455555555555555555555555555555555555566666666666666666666666666666666666617117171111111717111117171111771111788888888888888888888888888888888888899999999999999999999999999999999999999999999 999999999999999999999999999999999999I 2 3 4 5 8 7 8 910111213141518171819202122 232425262728283031323334353537383944141424344 45 46 47 48 49 50 51 52 53 54 55 56 57 55 59 60 61 82 63 64 65 lie 61 88 69 70 71 12 73 74 75 16 77 78 79 80Figure 20. 13.


Section SubsectionsPage20 50 20 08Street AddressBlank00000000000000000000000000000000000000000000 0000000000000000000000000000000000002 3 4 5 8 7 8 810111213141518171811120212223242528272829303132333435363738394041424344 454547484950515253545555575859606162638465 21875659101172737475751775785011111111111111111111111111111111111111111111' 11111111111111111111111111111111111122222222222222222222222222222222222222222222 2222.2222222222222222222222222222222233333333333333333333333333333333333333333333 33333333333333333333333333333333333344444444444444444444444444444444444444444444 44444444444444444444444444444444444455555555555555555555555555555555555555555555 55555555555555555555555555555555555566666666666666666666666666666666666666666666 66666666666666666666666666666666666611711171111111111111711771117171711171111717 11111111717171171117117177711777771188888888888888888888888888888888888888888888 88888888888888888888888888888888888899999999999999999999999999999999999999999999 999999999999999999999999999999999999I 2 3 4 5 5 7 I 9 1011121314151817111111202122232425X272828303132333435353738394041424344 45 48 41 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 68 67 68 69 70 71 72 73 74 75 16 17 78 79 80Figure 20. 14.City and Zip CodeBlank00000000000000000000000000000000000000000000 0000000000000000000000000000000000002 3 4 5 5 7 8 91011121314151617181920212223242528272829303132333435383135394041424344 454547484150515253545554515859121518253646566676069701112131475761718788011111111111111111111111111111111111111111111 11111111111111111111111111111111111122222222222222222222222222222222222222222222 22222222222222222222222222222222222233333333333333333333333333333333333333333333 33333333333333333333333333333333333344444444444444444444444444444444444444444444 44444444444444444444444444444444444455555555555555555555555555555555555555555555 55555555555555555555555555555555555566666666666668666666668666666666666666666666 66666666666666666666666666666666666611111111111111177111711117111111171111171111 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 788888888888888888888888888888888888888888888 88888888888888888888888888888888888899999999999999999999999999999999999999999999 9999999999999999999999999999999999991 2 3 4 5 5 7 8 9 10 11 12 13 14 15 16 171111520 2122232425 2827282330 31 32 33 343536 37 3539 40 41 42 4344 454847454950515253545556575859606162636465656768697071727374757677187980Figure 20, 15,


Section Subsections Page20 50 20 09/StateFederalAccountAccountNo. Blank No. Blank0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 2 3 4 5 6 7 8 9101112131415181118192021222 2425262728293031323334353637383940414243444546474849505152535455565758696081626384655667686970717273747578777879931111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666667777777777777777777777777777777777777777777777777777777777777777777777777777777768886868888888888888888888888888888888888688888888888888888888888888888868888888999999999999999999999999999999999999999999999999999999999999999999999999999999991 2 3 4 5 6 7 8 9 10111213141516171819202122232425M272829363132333435363738394041424344454641484950515253545558575859606162836465566768687071727374757677787963Figure 20.16.


Section SubsectionsPage20 50 30 01Console Printer and Line Printer Forms for OutputPAY01 NonePAY02 NonePAY03 NonePAY04 Figure 20.18Figure 20.19PA Y05 Figure 20.19PA Y06 Figure 20.20PAY07 Figure 20.21PA Y08 Figure 20.17PAY09 Figure 20.22PAY10 Figure 20.23PA Y11 Figure 20.18PAY12 NonePAY13 Figure 20.24PAY14 Figure 20.25PAY15 Figure 20.26PAY16 Figure 20.27


I11101---- --iiironnimb._ _..,,,,,,n.... siMiniell12____.-,,,.■■l1=,--—.Nu•iiiiiiiiiiiiiiiiiiiiklbe--. NIm Immo Immommiiiiiiiiiiiiiimillilliiiir MiiiMirmilanliMMIEB Elmo. in B3 -------iE:- ••-i-11—rIMMMIIIIIIIIIIIIIMMIIIMIIIIIIIIIhillillMMM1U11MUMIIIIIIIIIIII MU MINIIIIIIIIIIISIMIIIIIIIIIMMIUMM11111111101IMINONNIIIIIIIIIIIIIIIIIIIIMMIII1103MIUM1111161111111•11•11.11111MINEN•nomMENEMIIIMMENIMIU111=110•111111UNI MI El 1111111111■UMNIMMIIIIMINIIIIIIIMMINNIIIIIIIIIIIIIMINNUMIIMMIIIIIIIIIIIIIIIIIIIIIIMEMIIIIME13 IIIIIIIMINIIIWIMIIBIMIIIIIIIIIIIIMMIIIIMMMIIIOMIMIIIUIIMHMIIIIOOIIIIMMIIIIIMIIMIIIIMMMIIIIOIIMOMIIIIMIIIIMIIIOMUIIIIIMMIMCB MMIIIIIMIIMIIIMMIIIIIIUIIMMMIIMIIINIIIIIIIIIII111111111i4ME.IIIIMMOMMEM 1111iiiMMEMMEMIMIIINMENIIIIIIMUIMIMMINIIIIIIIIIMMENIIIII••=11111MMINIIIILMONZIMMINNESIMMIIMENIMMUMMEMIIMUNNEMESIMMIZIE mammon.IIMMIIIIIIIIM IIIIMMIUMMIONIIIIININIIIIIMMEMEIMUME IIInNm111111111110111111EMIIMINE1111■■1001111IIIIMMIIIIII ■ •ffalEMEEFn ININERSOVIVAIVIMINENLIPS11111111E1■■■1111.111.111111111110111,11MILB mammon.MNIMIELKLYKILAL .4/ LLASAKE110.17AKWL7rinr1L.44 r.IVAL PPE, .11 AL, )f ILIKIIKIEVLUL:10:4:INKOILFALrli.Clf :1111RION2LA4/ 41mKIVI 4 D: 00..411E61 111'. IIP I ■ 11,1■1 irt,r MED IMIIIILLUINIIIiltallla■an. IIEMNIMMUNEIMMUMEINIUMUttliniallMiNglalliiiirlIMIIII IM Iriln iZIIIMEM■1 HUI MIT° ill Ti IIIIrsiaLapin•:• • Ws Ilil • r.., IVA ■HEIbli ■II ■MIIIItla. 011•111,% 4liffin •1 nui•nl ONIMML;1141..);,, -: uz. sigginrg.....imignyx,RIN.v.?, ,1 91 = mu DaumSIMINIIIIIIM0 mmil ■• ■ MI IIMI IIIMMUMi 1111■11Hmm l":111, MM HIM.*Emq...•••••••••Alimmml. siom ■ , s. 11 •!=t;TAlp. •4,,,:qii=ippipprumiq* . CO111111111941IMLke AMI1:1 ' 11,111101RM% RI otlf. • 411. IV Cli• •• ..b• I LIN ,•,,.. mn 'Ulfil ii d At iiiIIAS,,,LL•L1411•171 IIIIIIIIIMMIIII NM- , m mil 11III-iyi-1-1. * . Ppfl prip PP 1111.. . 01,111111111111111111111Ell 1111104•1111111.111:41:Iiill'AVALANIIVAIIII.laniiii01 LA. /I MIA in L'<strong>All</strong>t <strong>All</strong>.t.41.4 11).0. .III _. "1' _. (.Aalijaym 1 AVY Wtttp1,-.1. w4110.441.44MCW7A0ANi DA41Avagse4*Fs11111111M11111111■mo.moirorir.41.11.1111111...11.1 OM , AU* /Ill ■*11.1 'Ir . /L.Loi'lL11 .LI 10.1111111111104111111111111111111111•MIIIIIIllno mimmumismummommilimmumommum ormummlimints IIIIIIMMIN■I11.11111111r■W111 AIIMMOTFIM ,,, IIIIIIN.V11•111,111,$112 IC lo:illifil zurriva INK( ri4 NV iil■Illf iAl tl) fLFIIIMV■A tIRINICI 11WiziC L:L:li lip 11 11111111INIMIllia ElWILCIIMII ■∎WI P • IWO'. 'IA; !LAI. kilo • <strong>All</strong>IZL,- = Mr=11 • 'ITEM!! cL.Ipt;!..t...,N•ilp.t :1 ...,,,t.;, Bat L IMMINmigallnigo i 0,1■11 1k. i . L, I, 11111111141111111immummummummummun mem imiINIIIIIMIIIIIIIIIIIIIIIIIIIIMINIMINIIMIIMIIIIIIIMIMMINIMINMERICI 11111111,41MIIIIIINIMIIIIIIIIHWAVAIL.1 mow: NOME 111E010 CV.011 I/AWE, ...11Mir r.viommscwori•••••morAgvvxmw.oli.0;.•••••••••••••••mmumtm ■10111111111111111milimmumimmummormilm mumi li■i■■• semimrommummumommummummommilimmimm OMOOMONIOOMOOMOMONMS2 111111111111041■ MIIMMEMEIMMIIII II 11111•11111 MEMBIMMIIII IIEMBIIIIIIIMIII■■■■■■■■■IIIIIIIIIIIUEIII■■■■■IIII■■M ■■IIII■■■II■■■H■■■M■■EEN IIIM14111111■■■■■■■I■■IIMIIIIM■IIIIIIIIMMIill■11=111111NMINIMIIIIIMIIIIMMI11111 IIIIMMEMIWEI11111•1111111MINMEROMMEM111111111•111011111111111MINIIIIIME11113111:171111111111.111111•111111111111111111.1111ANNIMMINIMMINI 1 , ;MI IIIIIIIIIMIIIIMIIIIIIIMOMMONIIIIIIIIHUIIIIIMINEMINEEI1111111111411111CIUMEIDEIGOCIOCI Z MEW 1 1:1M131g1313131311C113131%11=10110 618 L'`Zi TE: . MIME MI on MEarirluarien el El 1311721EZI BBCIDOBE<strong>1130</strong>B T- -Ot : 6 8 L 90MEMMOMMOMMOMMEMMEM■IIMEMO■MOMMEMOMEMMEMMOMMEMEMOMMOOMMEMUMMISM ■■■■■MO■■■■■ME■■■IMMEMENI011P• l s la P oW COP W91L.PdMIIIMIIIMM1111M1111I I D LINM II ■■■■■■■■■■M1 ■■II■I■■■11111•11111111■■EOZZ Pup £tit' l 'PM. 'Can "6017 "80t, 'LOP Wel121VHD ONIDVdS 2131N121dNOLIV80,1/10D S3NIHDVW SS3NISMI IVNOI1VN831N1• 81 'OZ a all2I3sauri 'ad 8 SMNVW 080M/SON10 H 01311 NOI1dIZIDS30 3N11Nai1 t; I11' I1, I I1 1 11 . I ' Il , 1.,lNOM irii F T 1- 1 17 jr- L 17bLIh 17----T7-- IliE ITL IF I 1,11:11.1W111111111111111111111111MMII I 1 1 : i_t ,-; , ci D 11 , -I- L-1- I i_=MINEMONUMENNIUMMOSIIll' ' - ' , ' ' I I 1.-ktEnignillitn. 111II pH ipiposimis 1111•1:11MMINMEIMIMMVAUMEWCWDMOVAA. .64.9..1 i,i iiriti ' ' '',! VIII 1.11 ' !.I Oh 4 Agi ffili',41, Oh, 024,14:40 PA Wi11:!VEIALIAP2P:1111111MIUMMOMMUMMEMENSIMMEM-1r4 :1.11.12/.1..0E11: bilh.11:th:11:1L.9t1 i ' . EL1111111.4.91111,1:11iirtinLEALEKIIIIINESAJO:11:0:1mmummiligammonimmmil I ■'IF ..31:1PILME UPALIAII1E.0 J ,11. IINVAti:CIPTAIIIYA1/20121:11.111110:1WIIECIElkANIIMMONIMMUMMEN!fi .141 ..... . 41:14:corax ICIELIA1,24.!1:1V MA; ' .1 NALOIIIIIIPOItinlitM1111111:9:9:10i1KILDIIIIIIPMA2V:V.KAMMOMMOMEIN Ii ■►o: .4 .1u:Icevolu.i1:41:•:•:1'11;: AV A . :•:9: :4L 1.0:4 ,117divauiviaimilqvii-invill,■111);4:4:1:■•MEMMUNIMMOM MEMi 1.Ii 't _MIIMIMMEMMEMEMI ,ilt1 It:ii IIai ••••in: .MI11I■■■■■■■■INI■MSN■EMME , HIrr , ,Th r-, .1 I 1_-__ Li F I II TIL11111111111■1111111 ■MIIHINN■■■E■■■INIIM■NIONIMMONIM Ti r-rri L'1 1 1 Li I 1 LI_J : 1 ,, Lo _ I I iii-L,MIIIIMIJIMM 11111111=11CIDDEMBOBEIDOULIBUIEIMMI!0Ban,,Isdi, t.7 52, 4,3 .:■■:, :ILL LT. ..:•.19.F.i2 2s1:,,,:z IC 49 916.;.0 121:3 CIEIBEIEISIB 11'Vif it 0 I. 6F v E1111•001111111111•11111111Z11111 MEN■M =_I II_Li .thii_Illi l l ,_L__i_L_LIIII'LJ_ ■ I ' i_t_l_l_LLTh_l_LIN SIEMENS •1•1111115111■COZZ P.. IN I s l.P.Vy CPP 1LL LLL1.1tIL 1.1. L. [Li ITTITLi_1 LI I I ■ LLLUT1012111111111111/MI PON P.. IN 'S 'C "6 SOLI W91 1 1<strong>IBM</strong> M■■■III■1111=111111111■1211 I.L.1,11H7 , I1LL jittli1..L1 LLW I 1 _LLLIL pul3 9 I.P.W COP I FRI 0 '604 90P 'L07 W91 IIIINLti_ill_L_11 I ! I lLI MI 1111M11111111111INI MIIIMIII NM▪ eP ow COP'. we! --o-: utocls lutLdCOEZ P" "CPt7 'COP I. '60v '80P 'LOP W81Jed saun 8 0<strong>1130</strong>W OZIOM/SONI0V31 .1 01314ISVFID ONIDVdS s3INI8dN011n0eN0) S3N1H3VW SS3NISO9 1Y1,1011VNi131N13n -ID• LT 'OZ an2TNO1 dItlDS30 3N1win


1i,<strong>IBM</strong>INE DESCRIPTION FIELD HEADINGS 'WORD MARKS B Lines Per InchINTERNATIONAL BUSINESS MACHINES COR=GRAGONPRINTER SPACING CHART<strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Soon :<strong>IBM</strong> 1403 Models 1 &• , I ITTT -TI, , ' •r• T 'FT, r- yr -T-TT; i -E ill II I fl--'Hfl- r-1.F!'' : TT , —1-7 - 1 I TIT 1 , : TTI r 1 f I I I T ' I i - 1 - , i I -1- •MIME<strong>IBM</strong> 407, 40E, 409, and 1403 Models 6 and 7• , 1, , 7, 111 r 1 , r-T-r-T-- Eli' 7 1 I irr- 1-7 rri; 1-I!! 1 III: '' • •--1 UM mu so<strong>IBM</strong> 1403 Models 2, 3, 5, N1 and 1404, , . , Inn EFT, 1 , [77 MEW Illl 1 1 FT7-1 —ri • , T : 1 . , - , I , , - , • I I I [ ! - 7, II MI<strong>IBM</strong> 1 43 Models 1, NI, nd 22031 .,.1 I I , MUMII MI 1..-T-TT ', ;;;;;. !; — ;1: , NEN ••n= ••••••••1111GL U E 0 1 23 4 5 6 7 8 9 : 1011A 2 [ n 1:11.2707,31;1a1.2 3 45,6E18 9 0:1 2 3 4 5 6.. ler! a 1 , 2 3 4 6 7 8 20021 5 6 .9 0 11 3!4 5 6 7 2 9 0T-2 3 4 5 6 7.8 .012 3A 5i6 6 7 9 a2 , 3 1 4 5 617 n120EIME1061:11011111111.4•11111 •011••••••••• . • WIIMMIN , I-1- • •10, 1 , , • ,, , •, 7 8 912,3 4 5, 1 INEMIIIIIIIIIIIMMINIIIIIMIUM immummum77 : miummiumm , --Tri I 11111MOMMAIIII' ' ' ! ! : : T • 111MNIIMEIMIMIIM1111111114111111111 11.1111•IMIIITIMIMMINIIWw•1111•• MIETRIIII"Off"="11 " • 1 . . . . , NIIIIIMIIIM•1111001111111111111111111MM 111•11MMIMIW•111•1 . •Il• • IN . 111E•11•1. ,. U - - I VIIIWIIIMINIM111•110111111•11••111111•MIE MOW= a ., on traisw.m ..0111 , Mo. 7, .,M14111: ,17, : • 1:411 %b.• 4tel ' OW K 1111••••11•1111•11111111MMINUMMIUMM 1110111110110111100.11 MOM MU,li t'Illoom Irl Y : i , • . ,,v 21 1" , 011•11111111•M 1 7 — ii IIII inn 0,110 0111010100•01001010100000- 1111111111111111111 0 — Ihull IIIKIMMIIII:gell!,_a; . 1 .-- 1IX 1,1 Es 0 KM. dr.;:inivirs .,Ille ; a R;:11•, V;1111•11 ,._:,,L:41=;•41 ! I ::_ 111* _ lel IV 1.1111 :, ■ ,z1MININID1•1111'Er10.11M 7,1itillfi■ir.11.1•01 111111• VA CIIIIIIMIUMstr• :ie i',11:i4•11111111111Z111111MINIIIIMIllMENNINSEM ' MENIMENNOMIN, IIIIIMIIIIII ansimmomianismumumminummoino" immummul I 1 , mosommfilimmip„ . _!.. immummumme- IIIINDUEUIww.o.E4WITUT•imP,v-mirlf,11,!, , f, r. 012(1■1:4)womnAKIY.11 AIM:CO:010A 44 4i .•01) , flWeenallniliWIVIT1■44417.4'ierfritrArirdre irlarlrir I sr WOW0 • ■•• • .1 •••41010:0,ii• -r- •J•.4I I"ME . ::410: : . 4 Co 11VV.411•1'.4M4111:1 .1m ■•.■■. ivol- •••••II••••İI WI•M101011111111411111 MilIBIUMMIMMOMirmilMIMI Mi. !Ell-.4.15:4:.:LT sill' !II 15:1• 1= triliiiiiir0000• • . . , . _, . _ L. • •:_il III M 0 I111119411111111 s g e • 010,41 •N MEN•11[111IR [. • KsE• MIK . s0 r MIIIINIrrers001 s 11011:417:11Vi■ • mi 4 m emoismil ,,,m lowitS._ _1 . 11, • A . ! •,.i 1,ogre gg .•1111111040101 II 110111100000111111101111100 II111001110111111511IIMMIIIIII••••11•11111101•111 IIINUMI•1101111111111i•Mirl•IIIMunnimmoImmz-s OEM IIMINE MO Ell BOIMMIENNINIMON11111111•••litg4mby.‘miarmil417,vil !Immo fl- in: 1:mmtli t.'011m,e;116L•OrraMME-1-AtT•1011111 •1•;a1111111111•1116:11=11011 r:; =ION ANN en* s HMI IR el IIINDIIIIIIRISW0104ir 00F4P.11111111: :14110010110111s ME <strong>All</strong>ailM•M111.='!"1!Pr.t1111M ■ j , linrn111111HIMMIIIIII_L1111110411111110 1111101100111111010110110100111111101001100110001001011010100111001111111011011011MIIIMMUIIIIMMMMEMIIIMMIIIIIIs.. 1.1011111110100111Thm0•IIIINIIIIIIIIlliz11011171 OiliiirPlur,0:4):4 ,: ,'. ■AmIN■w,/,'Ar.salsomilliM•11•1110111111•111M1111i,4,:i v11114 IM'Arg.0.7 Pv.110: MN r. r. 47.4C4P1741711K 14740.4: 4' 171/1■70:40wocr,cor ■; Now sviow.to;,:ii,A4),40.4 .40.u. w, I. .0.0.!.4110.1.41111B• 11110101111111111111111111M11111111111111111.11111111111111111111111111111111111111111111M111111MIMIIIIIIMWMmulmismillimirmmumi limpunimmummommum111011,41011111101111111000001111011111011110011100MMEMIMIWIMMIalmo110011 1 IIIIIMMUMENUNIENEMMIMIIII 11111111MMIKUNIMMUIMMIII11111M1111•111-IIIIMIMOMIIIIIIIIIIMMUMMILIMEMIMMOMM111111111111 IIIIIIIMEIMUMUIRMIMINIIIIIMMIIIIMMOUMMINIII0 01111119411111101 • 101110mmommimmommomwwW•00001100010•00•01110 MUMMEMNIMMINIIIIIMINEEMMINEIIIIMMIIIIIIII••••=111111111•11•EM1110,1111111-- gIMINIIIMMIMMUMIIIMMIIMIBBIONIMMIOMIN100100101010000001011001110000011110021111110100010011100011111110101100111110011111)01111111000001100000111M00001•000110010000100000W00000W1001M111111110000W1111110111010111101111011111111100000000000MMEMMIIIIIIMIMM11111)1111111 0 M001001101100000MMEMMIMOMMIIMMUMMMIMMIMMIIMIEMM111111110011111110111111111M0010100000111011000III — 27 MUMS MEM IMMINI M MIIIIIMMIWN • 11•111BEIN I 11111•101111111 g in.r.,-, - --Tim •0:1•000•0111um r--,----=!milimmm mummommul omminsmamilmip.---mmoms■ MUMMOOMme_–=Figure 20. (Cont)


<strong>IBM</strong>LINE DESCRIPTIONFIELD HEADINGS/ WORD MARKS 8 Lines Per,INTERNATIONAL BUSINESS MACHINES CORPORATIONI1PRINTER SPACING CHARTInch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :I<strong>IBM</strong> 1403 Models 1 & 4IEs■om■umnillOili■OB■ ■■M■ENO•IN■•nn •••■••■ME■E r WI Nairn • II MB iliallilli■ IIM■111111M1<strong>IBM</strong> 407, 408, 409, and 1403 Models 6 and 7MNM ■ UMW ■■I■■W■ ■■■ III ■ Min! ■ •• 1- n-III 1 I MN ■lliffilliMM■■IIIIIIM■I91=IMMO M■R■ ■■■■MEM■■■■MMEMM ■■■■■■■■■■OM M■RMOMM■MM BOOM MN OM<strong>IBM</strong> 1403 Models 2, 3, 5, NI and 1404- 1 ■ MI IN ■ I M MIL<strong>IBM</strong> 1443 Models 1, NI, and 2203■ i■smm■n■■■m■VSMm ■■mm■■m■■■■m■m■■■■■■MM■■■■■I ■■ RO■ ■■MM■ MOM OM ■■sa■■■m■■■■■■■■■■■■■■GLUE I 0 1 2 3 4 5 6 7 8 9 ' ' 10 11 IIA GEIEIGIEICIEIDEIDEIER313012EM 01 1E1E14 OM 8E10 / ElE313130CICIEKIE16 CMG 1 2 314 5 67 8 912MM 1213E10 1 2 monnunammirnmeseggpicanknomp000nseongencmIIIIIMMIIII •MlliIMMIIIIIIIMIIIIIIIIIIIIIIIIIIIIIMMMIMIMMNIMEIMMNIMIMIIII I El MOB WM •••110111••••1111111M1111.1111111111M111•1111011111111111611111111 MIIIMMIIIIMMEHMIIMMIIIIIIMIIIIIIMBIN•11MBIll m111•0411111111MIX Mg =111111111111•11.111111111 •M01111111111111IMMIMEN•MINIUmmillnumiimMIIIIMIMIUMMIIIIIMMIIIIIIIIMM111111M••=1 II MI Milin••••111•110•11•IMINIMIIMIIIIIMIIIIIMMIII1110111111111 IMOMIIIIIMMENIMMIIIMUNIHNIMINIUMUNIIIIMI•••MIMII■11111111141111111111 •IMMIIIIMMIIMEEMMINIMMINIIIWOMMENIIIIMMERIMNIIINMIII ,MI MII•IIMIIIIIIIMMINIMIIIIIIIIIII MIONIIMERIM1 INalMonsoUll•milimmiliMillinlignalinillinillinin1111111,411111111 • 1111111KCO: w ar ■70:r■mr, r!11 EIY.11,1rIll:IT: F,V, /1111,11: /.1/1D:11:474: F. 0 rAr. MM.'. F. k: I. F.1■:1■: 0:4■: i • 1 . IIIMMENIMMIIIIIIMIIIIMIIIIMMIIIIMMIIIMIIIMAIE r. MIMI1111111111411111111 NIIIIIIIMIIIIIIMM11111111111111M111111111•11111111111111EISMNIII 1111111111111IMIIIIMIN . n UMNIMINIIIMMIIIIIIIM IIIIMIIIIIIIIMIIIIIIMIIIMMI1111111111114111111111 nummummummummisminummummum nammummmummin IIIMIIIIIRMINIMIIIIMEM INIENIMMIUMENIIMMIIMMI111111P4111111 MOMIIIIMIMINIEMIIIIMIIIIIMINIIIIIIIIIIIIIIIMMIUMMEMIlli1110041111111.4 ow∎■.. ■: L■:1■:4117.40:13■7 I: I:4: WI: :€111F14:a:INO:IF : nr:4TV. l% 171: r Iv Fe. •Np: r,111111111INIMMEINIMMIMIMIMINHIMEMIIMMIIIIIMMIllInicog' now, ',yr, Evyyryyy, rp,. T. pr.v, ENNE1 1,1,219111117191111111MMIIIMIONM:10:4,: Ki■:111lin104111111111 niummummumummummummummompou milirsimummum mu mu1111041111IMI11M1111111MINMOMIMMIMIIIIMMildilnas INEMIUMMIN ligallIMEIMEN1111111111411111111 MIIIIMMIIIIIMINWMHIIIIIIIIIIMIThil IMII NISEI N■ME 11011111111111111111111M 11111111111111111MUNIMMI MNIMINIMIEU.C1):1■7 C NIAIF:1■A AS VA ',1■: sr MEI VIDVAI.IINO■74):11:IN Arm MI MI ■ MI IR ars 111WCIIMITIIIIIMMINIIMP 4134'd111101114111111111 mmummummummummummommommummimmor 1 ! us MU • •1111.11.11 IIIIINEWINIIIIIIMINSII MEI111•00M11 RIIIIMIIMIUMMIIIIIIIIIIIIIIMMOMINIMIMIIIIIIIIMM= 1 I . I 1 OIMIIIIIIIIIUMIIMM EMMEN MIII•WIM•1111111111MR111111011111111IIIIIIIHMILIIIMIIIIIIIIIMMIIIIMMMONMOMMUMM•••••••••••III 1111M9MIMEMMMUMMIEMMIM14 444°WV ■:0:1:1111:104:1W F. FV741111111111111•1111111111111111111111111111111•1111111MI I VIE= • •11•NIIMIIIIIMMEMIIMMIIIIIIMM41111111114111•11111M 111111111MNIIIIIMMIIIIIIIIIIHUIIIII• MEMIMIIIMMEIMMIIIIIMMEMONIMMOOMMENIMIIIIMIIMIIMIIIIIIIIMMIUMIMMIIIIIIIIIMINIMIIIIIIMMOMMIIII MOMI11111111111111MIIIIIMEM11111111111111MUMMEMN • EMMEN MIMMIIIIMIMMIMINEMIIMMIIMIIIIIIMINE1111111411111111 •IIIIIMMIIIIIMMINIMMIMMIMMEMMOWEIMOMII MI i IIIMIMAIIIMMINIIMI•1111111111•11111111111.111011111111M11111111111111111111111IIIIIMIIIIII••••11•11111MOIWIIMIIIIMEN••••MMMMM111111•11•1111111=••••••••••••••U lill•11••••••••••••••••••••11111111•11111•••••••111111•11•••111•111111•11•••••••1111111111114111111111 •mom= MIME/ / I elra/ FA= 411 IV• / •' I • imumminummanno ImaimmMINEMI•11111111•011011MAIIN I VW PAM IIII•IMME B•Minillarn al11111111141111111 0MIIM1111111MITi q millnAIIIMPItill /I ItlIIMMIIIIIIMMIIMIIIIMIIIIIIIIIMMIIMIIIIIMNIIIIIIIIIIIIIIIIII IIIrl A11.117/1 ■■■■■I■I■■■11111111►11111111IIII►IIII■IIIIIIMINIMMUMMIIMIIIIIIMIMMIIMIIIIIIIIIIMIIIIIIIIIMMINMIMI II ■ 111M111111=11 1111111M■IIIIIII•■MONI■■■II■■IIII■I1■4••MMMnM•M•MMM••MinilliMM•OMM•MllMIUIZMIIIIIIIIIIIIIIIIIII II 11111M11111.1111•1111M11111111111011111111111111MMONIIMMMUMm• al111111411111111.IRIIIIIIIIIIII1111111111111MMIIMMIIIIIIIIIIIIIIINIMMEIMMIIIIIIIIIIIMIIMMMI MENIIMMIIIIIMMEINIMIMINIIIIIIIIIIIIMMIIIIINIIIIIIIIIIIIIIIIIM■■■■I■■■M■MMIIIIIMMII■■MINIIIMMIIMIM■I■ NUM SIIIIIMMENWINI•usilanill•11111111111111•111111M111110111•1111MIIIIIIIIIIMBIMIMI ••MMIIIIIIII•W•01M•IMMIIIMMIMEMB•M•11M•11 MN I IMMIIIIIIIMMINNIMMII•MIEMMINIIIIIIIMIIIIWIIM•li11111111b4M11111 Immummumpuriummuummunumuu imu m umummumummummoummummusrMIDUMIN •IMIIIMIIIIIMIN MIIIIMMEMIIIIIIIMMIIMMINWM E OM MOM IIIIIMINE•1111•MMIIIMEIMMENEMINIIIIIMEMOMMOMMIIIIIIHIMIN •MIIIIIIMIIMMIIIIIMINIMMIIMMIIMINMIIMMIIM MIME MIIIIIIIIIMIIIIMEIROMIIIIMIIIIIIMMEIMMINIMINIMIMILI1111111111111ifilMMOMOMMIIIIIIIIIIIIMOMMINIIIMMIIIIIMMUNIMMUMIIIIIMMMIIIIMMOIMIMIIMIMMIIIIINMOMIMINIONNEIIIIDUIfill IMMMIMIIHIIIIMIIIIIIMIIMIIIIMIUIIIIIIIIMMIMIIIMOIINIIIMMMIIIIIIIMMMIINIIIMIINIMIIIMMMHINIMMIIIIIMIMMMMMMMMIIMMIIIEMII' IIIIMMIIIIIM••••••••••111M1•1110M•M••••1111111•1115•11111•11•11•1111111•••••11111•11•111111111111•11•11•1111111•11••••11•11111•0111M•11•111•11•••11110•0•111•11•111111•••••••11•1111, ,L HIMPIIMM 111111111111111MIMMIIIIIMMINIMMIIIIMIMMIUMMIUNINUMMIIIIIIIIMMIOMMMUMMUMWIMMOMMUL- = -- •NITIllim ••- - ; !In11111111111111151111111MMIIIIIMIIIIIMS/SrMIIMMIIMMIII•MMINNIIIIIIMINIMMIIIMIRIMM<strong>IBM</strong>IltiaMIIIMINIIMMENIMIIIIIMORMEmilifilliIMMIEMMEIIIIMINIMME111--- - --- TRUIIIIIIIIIMPP- .0. .....--- ---5_1111110MMINIIIMPi lm - ---TNIIMOMMOMMEMMOMMEMOpr! -- T!MMOOP P"-=' ===timmumummr,----.,.• --=!!!!_mmummume.T.•,aalFigure 20. 19.


I<strong>IBM</strong>INTERNATIONAL BUSINESS MACHINES CORPORATIONIIIIPRINTER SPACING CHARTINE DESCRIPTION FIELD HEADINGS/WORD MARKS 8 Lines Per Inch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203Print Span<strong>IBM</strong> 1403 Models 1 & 4•tutu....utu.Iuu.u•.u.u...1.1uuuuu..u..uu.. ■_n.U•I000I.IUW 71 nnuu111u•utuuuuuu •UUI•UUIUUInUUIUU•I000UUUIIUI<strong>IBM</strong> 407, 408, 409, and 1403 Models 6 and 7•.I.Iu.Iuu t.Uu.t.ul....t.tlu..........ut■ UUUUtttl •1IIUIUIIIIUUIUIUI000IInU•1<strong>IBM</strong> 1403 Models 2, 3, 5, N1 and 1404..I-uIIIHHiiUUUU -....-tutu- ... flu-. ^ .. .>-••tt•lu•t •tutllnt •it.tt•tttttltt•tuu<strong>IBM</strong> 1443 Models 1, N1, and 2203GL UE lt.Iltll.u..III.I....II...ii.........tl.....t .I.utullul.Il•Iu•Iltutu•tlllu.ui.I.Iu..IIIII.IIIIIIIIIu•I6 8 9 ' 1011IIIIDIIIIIIIIIIl1►l.III11IIIII►IIIIIII©:::.:::uuu.0 :::uu:: u: '::: 't::uu.u. ....n:: u.C: u^::. u.:u::::: U:::::^ s.: :::::::: '::5: :IIIII►lhllIIIIIIIINIIII•:IIIIIHIIIIIIU uuUUUuUuuIIuuUUUuuuuuiUUuUuiuUuu •uuiuuUuIIuuiCiiitiii iiI U uuUUUUU i UI.I..UIUn UUUIUUUUUUUuiU•i UuUuuRuUuUUUUUIIIIIUIIIIII ntnt■ot.ttttttt=tttt.tttttn.t^^tt^l^^^ttuttt^t^tttttttttttiiimli'^tit.W ttutnttt^tttttttuttttttrtttttntttt.ttttttttttttaUUIIIIHIIIIIIUUiIltl Iltt1t000hI'sill) U./' .{I111ns: ṛ L U 111.1.2 II 112 1.11 UIBIIUUISriht IIIIIINIIIIII^...III..1t.W1nt.1.1IItIt..I..n.nt..Il.ttI.11 t.tt.ttltllll^.. III...I..tlltt^ttlrlll.I.It.t.1.mil 177111'!tltutl.ttlt.CIIIIUIU.tltttt.tltllt■InII.II..t.I.ttltttJUC.l' d'I dl!IIIIIHIIIIIIHlnI1l:I.17.1=InttllltU1IUU'a!a11^11ty: ^^:/t::^!,!UP :I'1',(- ■.■ II IUIIi_7 "^.1^Ilt^ r^.^l;t^.1.tlttttl:'e!'-IIIttltlltlttt r_'' 1':fu...Ira"1^1r1•^^.r..vi1'^4^1.^ r . iv" rr iv" TV•I• e11V_ &104.ruin: 7.11IIIIIHIIIIIIPEE^1^1 6 .rv'i r v"'V r.r.T',•r4II:^ cUuUTi4.651161'.'11.!.111llnr.,7 r. 111 11, ,,. I ."VI? UI i 't:,lIIIIIHIIIIIIT^ UL ;o t-;r,;lrr ll.'irIr nr:va,riv_mnr.11r11IUIIHIIIIII ®^It11^1°I;^.It1^^U.i;4.1.r_lcl!1n/,nrnnnnnmrint'/r.0o, ttr4VI;n^^F ^v .virvv rinnnnnnnnnnrintl^^1^ TUUU 444 Mfr;.4 4U9. r ry nr:nnnnm:nnnnrtr; I: K iIIIIDIIIIIII'uiur.431.13tt3. 11.4. WIT m nnr ivarmnmrrr_nnuC 4r:4:rr. r.1.117.1°r5i4t'1 i^.1.4.1bu77i r/1^n11M7nr1r1ninnmurL.b.U1r7 .11ttLIr.1^r.i''0.ltnr_viviv nrnnrnnnntr.r. 111.1IIIII►OIIIIInlUIEi nnnrnntnneflnrnnnnnb:/4:Ar :tt.Er^rb:A=1 TW 4UmnrP7 r'r'urinr'_I4v:I?I_Itr:13: NIIIIIHIIIIIIIIIIlr4A:'/.1II:U:Ir:4:/1.'ev_3^3If3IAi3_Iillfhn,Ir:


'<strong>IBM</strong>LINE DESCRIPTIONFIELD HEADINGS/WORD MARKS B Lines Per InchINTERNATIONAL BUSINESS MACHINES CORPORATIONIPRINTER SPACING CHAR"' <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :I<strong>IBM</strong> 1403 Models 1 840•1111111111010MIIIMMIIMMOMMOIMMIIMII MIME ; 1 TY I MEM MMINIIIMMIMMMWM11110011•11<strong>IBM</strong> 407, 408, 409, and 1403 Models 6 and 70 110001111 011MMIIIMMIM 0 7 1-I ! EN I" [ I r ! 1 1 11 IM OM MIIIIIIMMUMMIMMI I2, 3, 5, 1lMrAPPPMP.M-. I• 01M11lM MIMMI••OMM<strong>IBM</strong> 1403 Models NI and 1404 WMOOMMOMMUOMOMMIMMIMO 7 ME•MMO••MO MO MO •111011•00111<strong>IBM</strong> 1443 Models 1, NI, and 2203•l••••••••••••001011100111000 71 MI• IUIUWI =I • - , . I M 111110110111111110•11•1•1111Mm000000MMII al0 1 2 3 5 6 7 8 9 ' 10 11 liElE1131321811:101:1138E1EIMEIDEICINE114E1C151 8 9 °UMW= 89 8 1 018 4 5 6 0E1E1 0 1 2 1 3 1 3 1 5 7 89 0 1 2 .3,,,, ,>! 7,, 9 0E212 i 4, 5 67 89 OBEE10013000120E1E1000000thIEEICE10000000E100000001IllIlpIllUlIll 10101111011111MUIRMEMIUMMISMIAMI 11111110111111L_ , r I I ' ' ' ; 1 1 ; IMMMIIIIMMIMMIMIMIIIIIIIIIMMIM1111041111111 101111MMIMUMMIMIIIMMI11 MFMNIM III IMMIMM11111011111111110111110MIIMMOMMOM11101111104011111 1181•0110111011MMMEMMEMmuma I L , i ' i I ' ■ ' ; ' 1111111MENIMMEMIMEMOMMIIMIMMWIMMI1111104111111 MMOMMOMMEMOMMOMMOMO OMMME IIIAM11111 010MMEM , ,,,, II 10011111111111111MMIMMINIIIIMIIMMEW1111104111111111•MMEMMIMMIIIIMMIIMIIIIMMIMIIMME110. MIMI ' 1 ' ' ••ENI••I•IUM•INI•••••MI11110411111101•11111MMMEMIIMMMIMMENWIMMIMMIMMUI1 1 L , ' F i IIMMINIMEMMIIMMIMMIIIMINI0111M0111• •111104111111 UM MONIIIIIIMIMMIM1110011 BEIMMIIII•MIIML 1 ! '111111041111111 MIMIIIIIMINIMMMM111101111 MIIIIIMEMIIMMEMI..11..L111.........1111...11.11..11.........1; ' ' I I I I •MIM••NO•NIIIIIIMIUMMIMMIUMMI• 011114111111111 UM MK FA K Kom prir, MN MIBIEMMOMIMMIMIll L 4 _ i. ...LI I li II ' i id 1111010111111.0111111111111MMIMMOMMIIIM• 111110401111 113anr.T.Ir.-:;:(iwriammi IMIIIIIIMMINIMMINUM9M1111L.L Li : I 1 MI111111100•111111101101MMIMMIMMMJ• 111111104111111 ummonruimAmmirommumilli mu mimi m my 1 I • II I 1 IMIMMEMMOMMIMMIMIIIIMMEMM1111111111011111MI IIIE ■:0:007.4110,7001111 011110=4 NMI 0 M _110 . , I' '• 111104111111L • 11 , 1 I MIMMIIMMINIMINIMMEMMMINlEIROMFN, I: F. rfi.i:' nu MI 1MEft MEI ', I 1 I1 1 UM ;I IIIMMUMMEMMIMMIEMMIMI• 111104111111 manna ix7.4ar. Pra7. 1100 1MMMII M 111110 0111101 : i ' LLI.4. 1011 / ' 1 I0004000 ion •04: -. 7.4rAN-671•101Em pillIMM 0 UM 111001M/ P.M 11COMEMIMMIIMMMIIIIMMOOMILLL_ • Li HIM E L MIIIIIMMIIIIMIIMINIMMIIMMIIM0• 1111101111111111 pm =Ea ■, pir mourisiv- worry., Kojor riv-w I rav :111111/4Wal 'A , In 11 I 111111 ' MI OM IIIMMIUMEMMIMMINIMMIIMM1• 1111114111111 LEE WU 7. 7.7. ; PIK 7. MN 11111111111M11011M11.011111MMIN 1_1 I BliMMMNNIMIIMIMMIM0MMM00000001• 11101041111111 in• 0F17 F r r 7 NKr r OM 01001111111111M0EMM0111110.0110=r11 I I 1 momIlmMIMMIIIMMIIIMMMMOMMI11111111M110111111 LUMP-PM aiwonnon 1111MOMMIMMINIMMIMINIUMMIIMIE1 MAMMIONMOMMIIIIIIM10111011101001MEHIMIMMIM110111111 I t IN IMMMIIMMIIMMEIMIMMMIMIN MUM= El•III iv ;: i7a■74111Zii: MN 111111111111111110MOMMMIEMOOMT111194111111 EUOM EFAUFFORNEMONIMMIIMMMIMMEMMOMM MI , M MEM MVIIIIMMINIMIUMMOMMOMMIIIIMMINIMIMI111111011MM 1III) ■ F Ii anr 7. MIIIMMIIIMMEIIMMEIMIMM 110010111111111111101111011111111111111111MMIIIMIIMMIIMUMMEMI1111104111111 EMMOMIUMMINIMINIMIIMMLIMIMIIIIIIIIMINITh011MMINIIIIIIIIIMMMIIMM1010000111111101011111100111Mumw• 1111041M11 ECMIIIMIOMMIIIMMIUMMIIIMMIMMMME011011011MIMMIMMUMEMIMMMINIMMOMIIIMMIIMM111111104111111 EEMAIIIIIMEMMINIMMENIMMUMMIIMILIMMIIIMMUMMIIIIMMEMEMMIMIMMEMMINEIMIMMIElliEno1101111MMIMIMMMEMIMMEMIIMMIIMMIIMMUMMIIMMIMEMMEMPIl m 111111111MMEIMMIIIIMMILI--ommommimm- ....t.,-- _twummmmnmmmm■-----IPOMMMMMMMMMMMMMMMMMMMOMMM!_______-inommim-----■01110.011100010 ---m--,-.1mnigpmmisomprr---.11.111mumpp_m--Figure 20. 21.


'zz 'oz aziki–..0111IUMMLE. _-Eom■ilimm.t.,1.--- ...iiiiimMEMEMEMMEMMI:-,_ _...immummumilaimmaimmillumummiLl. _ ____,=a,:aiiiiimiiiial, = „__,.■•••1 -----..--iiiffilinummunTrimiii..-. _,:-..-iiimrs 111111MEMEMMEMEMMIUMUMUMUEIMplIMMoullmm=11110111111011111=muUmEMIME111 11111*---EIMEMILMENUM11101111 • ■ ■11=4•1111=MEMEEMME IIIM MIMWM1h111E■1111:11:4111:1MMEUMMIIMM 1111111111111:401400111111111111111111■===■■■■■■■■■■•.1111104111111immuummummum m mommummommimm ■ mimmum mommiummmummum Immuummumm■m■■ ■■am■ummommumm11■■11■■111111M1=====UNIU■U■EMM=MINUM IIMMEMME111011 111110000001101111111101111MBIEMUMMEL111111111111011110111111111111111111MME illimmill01111111111•MUUMMUMMM1010111111111.111101======M0:1:4):41:4r:WMMIIMKIKIMEMEMEMMIUML IA7417/MalINAMEIWAWEIHM110111:01.410:0: 10.9:11•11 1111111011111111====111111111111111111=MMEMMIMMIMMTM 1 Op===p1MUMMEMMMUMNSM=10====.11111111111U111111=111111101001MMEME1001111111DEEDIUMMU111111011===1111111=11= ME <strong>All</strong>ullim MOW IMEMIUMMUUM/ IMUMEMEMIMMIUMIUM/ 11101===111101111111111101/ IMMO1110411111inmommummmulmmismosim wommum• MIIIMMUM111.1111111111111 IMMEMIMUIIIMEMIIIMIUMEW110011111111111111111111111111•11= MI WWII= 111111104110E11====111====11•111111•=11111111104010 amMINUMMIWIUME amEllamI 1• UMMUMMINEMEMMUMMEMEELM110111001111111101111====111111E111010141 010104111111E=MMEE MMONEMEMMIEllmmUll1111111010=UNMEMEMIUMMUMIMImmillIMEEMMEIMMMEMMUMMEMMEMBE=111111011111111111===ommummunimmoraimisismompimmniummummuumummumlinumm111110411M111104111111111MUMINIIIMIMINME=141=101611 101101116 Anu NurilillIMMEU MEMMME1111===11111111111100010011111=01111=11111101111111MM1111104111111141101111111U1UMMIMMLEUMIMMUMUM11101001111 NEEMEMIUME=1111111======11111111111110111MMEMIUMMEIMEINIEMUMM 11110411101111111111111100111101====1111MUM mquism am mimrimuslersinno rmorimimmiummus MEMO110041111111immounnummunimum IN unimpi II I. rigo • EM, mmUll00101111111 EMEEMMEILIIIIIMMEM11111104111111UMMIUMMI11111111110=======• EEM EMEEE 0 • MI Eiji i mum swimilMININ UMEME1101111011===M 111110411111111111=1====101111110011111111111110M110110101 MIR 11111 NMI MI M/4•11•EmmmlItum Mummm=101101=1 111101111=11114110111=EMEM■ ∎ 111110411111IMMENIMIUM1111101111=1=====HEEMUMEMEM=MEMII MEMEMIUMMUUMMUMEMILIMINIMUMIUMEITAMEMEMMIMMEMEMMINI1111110011111 111111101111IIMUMMUM====110110111111111111•0110111011111111114WWIMMIIIM_MIIMMLIMMEMMEIMIUMMEMEIMIUMIIIMMEMIIIMEMMEM0101011 0111041111111011111010111111111=====UME=========MmumMmMMEEIM 00111111010011111MEMENUMMIMME===111011111,111 110111101111IMEMMEMEMEME10111110101011111111UUME=11011111=1011MUUMIUMESIMMIEMIUMMIIIMMEMEMEMEMEENAMMIUMMEMEEMMME10161011 1111111411111IMMIUM M UIME1=========111111M11111101111111=mumMIKUMMUIMMEMIIME111111=1111111111111=1111111=1=M=MMUMUMOMMUMMIIIIME111110411111110IIMMIUUMMUUMU0110111101EMMUMMIMEMMUMMEMEMEMEMEEMEMMMNIUMEMIUMEIMULUMINUMIEMMEIMMUMEMEll111111104111011====1111111111UMENUIMMUUMMIIIMMEMMIMMUUNIMUIMEMIMIENUMEMUMMUUM0=101111111011===1111===•=111111=1011101=11M11111104111111IMMUM===========1111110111111111111111111111111111111011MMIEMEMEMIUMILIMMUAMMEMMUMMUMMIUMIUME=1111010101=11111111111110111EM1111111411111UMMEMUMME0=======MIUMUMEMEMINEEMININMMEIMIUMMEMEMINEMIUMMEMEMBIUMEE=1=111====EIMUMIEUMMUMMUMM1111111411111immulE0M0========mmommummummummummmmumummuniummmummummummummumm ummmaimmMumummlumummin munannEIM MIUUMUMEMM MUM EUMMEMEMEMEE EMEMME MMMMIMEMMEMmuEHMIUUMMIIIMUNIMIUMMIUM IUm BIUMMUMMEEMEMEMEMIMMEMMEM111111011111111mummummummummommummommummo EME m mummommumu M mmummumummummummummammummum1111104111111111111========l1===11111111111111111011011111111111111==== =======MUMMIIIMUMMUUMEUMMUMMUMIMEIMENIUMMUMMEI11111041111111IMIUMUUMMIEEMEMMUMMEMEMEMMEr======111101111111101111111111111111011111=111011=11=1=========MMEMIME1001001111=1111110410111101111011111110101111=111111111011111===MU MUMEMEM111111111111101.111111WEEM101====111111111111=01111,11=11110011101011011111111111111111111=10111041111111110111•000=010001111141EMMEMIUMM ENEMM=0111111111014=1011101111111101100111111•11==111============11111110=VIZXCDMummmmomm•mm=====UM•010000MEEMM000001=ME10000mummummummummummumummummumiliMUMIIIMMUMMIMUNIUMMEMEM numannMMEMMEEMMMMEMMIMMEMEMEMEMEM OOMMMEMEMMEM EEMMEMMEINMEMEMEMEMEMMUMUMMEMEMMU MMEEMEMEMEMEIMMEEMEMMEIMMEMMEMEMEEE=01=1111111011111101110== E == MMIIIIIIIMIEUMMEMMI EMMIIMEMEM11110•0111=MMEMERMEMMI===========1111=1111110111111111MIMMUMMIEMIEEM111111011111MEM111111011================m====MEMMUMUMUMEMIUMMIIMMIMIMUMNIMMIMMIMIUMMUM1=11111111111111111111111011/1===111M111041111111111111==111===r111011EMMIUMUMUMUMME1101.1111111111MIIMMIUMMEMUMME=1=1======111011111=011111111100110111111111111111•11111 1111111011M011UMMIMIIUIIUIUMI===IMUEIEMIMI==EM=MEIMMUEIMMMMMMEMMMMMMMM=M=MMMMIIMIMI•MMMIUIMIMIIMUMIMMIMMIMMMEMII=M==11 M1111411111111IIMEMMEEMMUIMMUMMUMUME=111=========WEEMIREMEMEMEEMMIUM=1011111101111111111111110111111MUMINIUMUMMEMEMILIM 111M00111MIMMEMIIIMIIIIMMEMEMEMIMUMMUMMIIIIMEIIMIUME111111111111====1111111111111=10iv111101111111MUTIMIEMIMMIIMINENUMMEMIUMMIIMIMIE=MMIUMMEMEMMEEMEMII1111110411111EMENIMEMME IMIUM1=11=11=111M MI01 NIMMU 1•1111111/111E110111M=101111111111/1EMEMMO110010411111111111111111=MMEM=1==1011111Z MMUMM=M=M UKT.VMARBFAMMAKIMMEMIViail -IVIVAVIVAWAVVIVAAVAVAMEMMAILIAEM 111111104111111101111110011111111111111111=======rn M MEEMEMMUME 1:16iiiii • M=04:411:10:10:4===11111=9641'600.17401,/lWaAW/fill11111111111M1:0:110:41E:1):411411EMQ111111411111==========1MUMUUMII IMUMEMME 1100000101411101011001=010 MUU■■■UMMINIUM■EMINIMM■■■■■■11■0110010110NI UMEMINE111011= 01 11111111=912110=9=01=11111011111100101MFEMEMMIMEMEMEMEMEMEIMIIIMMEIMUMMENIUMIMMEIMUMEMMEM 11111041110MIIME =111111011 11111011•11111111111111W=101101.1.11MMOMmUMIMMEMMM memann11111111111MMIUMAIIMEMILIAMIMMEEMIUMEN / M imilimummmpi; we ji to 6 ; TIMEMMUMMEMP: ZIP It•TAMI IE:M. 1111110111UPI IMMUMMUMMEMEUMMEIMMUM11110101MUMIEMEM ME momamimummunimmiggig •wmfineinuimummung 111110411111kumampommiqua• CHIMI,11111•MEM1111114111111LIMUM=1111 0111111111•1111 Ham ..•••••••••••umw mosuss•• 1--- ... giox•ritAw i vir muiseui.o: i:co nsorms••••• Immo • •••••••••••••••ma wrormi• En al NiiiiiiiilligimmommummummummummillimplommunMin MUM= --Z. ---- - Izi:1: I ; li I JAM% F': Ilnr-41■ Vi■l'iltRIIIIIIN 111111041111111E110111011111111MUM=1111111=====EMEMIEW =WM Nomumemisgmmuninumpuimmommummon 101111411111AMEEMM■MEMMEMMEMMEMMO■MEMMEMMEMMEMMUMEEMMEMMEMMEMOIMMEMEM MMMMEMEMMII ---" "-"---- :=E•E:■IFITENEURVail$X0MM'11111104111111ummummummummummum 111111411111mmummommommommummummommummumomommomummuummil:111111 mmmummsellImmmimmammumm umommoimllimmommommomommmommimmliiimummmi umli mummummillgumammmmummuommoummommsmm111111001111141111MiummmEMIUMIMUMMIUMMUMMIIIIME1111100 Mg= immummumm. MMEMMIIMMOMMMEEMMEMMEEEEMMUMMMEMM111111.411111111111141111m•••••••••••••••••••=ammummiummommummummosswinommiummmummmuummummommummummommummummonsollimmommsmommommommommulil lmommulinlimommummammummommumummulumm1111040111immommommommmummummannommilliimmimmummummimommommimmommaimumummum ummommsI Emmimmunnommosimmummommommommommo111110411111mommisommummommummilimummimmumummiummumm Immummummumummomms=MU mEMEMIIMMUMIEMMEMMEMMEEMMEMEMMOMMIMMEMEMEMMEMEMMEMMOMMIMNusbaum1000190001112000013000B9000019m00014000m000000001E0000 0 M0000 ummomumno MEMO OMMENEEMICM BM BRODOCEOUOMMU000BOOMEAVll 11 01 '1 6 1 03n 10IMMIIIIMINIUMMIIIMMEMMIUMEIMUIIIMmilLIEMMIIMUMMIll= IMEIMIMUIMINIM IMII01111=111111111====01111111=MMMUIIMIUmm01111111•=0111111rsis C066 O. ' LN '1 I.P.VY 0771 W91IIMMIMMEM MUMMEMIIIMMUU 10 III 11 111111=111111 III MEIIIIMEUUMMIIIIIMIUMMINIIMMUMENIIIMM=11111111111111111111MMEMM=MUMMIMMIMrilPOP I Pur> IN '3 'C £071 -WEIII IMME10111111111011111101 11111=■■■■■■■■■■■EMMUMEME■■MM■■O■MIIMM MEMMUMMOMMMUMMOMEMMOOMMUMMMEMMEMM MMUMMEMEL P. ° 9 fl ePOW COP 1 P.. '607 '807 'LOP W81IIIIIMM1101■111110=10 MUUMM■MIUM11.11.1111111110111111==== =MUUMUUS= MIUMIMIMIUMMEMMEMMEMMP '3 1 siapow 0071 W91: uods u EAU Pup 'EPP l 'POP L "COP I '60P '80P 'LOP W91/EVHD ONIDVdS 2131NIEdNOI1VHOdbOD S3NINDVW ss3Nisn8 1VNOIIVNaINI,ad saul1 8 SUNW 0710M/SONICIY3H 0131 NO1141217530 3NIIWax


<strong>IBM</strong>LINE DESCRIPTIONINTERNATIONAL BUSINESS MACHINES CORPORATIONPRINTER SPACING CHARTELD HEADINGS/ WORD MARKS8 Lines Per Inch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443,andnd 2203 Print Span:FI<strong>IBM</strong> 1403 Models 1 & 4■■■u■■■um■■■■■■■■■■■■■■■■■■■■■■■■■■ MOOS ME ■■■■■■■■O■■■■■■■■■■M■M■■■■■OM■■■■■■■■■■■■■■■II<strong>IBM</strong> 407,IIIIIIIIIMM ■ II■■■■■U■■■■MUMMO MOO MUM MIUMEMMEMOMEM MO • • MEMMUMOMMEMEMMUMMIOMUMMEOMM M M■MIIIMMIIMM■■■■■I■■■■M IMMOMMUMMONOMMOMMUMUMMEMMUMUMMOMMIMMUMMOMMUMMUMMEMMUMMUMMOMMOMMEOMMUMMOMMUMEMMEM<strong>IBM</strong> 1443 Models 1, NI, and 2203 ■mo■SI■■mm■■■■■■■■■■■■■■■■■■■■■■ mommummummummumminnummisimmumummummummummumummommummom0 1 8 9 10 11Beriamouogammocupoopem EOM WM 0E1E10 118180 BOWES= 001111111M1111008E10012151000100E1000000DUEECODBOODUEEDOWOOM MummommummommummummumulimuummummummumummummummummummumummumummumIMMONUMMEMOMMOMIUMMEMOMOMMIIMOMMEMMINUMEMOMMEMEMOMMOMMINUMMOMMIMMOMMOMEMOMMEMOMMUMMEMOOMOMOMMOMMOMMEMENNEMMEMINOMMOMMOMMIMMOMMEMMONIMMOMMEMINIMMOMOMOMUMMENIUMMENOMEMOMMUmmmUMMInommOMMEMEMMOMMOMOMMEMMOMMOMMEMMOMMINIMMMUMMEMOMINUMMOMMEMOMMOMMMEMMUMMEMEMMOMEMOMMEMAMMOMMORMOMMEMOMMOMMMOMMOMMIMMIUMMOMMOMMUMMOMMIMMOMMOMMEMONWErfnlo:VM:a!LOIMMIIANNOWaolimlv.qmsnmermssmammiximminiumminummiummumummummummummommumummommonomimilimmummimmummummummummummummummlimumminnumnimmummumummmummommumummumimme . :111111211WATAIAIMMOOMO VinallipMIROOKUP'AAPPWce X:10.3:11 c.ATCOIMI 1.0.14WAMMEr:,AM:MWIEMENNOMMUMMIMMIMOMMEM■■7 767 74iNV A:WU 7. NZio7■7.1117011T+717i-Ar ■"4 :41: 41174W17.474 ■:07.4■.! ■: PE i:4117.4•3;74747.0NVE4■747 .417i,"4:07.41:111,1■: 11:+741,: ■: . nF3PE :Ifili:o:1:44Azonro■ ■NI■IIIMMINIM■M■M■IIIII vir iv T OW 7. 7 . ;.4". 111070747Virlq17 f Mr 7.4:171r 7. N WINI7C01716■W PEI■lin7f17. :C. 7 !mow r. '.017. 'KW NW.751i7 TAW PITSIIMMUMMONIMMINIAMEregf7. 'J.■71 . & MO 17 0.4 717 r1 W. r.1Iw i!. I. !lir 1! : itai7VIt ;:' r.4,',. PO. MII,Mr fiK i:4-60.1C 6 ort■ 47431".47. AIN Nu r. 70!47.61011747. 11:9790;40'4117.14ME MUM= IIIIIIIIIMM LIli gillimrarri.71w6girliRciViymriArwmirrliri!riveziwompuTfrxmilKowriv'A.ruir , ..<strong>All</strong>r ' MUM MsuwooiquiAlMor-J Alivm&WiDoMmiT4t7iNwili:610DNIlivlirnmmivorNmiwooli7OufillirmoryWoliNilAiMmumummommummommum7,1miniVr.uoiniArrilliawumwmiwEVOwcinciviva7-AmernmilTrAwmvirmnumuirdiftvcorNamoinrommummommummommommmummummuimmusummusummis nummummummummommummusummunnumummummommummummumMMimmoilingammumMilmommiSIMMUmmommonammommilinummmomMimummommoMMIUMMEMEMENIMMENEEENNEMENEEMEMMUMMENNUMMOMENEMEMmsmmmummmmmmmmmummmmuummummmmmmmmmmmmmummummmmmummmmummmmmmmmmmmmgmmm..mmmmmmmmmmmummmummmmmmmmmmmMIUMMIN MUMMUMMOMENUM umm■mmummummummummummummum. - - --FAmmuummumm mommi im. ------ mmmmm w—r-------74.1rommummulim ___- mm .111OMIMMEMOMMEMEPP,-....._--,m11111AMP...- --,-.51m4Figure 20. 23.


I11,,II,1'lI1iIII-4,INTERNATIONAL BUSINESS n I ACHINFS CORPORATION<strong>IBM</strong>PRINTER SPACING CHARTILINE DESCRIPTIONFIELD HEADINGS/WORD MARYS 8 Lines Per Inch <strong>IBM</strong> 407, 408 409, 1403, 1404, 1443, and 2203 Print Span :i1..<strong>IBM</strong> 1403 Aodels 1 & 4 --1 I-Fmn-FT I-T- I I : I IIIT : I I :T7-17- 1-1 T I T' 1 1 1,1 17T1 r I' 1 _, I '• 117 F711 11 1—I 1 1 1 1 II ,T; '- 1-I T11 1 11111 I<strong>IBM</strong> 407, 406, 409 and 1403 Model 6 and 71 pIII I , L7 l u, i- I u,„ u ri – ,Il ii. '111 _I__' , 111'1 ,',I ' 1 1', II- 1 iLf -±TrITI' '11 -11 i1403 Models 2, 3, 5, NI and 1404i<strong>IBM</strong>I171 i 11111 11111' 1 , ji .; ,I1, lij ____1 Ir ,,_Hi] . 71 . ' ii T TITi11 -1 ` 117,111 FI'l :JIM F 11I IB 6 4,'3 Models I, NI, and 2203i i – 1 1 i TT- 1 I Er–r ' • 'i ! ' ll'i ' ' 1 1-f I 1 TI 1-1 I- ,GL LIE078 dii 91'11-1111,,iiiiII' 10 11I-t, , t,..,,n • ,, -_711 5' S ,'S (':,7 - 7 ' , 7 5 •":1 5 (.77Mliaq.1 .±'iLLI5j7IIII p 1 It-if I ,1 , r ,i 1 i ,___ untigermarl,1 1. .._LLi _J_J__. I , 1 I MOEIII D i i_j_l_L , i _i I , , I I : .1 I I LI _I . _i 11,'.MINIMUM1 , i 1 1 j 1_1 _I , 11 '- -2:- 1 H Iloisij_i_b 11 'iiIipiiiiiillCIIIIIIIIIIIIJII , __, • 01111111111•ffl-111 ID*ucill--2 MilH_1c Um iiitsh o PAINT! Honi , 11-L' 'J I I_-g BIN' IM 1 111-o J: I ,j 1 'LI I L _II III MOIMONIM_ 11Ili 1I 'HMIIIIIIIIIM_,__II' ,1 , , NosolIMIIIIII- -- : 17 THIII—-11- I-11 12 . re l A4A0 • A . AAAA EA 1 • AO.• • AAA Z. ,A' i 1 I 11 :iiiliC ! . 1 EMINUMu• 7 131in14oir AAA AA • ,,r1T-1 i NiIIIIIIIITIT_ __. 4 #0 ,T, r 1 A 99 )x(x.:,YAiFI I 1 . MEMN ON'MI1--- L,u 11 1 ,ATry- At z .AXL:.16■ 4d • rottratt ..xx 7 1 -1 , I - _l_L_ ,__ _1- - - —.NQ: IMmll:'17 Plug-1 TI1z ARIVIIIIVIIIITz.xx___. Iil:1- - - -- MEI18 PE4i:r1111 PO 19 Er r1III lar11111.11.11120 /i huI,]mm1nil .• 1 1pmh2, f11Lsoonsum11 I h, 4., _, 1...opt.22 ' T I i --h ii Ilimits imIIIIIHMIIIII23 11 I 7- i-1- - 1--1-1Mil 111111111011 11 IIMME IMIIIIIIIIIL111111114111111 24 I I r- I 7 , , TT 1 ,1NM MOOMMOMIIIIINIIIMIMIIIMIMEMIIIIMI11.1.111,11. 1.1r111 ,111 iii.III HI I IM 11_ , - J-,--H-•,--h -- __ III +1_ 1 Li i _L _ MENifligliql._i iliiriplilliiEl'II 1101111111 MB itq COMMr 1 ' ' i II/E _ Li - _111111111111IIIIIMIIIII0■1WA I 1 .... A .7IIIi1.1.1..urniiii ilhilimplillMI 11141111.11- nuipaumB3111111soul. . O 1 1 Nu III I 1 1IIIIIIIIIIMMILOOMOMOOMMI ■ ■ -- -M11111111111.154mang._,... Essoulionnumumumuummimmo k I 1 , I LI P.-- — ----- --vmmmourmnsposumunni111111111111111_ _ I I..._..,■I"-""11MOMMIONMORPPII'Figure 20. 24.OC'SOO co co


'.,L,.1 . 1 : !II!' i11<strong>IBM</strong>LINE DESCRIPTION4,FIELD HEADINGS, WORDINTERNATIONAL BUSINESS MACHINES CORPORATION--- - -- -------- - -PRINTER SPACING CHARTMARKS 8 Lines Per Inch ISM 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :<strong>IBM</strong> 1403 Models 1 & 4llI■U■MU■■■MEMEW■■ ■■■■■■■■ 1117-TT-FT1 7 M 1 1 I ■ -'1 TT FT- 1 1 11 71- 1 1 1 1 1 .1 II I MENNEN.' I<strong>IBM</strong> 407, 408, 409, and 1403 Models 6 and 71 I , 1'171 1 ■ 7-71--ri rT-17111111-1 11-1111 1 1 7.1 11 : 1 1111- 1 11 11 1 1 1 1n 11 1 I 1'1 111 1 1 1111l 1111-FT i N-- 7 I NM I ■■.,■.11<strong>IBM</strong> 1403 Models 2, 3, 5, NI and 14041111111111111S 111111111■NR■ -r IIII TT I .!! 1-ir,L 1 HI- 1117T 'F -FTTT -171- i I ;TT - T-I-ril i -', I -1 i I ■ Ilf 1 ' 1 =i1- <strong>IBM</strong> 1443 Models 1, NI and 2203miamminismigumnimming Tial -17 1,1,11-1 1:11-1II I :,, I-T11 1'11,11 I -17117: 11- 117 7 111 -1 1 1711a-I 1177► mu ■■■01•■■=11■111■1GL UE 0 1 2 3 4 5 6 7 8 9 10 11- - 3 . ..,, -4 Ei -Tiro 21 ELI] 6T -frT4-TO.CJI 9 011-1-1,22774:5:612151-: 0 I12 1 2145115 171-67119 21 12.2;41515'7:59 01 1 2131 , 5 6:/1179 II 2134:6:6;7169 011:2F_II 7 3i9 Ip12151Z-151771-2719ra121314 Tre,1715' I 34pmcm1111 IIIIIIIIIL MIN1__IIIIMENIM1111114111111--1- •ili!,a_ -7-r, 7 1! -7,17 , !r -ri :i , , , ... 1:.,11:j- . i 111 .11! !14.jr-1 I __J::!: 172 " MIIIIIIMME•11' - : nj-I- ' i , : ' H I '; .- 1,11' .,, 1,1,1;1 ; ''', 1.11•ESINIIIIMI1111111P(1111111 II ' M1111111121!II 11111•1111 •' ' . ' ' I , LT ,--LT .; ; .---i; j ;, I 1 - , ;1,11:, .'7 : „I • , I , , •• • • ' ■■■1111111111111111■11MICIERNMEM IIIMMWEIM -•I:1-,.; ,,, 11, .1 H 1• 7- '';.; 1 -77F, :. • ' , :11111)411111P INIIII■E1EMENNIIIIIlii: 1g1111Ii■ t onl ))11) 11 i : r• , , L:111_1_ 1,•1,.,: "TF-r• ' :i L.,,7, ' -I,', l• __, I ,,, ,11111111411111 =11111•13111111111IMMIIIVIIMMIIIIIIIIM; , 1 • • ,!I , I 1 IIII1Er -, , , , , . , . , 71, , . , :1 1,1. 4_, .: , : ..: ,,,,,,TT,111111011M111117 IEN110■!, .t.rn1 WI! Y,I;111 'Alga :It IVII111.14V. '1 11In II 1 , :, ;;. ;• : _l_. I ,•, H . :., IHL.,:,, Ellitiiilill4111111■11MILIIIIIMEMIIIIM 111•1111111111•11111111E . . -7-7, . 1 1 ,• , I 7 ; . ; : '1, I : I111' MEMO M IEN1111 19 IIIIIMMI11 mg.111 ■ 11 WIEN 1, 1,1:.MM.' L'IM1 , ,, OA , 1 ! !T1 1• • ' •• 1 ,, , Hi '! 11•11' I1 1 1 1 r, ! 1 - . ' ' 1 . L / ,BEINffli 1_,-;: 1 ' ; ;H:' ;,!1;MEWLswum 111 111111111WiN■:■ 1 , FITTPV1IVVIII , ,I,1 0-41.4.74■ I 11 ! ''' , ''1 FL ti , ' : • 7-1 1 ' 1 : l Li., , I 1 ,.11111141 IIIn3minc;52rx ryyr,pry,r,Ellynyir.myl -1, -1 ' 4+4,,r,440 i 1 !ilT 11 -7.,• 7 :! I- 1 : :- - 1 i • , , :IIIIIIIIIM11110411111111LEINI , I, 1 r, . ,. .1 .1: 7 ,!!!H i l, •. 1 1 1:! , ,1 Li fNonzi7. nurirrInnorY3fmnrYnn. T j 4.-4M it. 71 Mit!l'!,!. ■,1-!,'!1Insibann14 mt.22Y. Elggr,V3MIT, 91.1r.:iryim..Tyr1 ' 142):V) 21: :1 Fr11111111111r 1. ' ' : _; -I ' ,, I ; • LH -. :11,14 • ' : 11 : i ! ! !, ' !!1 1111 0111111Monion 111 nals-lwr.4i:1 9r.rolurlr,r,nr,Irnr-,In/i,911.1•In ;f4-66-- AP:N. l in 1 I ] I ; ' ` :' T ' 1 ' 11 '' '1 1 IMINIM ■11111,41. HI 11311111111■■ 11111■111111BIONIMIIIIIIIIIIIINEE7 I III I -I ,!!1-1-7.-1-!•::, , i :• . ! -r i !, 1 11 : .1 I ". LH--; ,, II L1 ! •, ' 111111111111101 M•11•11111111194111111111111,111101•MINIMICEINIMIMMIN11111111W111111111111 [!!!!1 71 ! !I 1 1 1 1 1 11 , , -7. ! . , ! 1 ! .11: ;! :; lit •,II. .1,1',11_, 1 I■■MIN■■■■E1111111111MI111111111 ,41111111119iiILLH. „„' ' 1:' • . ' I,.1 14 1 ''MIIIIIIIIIINKINFr !. .! NMIIMILVERRIIIINN.0-1 117'••111111111111011111111111111111 120 mo:c. , . 2romr, 1. r; ury,v,v,1, MI . IFS -4):c o' Tn I , LT- ' ' , , : . 1 . , , , : 1 i , III■IIII■■■IIIIIII1111■1■1111111EU■■■■■■ Oludim■■■uomm■■pulT 1 IA_11111P1111111 EMIIIIME aMMONIIAIVIIIIII0:47.4. I. Co: -1 T fIll,1 _ 1-1.,,__•,; ,,, ••• II .• I- 111F-1-L I , : ,_pi ,■11111,111111112311I, pmSKIIIMEMEMPBE , 1 -7- 1- 1- 1 ,IIMEM<strong>IBM</strong>INEMEMONMIZINIIISIMMEI I ' ' , 1 ; Li 1 :il, 11,7 17, 71 , : • 'IIIIIIIIM1I -1711 17 In ■ meli•INNIMIIIIIIIIMIll111111D11111024 i ■■1111•111M■II I ! ' 1 • 1I II I I II II NIMINIMM■IN■ ■■■■■■I1111111P11111111112500111•11=1.01.4 I 1 EHMEME1111111•01111110114-.1.Rin! immumgmlnossolummuminECIplow.- ------= --Imissogw". ..,Ps.=--- ---._N_,.. ___. I ,,_,I---'4"--11111_.•••_in___I=.0---Illitio• --- --PORI---=IIFigure 20. 25.


,<strong>IBM</strong>INTERNATIONAL BUSINESS MACHINES CORPORATIONPRINTER . SPACING CHARTL INE DESCRIPTION FIELD HEADINGS/WORD MARKS 8 Lines Per Inch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :1 <strong>IBM</strong> 1403 Models 1 & 41■■■0.■11111■■■ M1■■■■■■■■111111.11111■■■■■■ ■■ ■NNI■■■■■■■ ■ EMI= ■■1111■■■ MN ■■■■NI■■■■■■■■■■■1! mm innummum um MOMOMMOMOMMEMMOMMOMMM ONOMMUMEMMOMMOMMOSOMM II<strong>IBM</strong> 407, 408, 409, and 1403 Models 6 and 7MMEMMUMMEXMOMMOMMUMMOMMEME<strong>IBM</strong> 1403 Models 2, 3, 5, N1 and 1404iii=MUM MM. EMMOMMOMMEMEMEMMEMOMMEMEMM RUM MOMEMMENOMME MAIMMOMMEMMOM MIMEO MONO MEMO I MOM OMNI<strong>IBM</strong> 1443 Models 1, NI, and 220.,.■■■=■■ ■■MMIIIXIMINNI■■■M■ ■■■■■■■ 111111••••111111•0•011•1111111111•■■11MM 1111■11•1■■111111■111111■111■■■■■■■■■■■■■■•1■■■■■■■■■■■■XIGLUE 0 1 2 3 4 5 6 7 8 9 ; 10 11 IIA T ElE1131111013000EIEKIEMEE1001113E1 4 E3 7 5 9 0 1 EBEIE1151E19 0' 11EIE110 5 6 7 ago110w13 7 5 9 EMBEIBEE 7 0 9 011 2 1E1021 6 7 5.91311BEILM31510CEMEIE113130000011E1E101308112013EROMME300111111111114111111 MMIIIMIMPIIMMIMIIIIMIMIIIIMEIMMIMMMI IU11111•MMIIII 11111111MW1111111111011111.1111111111IIMM11111111•1111MMEM IUMMIMBI1111111011111111 E111111111111111111MIMMIIIMMIIIMINIIIIIMMIMMEMIIIIMMOMMIMMUMMIHmMIIE1IIIIIMIIMMUMMINIIIIM■■IIINIU■■ nIMIIIIIIIIIIIIIIIIIIIMIMIMIIIIIMIIIBIMZMBIUIMMEMIIIMIIIIIIIIIMIEMIIIMIMIMMI•MMMINEESIMIIEMMMMIIIIIEMIIImmINDIUMEMEMMIIIM1111111111111111M1111111MHIIIIMUMMEMMIIIIMMIllwidIMMIISIM11111111111MILINIMUMMEMMEEMIMEMINIMMOU11111■4111111" • IIIIIMMA WO Mil el .1111V; WIIIIIIIIIIIIIIMMIIIIIMIMMIIIIN WIIMIIMEMINIIIIIIMMEMENNIMIIIIMIIMME11111.11•11111111111111111Thn1111111141111111 •MI MIIIMMINNIIIIIIIIIIM111111111111112111MEMINIMIMIMMEMMEW WEIMMINIIIIINIIIIII 1E1.4 7,W !ZI■ 9Y, Itmt-Ahtimm: n A! 1: lmummu simum wommom M■MINM■■M■MM■M111•1111111111111111111111111111MMIII• MEIMIEIIMMMIIIIIIIIIXIIIMXIIIIXMIIIIIIIIIIIIIIIM•M•MM•M•rn MMEMEMMENIMMENEMMMEMIIIIMMINIMIIMM<strong>IBM</strong>OMMIIMImuummuno MINIMUM-g Hillii1■11■■■■ 111111111111111111111.111111111MIMMINIMMOMMOMMUMENUMBOMMUMMEMEMMIEMMMIIMIMIIMMIIMMIUMIli8 B - ■11111111■411■■■11■ sou I, - IIMIIIMIL ■ I . , I. 1111111111,17, a I 1 19111111111111111111111111111111 ■111•1111111MIMMIMMUSWEIMEHMIMMINIMMIOXIIMEMEJ. 11111111141111111111111 IMF c*IIIN FIT. Y , ?MT. PrIFIKIEILVTA FAr:.r, r3 MCIMNLIVEN ■E■E■EIMMEN MEMMINIIIIIIIIIIHMINIIIMINMELEMMIIIIIIIMMIMMIMMI111111111.411M mmvocupnrvirArniry-ffir_rErrmr: Two-onwigs' 1111111111111111111111111 ■11111.11111111111111MMOMMIIMMEMIMMUMMIIIMIIIIIIMMIll111194111111rizrnsmrrrinnrwrirrrir•Immin 11111111r"74011•MMINI MEM MEM MMINXIMM ETIMIMENNIMMEMMUMMIIIIIIIIIIIMAIIIII mccirmonnminnwinnwInnTrim matitdeawmummuum num N__I- , muumuu' snow r rUHVIMMirr Fir, rmxprin • • Ir. WM! iX4:11K NIIIIIMMIMMIMMIII•11111111 ■■MII■IIMIM■■■■■■II■■■IIIIII■IIIIIIII■■■■IMIMIMIMIIII■■■IIIIIIII■MO41111111 111111111MMEMENIIIIIMMEININIMMUMEMINIMEMIMMEMMEMMOMMINIIMMIIIM11111111111111111111MIIMMIIMMEMOMMIllini1111111111111 NUMIMMIIIIIN IMOMMOOMMUIIIIMINIIIIIIIIIIWINMEAMMIIMIlirMIMMONIMINMEMUMMIIIIIIIIMMIllIIIIIHNIIIII • EMMEN MIIIMIIIIIIIMINIMMIXEMMUM•••••••••••••••••MEMME NI IIIMIIIMIMIMIMI•MMIIIIII•MM•NXIIIIIIIIEMMIIIIIIIIIMI•N••msiIIIIIIHIIIIII MIKKN-Mr, TT, WWI* MUM, I, tvrromwel71111PMEMINEMEMMIMINIMIM NIMIMMUMMMINIMMIUMMMINIIMIllNIIIINIIIIII0 MIIIIMIIIIMEMIIIIIIIIIIIIITTUIMMINMMEMNIMMUMMIIIIMMUNIIIIIIMINIIIMIEMIIMMIIMMUMIIIIIIIIMMEM1111041111M11111111MMIEW VA UMW Wr.r.r.■ :1■: MMIIIIIM111111•1111110•MMEINIMUM•11111111111111111111111111111MINIMMEMIIIIMMINEMBIIMMINIMEMIIi _ Ili summum■■mmu■ ill immummummommummommummummummummommonmomplummummummomm--.......m...........................p. -- -!0111114MMEMMOMPR ---!■OMEMMEMEMMEMOMOWer ---"'-'-TPORIMMINIMMOMMEMMEMEMOMMimmommilm ■--- --------MMOIMMMO00"-- ==m2memmilmm= - ---‘',45..g1111M1111111111•11111011M,,-----■---- - --------IFigure 20. 26.<strong>IBM</strong>LINE DESCRIPTIONINTERNATIONAL BUSINESS MACHINES CORPORATIONPRINTER SPACING CHARTFIELD HEADINGS/ WORD MARKS 8 Lines Per Inch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :<strong>IBM</strong> 1403 Models 1 & 4M••=1111•1111111111•11•••• MENOMONEE NOMMENEENNEMENE•IMMI•MME•ME I7T m I NMI ■■■■■■■ ■ MI Tr ON ■■■■■■■■■■ ■■■■■■■■■1<strong>IBM</strong> 407, 408, 409, and 1403 Models 6 and 7MI 1111111111111111111M X M11111111111111111111111■11=111111MMINE MINIM IN !1111fril 1 'II 1 ■ ■ 111111INIMINIEBESOMIIMMEMEMBENNI I<strong>IBM</strong> 1403 Models 2, 3, 5, N1 and 1404noalM••••••1111•1111•111111111•111110 111111•111111MENOMMOMMOOMO ■■■NIMINI■ I MI FT11 7 . ■■ll NI BIN NO MENNEN.'<strong>IBM</strong> 1443 Models 1, N1, and 2203NIis,■■111■■■■■IMMIIIII■BI■IMMII■■ TT II■■■NIII■■■■■■MI■■■M■■■11111111111111111 7 IO' T 17 1 IIIIIIMIX■■II■ ■■••••11■■■■II■1111■11111111111111■MI■■■ ■■111GL UE I 0 1 2 3 4 5 7 8 9 1 0 11 IIA MOOMEMEMBOMMEEMB2340471800123451WOUOUNROM60000121eTC789 1 07213:4 5 6 , [i379 0 1 2 ElnEtNocommunmgoari TEEKIBC11/0000E1E101301200I:111111111111411111111 MIONIIIIIIIMIIIIIIIIIIIIIIMIIIIIIIMINIMIMIMEINEM_IMMINNIIIIIIIIIIMIN M ITIHI I MENIIIMMEINEMINNEINIMIIIIIIIIIIIIIMIIIIIIIIIIIIIIIIIDIIIIIII IIIIIIIIMMMIIIMIMMMMMMMMMNMIMMMuErIIIMIMIMIIIIMEIIIIIIIIIIIIIIIIIMIIMIIIIIIII 1 t 1' Ill I 11111.111•111111UNIEMINIMMONIIIIIIIIIIIIIMINIIIIMENIIIIIIPOINIIIIMINNEMENNEMINIIII•111111111111111111111111111111111•IMIMMEMMEMOOMMENEMONIIIIMIININ 1._ ' T7_k_i .1 irrn1111111111111111111111111111111111•11111121111111111111111111iliMEMENLI11111100111111MENIIMINEIMIIIIMIEHMENIMEME11•10•111M11111111111111111111111MINEMIENIMMENEI , I n_ , n? T,' Ilri111111110O1r.irtIr7AFEAr IMINNIM11111111,41111111rIIMEN7.1W ZkV4 PI):4i: E4■Arcootrosvire. ■AN Iiiikercor r, RN AWAT47,11:141:11110.4././IMPr.a.,w641PiAV!bl'AAP6NOYVIV,!!MOMMINIMIIIIIMIIIIII• onrumummummossmorti ■ismai■■■ili■mu■mum■ -, t.-1 I ■■■riminnuporrAmmar■inormr ■■■■■■■m• ■1111111N■■1111 ni wirso-owoir,r4rordr IV.W1rfo:4:42 .■"*".6".§:*1179-Jiir(r MU COY:0117.4*111I:! INV' A 17 7 e Art , Tditv7.7 r r non ..Y.,/ Aniummiimuoupignon .......nummommoserniumunimmunessummooss■1 e! muirmstriormommumrAmmorm............m111111111Pallill1.11FACrATAINOW4inr.C.Ii. wooroForon070:474/:4741:11.:Nr.4r. w.r.iw '.1■-2111):411 'I L i '; I ■►f,77%7.01V17,741r1TWA■EIZIIAIIIIIIIIIIII■■■■IIIIIIPUI11111 mommium ■ilmommenummiiiimisim nu ■illilmsI I ■M■■III■■■■IIIIIE■■WA■EW1■■11■MINIMI■Ini2 .r im1110111111111111 NI MINNIEN1 NalINIEMIUMMEMIN ••• MEMENNII i7 .I1'_ _ - ..a..I0 minulognielimmiri mingemiligernalsr•Bolossomossummorili . 4.111111111111-14J"." '1 ' H1 --I -7.nummimmilow - - ....----4!IIIIIIIIIIIIIIIIIIIIIIIM"'"'''—............a..e.r. ..., ..--, ---.IIFigure 20, 27,


Section Subsections Page20 50 40 01Disk Record FormatsEmployee File - Figure 20.28Index to Employee File - Figure 20.29Company Record in <strong>the</strong> Corporation File - Figure 20.30


Section SubsectionsPage20 50 40 02EMPLOYEE information recordstarting at 109 and continuingthru 156 is current information.6Z_v 020Name>.'7 3&J,cot,7013.17, Eo 3In Z..n 8-g≯3a,?, Ẹa.co •Eow7 t.- -o `^a ‘4 O.gro,0 .c, x E E x- ḟi,P -A 2,,5,‘,LL t/).gcoel,.1 7,cc›12I I I I 1 . 1 1 i 11 5 6 10 11 15 16 20 21Year-to-Date Information25 26 30 31 35 36 40 41 45 46 50 51 55 56 60 61Quarter-to-DateInformation113;Qri .0c0 EDI—>- ...z.CD80axt m0..ya,80 6t•.,co ,6 = E.6 .0•-g -ci -F.,,21, g2 —.,e 0 ''c al :4: caọ..2 Previous 13 weeksOvertime"'.2 .c -o c zRate2 -c;— 00._-2, ° 2 '''0ca..a... .0 0C.)COIIIIIIIIIIIM I IIIIIII III'.65 66 70 71 75 76 80 81 85 86 90 91 95 96 100 101 105 106cxcI6:o°-,?3"0 8216 coa'?E' :cc•._ 0•g'COa-o >00CO.0-6X>CO0.. 0tco>>. .O45>.e_a>Z.:(C.)LLI I1 I1 1 I i II II II III I III II I110 111 115 116 120 121 125 126 130 131 135 136 140 141 145 146x .1L, >Do2 .a—r—D.0cL. Ti, AI 17, . .33 -g c...) •? .6 7—ZotogFor Growthof RecordI I150 151 155 156 160Figure 20, 28,


1Section Subsections Page20 50 40 03Each record is composed of 1 word.The number of records in <strong>the</strong> file is 0<strong>the</strong> number of employees in <strong>the</strong>plant plus 25%. The last entry is 0<strong>the</strong> record number of <strong>the</strong> last clocknumber entered.1Figure 20. 29.This is <strong>the</strong> plant information record.Plant Name0Z",ii.c06Z_ỵitIII III I II III II )1 5 6 10 11 15 16IITrade Association InformationGeneral LedgerAccount Numbersfor Posting-6 ,v 'E'.. .0 o Eco _eg 4,zTvtiIciZ...y g .c0To.8.LL4,,, t I i 1 i I I i i i i I i J i I II I . I I 1 1 1 I i i I i I 1 i i I i i I 120 21 25 26 30 31 35 36 40 41 45 46 50 51 55 56 60 61Availablefor Expansionill 1 I 1 till I I 1 ti I III II it I I 1 1 1 1 I I 1 I I I 1 I 1I65 66 70 71 75 76 80 81 85 86 90 91 95 96 100 101 105 106Figure 20. 30.


This page intentionally left blank.


Section Subsections Page20 50 50 01System FlowchartEmployeeEarningsRecordKeypunch &Key VerifyClock No.and NameTotals onAddingMachineTAPEClock No.andNameKeypunch &Key-VerifyControlTotalsControlTotalsZero BalanceTotalsPAY 16INPUTEDITBalance toTotals &Correct asNecessaryOut of BalanceO .K.Control Totals<strong>All</strong> butNamePAY 02ADD NAMESDiskPayrollFilePAY 01FILECREATEControl Totals<strong>All</strong> butNameFileADiskPayrollFileClock No.andNameFileBFile create (initially and as necessary)


Section SubsectionsPage20 50 50 02EmployeePayroll ChangeAuthorizationsTotal onAddingMachineTAPEKeypunch &Key-VerifyClock No.,Change Code,and Changes( Keypunch &Key-VerifyControlTotalChangesControlTotalZerqBalanceTotalPAY 16INPUTEDITBalance toTotal andCorrect asN ecessaryOut of BalanceO .K.ControlTotalFromStorageChangesDiskPayrollFilePAY 03FILECHANGESChangesControlTotalFileCFile changes (weekly)


Section Subsections Page20 50 50 03WeeklyTimeSheetsTotals onAddingMachine1■•TAPEKeypunch &Key-VerifyDetailsKeypunch &Key-VerifyControlTotals■DetailsZero BalanceTotalsPAY 16INPUTEDITControlTotalsBalance toTotals &Correct asNecessaryOut of BalanceO.K.Control TotalsDiskPayrollFileDetailsPayrollRegisterCALCULATIONZero BalanceTotalsBalance toTotals; IfIncorrect,Go to EDetailsPayroll calculations and register (weekly)


Section Subsections Page20 50 50 04CDiskPayrollFileControlTotalsCalculated PAY 05 Pay Checks Total onControl PAYROLL and Stubs AddingTotals CHECKS MachineBalance toTotals; IfIncorrect,Go to DTAPEOnly WhenTotals BalanceBurst, Signand DistributePaychecksand StubsDiskPayrollFileControlTotalsPAY 06CHECKREGISTERCheckRegisterBalance toTotals; IfIncorrect,Go to EDistributeCheckRegisterDiskPayrollFile/ ControlTotalsPrint paychecks (weekly)


Section Subsections Page20 50 50 05DOnly When Totals Do Not Balance/ DiskPayrollFileControlTotalsFileDDetailsPAY 11VOIDCHECKS(iDiskPayrollFile\ControlTotalsDetailsToVF ileDPayroll check voiding (as necessary)


Section SubsectionsPage20 50 50 06FromStorageGeneralLedgerDiskPayrollFileUnionDuesRegisterPAY 13UNIONDUESE nter PlantNumberTote s onAddingMachineBalance toTotals; IfIncorrect,Go to ETAPEDistributeUnionDuesRegisterDiskPayrollFileCreditUnionRegisterPAY 14CREDITUNIONEnter PlantNumberBalance toTotals; IfIncorrect,Go to EDistributeCreditUnionRegisterDiskPayrollFileEnter PlantNumberStockDeductionRegisterPAY 15STOCKDEDUCTIONEnter PlantNumberStoreDistribute Balance to DiskStock Totals; If PayrollDeductionIncorrect,FileRegisterGo to EPAY 12RESETMONTHLYTOTALSDiskPayrollFilePayroll deduction registers (monthly)


Section Subsections Page20 50 50 07DiskPayrollFileGeneralLedger•PAY 07 Enter Plant Totals onTotals AUDIT FILE Number AddingBY COMPANY\ Machine //Balance toTotals; IfIncorrect,Go to EDiskPayrollFileFileETAPEPlantNumbersCalculated PAY 09Control 941Totals REPORT 941ReportBalance toTotals; IfIncorrect,Go to EDistribute941ReportDiskPayrollFilePlantNumbersTaxWorksheetPAY 10TAXWORKSHEETDiskPayrollFileStoreBalance toTotals; IfIncorrect,Go to EPlantNumbersFileEPayroll file audit, 941, and tax worksheet (quarterly)


SectionSubsectionsPage20505008FromStorageFileEDisk /PayrollFilePlantNumbersGeneralLedgerW-2ReportsPAYnnW-2REPORTSTotals onAddingMachineBalance toTotals; IfIncorrect,Go to E11111 TAPEDistributeW-2ReportsVDisk /PayrollFilePlantNumbersPrint W-2 reports (annually)


Section Subsections Page20 50 50 09DiskPayrollFile/ Select DesiredClock NumberCardClockNumberIndividualPayrollRecordPAY 08INQUIRYLast Week'sPayrollRegisterBalance toTotals; IfCorrect,Go to EWeeklyTimeSheetsDetermineChangeRequiredUse PAY 16& PAY 03to Change <strong>the</strong>Disk PayrollRecord/ Does thiscorrect originalerror? If not,Go to EReturn toPrint WhereErrorOccurredOnly whenentire originalerror has beencorrectedError detection and correction (as necessary)


Section SubsectionsPage20 50 50 10Remember, all of <strong>the</strong>se pages are developed bynow become a part of your system documentationthis point in your system design. In addition, <strong>the</strong>y (see Section 35).


Section Subsections Page20 60 01 01LANGUAGE SELECTIONIntroductionNow that your system has been specified, <strong>the</strong> implementationof <strong>the</strong> design must be considered.Since you will be writing a program, <strong>the</strong> logicalquestion is "What language shall I use ?"<strong>IBM</strong> supplies and supports a wide variety ofprogramming languages and application programsfor <strong>the</strong> <strong>1130</strong> <strong>Computing</strong> System. Among <strong>the</strong>programming languages (Type I programs) are:<strong>1130</strong> Assembler Language<strong>1130</strong> FORTRANSome of <strong>the</strong> application programs (Type II programs)are:• Continuous System Modeling Program (CSMP)• <strong>Data</strong> Presentation System (DPS)• Linear Programming - Ma<strong>the</strong>matical OptimizationSubroutine System (LPMOSS)• Mechanism Design System - Gears andSprings• Civil Engineering Coordinate Geometry(COGO)• Numerical Surface <strong>Techniques</strong> and ContourMap Plotting• Programs for Optical System Design (POSD)• Programs for Petroleum Engineering andExploration• Project Control System (PCS)• Route Accounting for Dairies and Bakeries• Scientific Subroutine Package (SSP)• Statistical System• Structural Engineering Systems Solver(STRESS)• Type Composition• Work Measurement Aids• Commercial Subroutine Package (CSP)Your <strong>IBM</strong> representative can help you determinewhich programming language or application programshould be used to implement your system.In addition to <strong>the</strong>se two types of programs, <strong>IBM</strong>'sProgram Information Department maintains alibrary of contributed programs and distributes<strong>the</strong>se programs to interested parties. These arecontributed to <strong>the</strong> library by:1. <strong>IBM</strong> employees (Type III programs)2. <strong>IBM</strong> customers (Type IV programs)Type II and type IV programs have been submittedto <strong>the</strong> Program Information Department forgeneral distribution in <strong>the</strong> expectation that <strong>the</strong>ymay prove useful to o<strong>the</strong>r members of <strong>the</strong> dataprocessing community. The programs and documentationare, essentially, in <strong>the</strong> author's originalform and have not been subjected to any formaltesting. <strong>IBM</strong> serves only as <strong>the</strong> distribution agent.It is your responsibility to determine <strong>the</strong> usefulnessand technical accuracy of <strong>the</strong> programs in yourown environment. Unlike programming systems(Type I) and application programs (Type II), <strong>the</strong>seprograms are not part of <strong>the</strong> <strong>IBM</strong> support package.The remainder of this section elaborates oneach of <strong>the</strong> programming languages and applicationprograms and discusses some of <strong>the</strong> considerationsin answering "Which do I use ?"


Section SubsectionsPage20 60 10 01Programming LanguagesAssembler LanguageThe <strong>IBM</strong> <strong>1130</strong> Assembler Language, while similarin structure to machine language, replaces binaryinstruction codes with symbols and uses labels foro<strong>the</strong>r fields of an instruction. O<strong>the</strong>r features,such as pseudo operations, expand <strong>the</strong> programmingfacilities of machine language. Thus, <strong>the</strong> programmerhas available, through an assembler language,all <strong>the</strong> flexibility and versatility of machine language,plus facilities that greatly reduce <strong>the</strong> machinelanguage programming effort.The <strong>IBM</strong> <strong>1130</strong> Assembler Language has twoparts: <strong>the</strong> symbolic language used in writing aprogram and <strong>the</strong> assembler program that converts<strong>the</strong> symbolic language into machine language. Anadditional component is a library of relocatable I/O,arithmetic, and functional subroutines.Symbolic language is <strong>the</strong> notation used by <strong>the</strong>programmer to write (code) <strong>the</strong> program. A programwritten in symbolic language is called asource program. It consists of systematicallyarranged mnemonic operation codes, special characters,addresses, and data, which symbolicallydescribe <strong>the</strong> problem to be solved by <strong>the</strong> computer.The use of symbolic language:1. Makes a program independent of actual machinelocations, thus allowing programs and routinesto be relocated and combined as desired.2. <strong>All</strong>ows routines within a program to bewritten independently and causes no loss ofefficiency in <strong>the</strong> final program.3. Permits instructions to be added to ordeleted from a source program without <strong>the</strong> userhaving to reassign storage addresses.The assembler program (processor), suppliedto <strong>the</strong> user by <strong>IBM</strong>, operates from paper tape, frompunched cards, or under control of <strong>the</strong> <strong>1130</strong> DiskMonitor Systems. It converts (assembles) asymbolic-language source program into a machinelanguage(object) program.The conversion is one for one-- that is, <strong>the</strong>assembler produces one machine-language instructionfor each symbolic-language instruction.The <strong>IBM</strong> <strong>1130</strong> Assembler is a two-pass program.The processor is loaded into <strong>the</strong> computer and isfollowed by <strong>the</strong> first pass of <strong>the</strong> source program.During <strong>the</strong> first pass, source statements are readand a symbol table is generated. During <strong>the</strong> secondpass, <strong>the</strong> source program is read again and<strong>the</strong> object program and/or error indications arepunched into <strong>the</strong> first 20 columns of each sourcecard. If paper tape is used, <strong>the</strong> second pass resultsin <strong>the</strong> punching of a new tape that contains bothsource statements and corresponding object information.If disk is used, this becomes a one-passprocedure, <strong>the</strong> disk being used for intermediatestorage. Both card and tape object programs mustbe compressed (via a Compressor Program suppliedwith <strong>the</strong> assembler) into a relocatable binary deck(or tape) before <strong>the</strong>y can be loaded into core storagefor execution.The output from <strong>the</strong> second pass is called <strong>the</strong>list deck (or tape) and can be used to obtain a programlisting of source statements and correspondinging object statements. Use of disk automaticallycompresses <strong>the</strong> object program into relocatable(loadable) form. A program listing is an option if<strong>the</strong> one-pass disk procedure is used.A library of I/O, arithmetic, and functionalsubroutines is available for use with <strong>the</strong> <strong>IBM</strong> <strong>1130</strong>Assembler.The user can incorporate any subroutine into hisprogram by simply writing a statement referringto <strong>the</strong> subroutine name. The assembler generates<strong>the</strong> linkage necessary to provide a path to <strong>the</strong>subroutine and a return path to <strong>the</strong> user's program.The ability to use subroutines simplifies programmingand reduces <strong>the</strong> time required to write aprogram.A description of available subroutines is containedin <strong>the</strong> <strong>IBM</strong> <strong>1130</strong> Subroutine Library (C26-5929).FORTRAN LanguageFORTRAN (FORmula TRANslation) is a codingsystem with a language that closely resembles <strong>the</strong>language of ma<strong>the</strong>matics. It is a system designedprimarily for scientific and engineering computations.Since this system is essentially problemorientedra<strong>the</strong>r than machine-oriented, it providesscientists and engineers with a method of communicationthat is more familiar, easier to learn, andeasier to use than actual computer language.The <strong>IBM</strong> <strong>1130</strong> Basic FORTRAN IV ProgrammingSystem consists of two parts: <strong>the</strong> language and <strong>the</strong>compiler. The language is a set of statements,composed of expressions and operators, that areused in writing <strong>the</strong> source program. The <strong>1130</strong>FORTRAN compiler, provided by <strong>IBM</strong>, is a programthat translates <strong>the</strong> source program statementsinto a form suitable for execution on <strong>the</strong> <strong>IBM</strong> <strong>1130</strong><strong>Computing</strong> System. The translated statements areknown as <strong>the</strong> object program. The compiler detects


Section Subsections Page20 60 10 02certain errors in <strong>the</strong> source program and writesappropriate messages on <strong>the</strong> console printer, 1132Printer, or 1403 Printer. At <strong>the</strong> user's option, <strong>the</strong>compiler also produces a listing of <strong>the</strong> source programand storage allocation.


Section SubsectionsPage20 60 20 01Application ProgramsContinuous System Modeling ProgramThis program provides engineers and scientistswith a simple but versatile tool for solving dynamicsystem simulation problems. For many problems,this program obviates <strong>the</strong> need to use an analogcomputer facility.CSMP is a "digital analog simulator" programusing a block-oriented input language in which <strong>the</strong>functional blocks represent <strong>the</strong> elements and organizationof an analog computer. A total of 25 standardfunctional blocks plus <strong>the</strong> ability to definespecial functions are provided. The continuous systemmodel may be developed and tested, and resultsobserved in an online interactive mode by means of<strong>the</strong> console keyboard and output devices. The simplicityof <strong>the</strong> language statements enables a user torapidly gain proficiency with <strong>the</strong> program and facilitatesmodification of <strong>the</strong> model via <strong>the</strong> console. Inaddition, via <strong>the</strong> console printer, <strong>the</strong> beginner isprovided instructional comments that can be suppressedas experience is gained. Simplicity andflexibility are <strong>the</strong> foremost characteristics of <strong>the</strong>program.<strong>Data</strong> Presentation SystemThis program can present a large variety of data inplotted forms such as graphs, charts, schematics,and modified drawings. It supplies high-quality,hard-copy, graphic output at exceptionally low cost.The system can be used independently as a GraphicReport Generator, or <strong>the</strong> user can choose one ortwo levels of subroutines from <strong>the</strong> system for inclusionin his own graphic output programs. Thesethree levels of access are made even more flexibleby several system modification and expansionfeatures. The scope and flexibility of DPS make itvaluable in almost every application of <strong>the</strong> <strong>IBM</strong><strong>1130</strong> <strong>Computing</strong> System.Linear Programming -- Ma<strong>the</strong>matical OptimizationSubroutine SystemLP-MOSS provides <strong>the</strong> <strong>1130</strong> disk user with a simple,efficient means of solving linear programmingproblems and a means for implementing a varietyof ma<strong>the</strong>matical optimization applications.Ma<strong>the</strong>matical optimization is any ma<strong>the</strong>maticaltechnique for determining <strong>the</strong> optimum use of variousresources such as capital, raw materials,manpower, and plant or o<strong>the</strong>r facilities. Thetechnique seeks to attain a particular objective(for example, minimum costs or maximum profit)when <strong>the</strong>re are alternate uses for <strong>the</strong> resources.Linear programming is <strong>the</strong> most widely used of<strong>the</strong>se techniques, and has been used to allocate, assign,schedule, select, or evaluate <strong>the</strong> uses oflimited resources for various jobs, such as blending,mixing, bidding, cutting, trimming, pricing, purchasing,planning, and <strong>the</strong> transportation and distributionof raw materials and finished products.Mechanism Design System -- Gears and SpringsThis program provides design and analysis for fivedistinct mechanical components used in a widevariety of machines in all industries. Spur andhelical gears, compression, extension, and torsionsprings are <strong>the</strong> components covered. The programprovides <strong>the</strong> mechanical engineer and mechanismdesigner with a low-cost, flexible, easy-to-useprogram set which will design new parts or analyzeexisting parts.The engineer is expected to furnish <strong>the</strong> problemdescription in terms of design restrictions andmaterial parameters. This description is in aflexible problem language format which greatlysimplifies man-machine communication. Operationcan be ei<strong>the</strong>r by a batch card input mode or in aconversational typewriter input mode. In <strong>the</strong> lattercase, an engineer can readily evaluate parametricchanges and truly use <strong>the</strong> computer as a designtool.Civil Engineering Coordinate GeometryCOGO is a simple, efficient tool designed especiallyto assist <strong>the</strong> civil engineer with a wide variety ofgeometric calculations. With COGO, <strong>the</strong> engineercan state his problems using familiar terminologycommon to <strong>the</strong> engineering field. No knowledge oftraditional programming is necessary.The civil engineer requires a simple but efficientmeans to solve geometric problems now being donelaboriously by hand. <strong>1130</strong> COGO provides <strong>the</strong>solution to his problem by allowing <strong>the</strong> engineer to(1) enter <strong>the</strong> data for <strong>the</strong> job into <strong>the</strong> computer bytypewriter or punched cards, using a language withwhich he is familiar, and (2) to have solutionsautomatically printed out. COGO is especially usefulbecause it provides <strong>the</strong> facility for <strong>the</strong> engineerto try many different methods of solving a problem.COGO can be used for many different types of jobs,e.g. , control surveys, highway design, right-of-way


Section Subsections Page20 60 20 02surveys, bridge geometry, subdivision calculations,land surveying, construction layout.COGO can, in fact, be used wherever geometriccalculation is required.Numerical Surface <strong>Techniques</strong> and Contour MapPlottingThis program provides a variety of techniques fordescribing and operating on surfaces. Surfacesmay be described analytically by equations or numericallyby sets of data points. In addition, variousarithmetic and logical operations may be performedon <strong>the</strong>se surfaces. These techniques maybe carried out individually or in various combinationsby storing intermediate data in <strong>the</strong> onlinedisk storage. Final output is commonly in <strong>the</strong> formof maps drawn by <strong>the</strong> 1627 Plotter, but may optionallybe in card form.Optical System DesignPOSD provides <strong>the</strong> optical designer with a convenient,efficient design tool. It is in <strong>the</strong> ComputerAided Design (CAD) category of programs, thusexhibiting a close man-machine relationship throughout<strong>the</strong> design task. The <strong>1130</strong> <strong>Computing</strong> System isideal for this interaction, because it is fast, convenient,and inexpensive to use.POSD removes <strong>the</strong> drudgery and error-pronenessfrom <strong>the</strong> innumerable calculations required in <strong>the</strong>optical design and evaluation process and allows<strong>the</strong> designer to spend his time exercising creativeand critical judgments. The program gives <strong>the</strong>designer step-by-step assistance from <strong>the</strong> veryearly stages of <strong>the</strong> design through to <strong>the</strong> final optimizationprocess. In addition, <strong>the</strong> designer mayevaluate <strong>the</strong> quality of his design at any time hechooses through many data plot or printout routinesor both. Using this program, <strong>the</strong> optical designercan tackle virtually any lens system, includingthose requiring a high degree of sophistication, with<strong>the</strong> assurance that <strong>the</strong> lens performance will meetspecifications in modeling and manufacture.Programs for Petroleum Engineering and ExplorationEconomic Evaluation of Petroleum Projects Programcan be used to screen drilling proposals andrank <strong>the</strong>m according to <strong>the</strong>ir profitability. Given<strong>the</strong> investment schedule and production forecast foran exploration and drilling prospect, <strong>the</strong> programscompute <strong>the</strong> payout period and rate of return using<strong>the</strong> discounted cash flow method.Casing Design Program allows <strong>the</strong> user to design<strong>the</strong> most economical combination casing string, interms of grade and weight, that will meet <strong>the</strong> requirementsof a given well.Decline Curve Analysis Program computes <strong>the</strong>coefficients in <strong>the</strong> equation best fitting past productiondata and <strong>the</strong> reserves associated with <strong>the</strong>sedata.Tamer Material Balance Program is an aid inpredicting <strong>the</strong> performance of a reservoir.Schilthuis Material Balance Program for a reservoirthat is subject to water influx, is evaluatedat each past production data point (for up to 28points). These values are weighted according tooil production and subjected to a least-squaressolution to compute a most probable value of <strong>the</strong>original oil in place.Two-Dimensional Waterflooding Program allows<strong>the</strong> user to determine <strong>the</strong> pressure distributionthroughout a reservoir, taking into consideration<strong>the</strong> effect of water injection.Gas Deliverability Program allows <strong>the</strong> user toproject <strong>the</strong> annual rate at which volumes of gasreserves may be received into ga<strong>the</strong>ring systems.Multi-State Flash Calculation Program is ageneral purpose flash claculation program that canbe used for a variety of <strong>the</strong> computations made by<strong>the</strong> petroleum engineer. The program may be usedto design surface separators or to determine <strong>the</strong>physical properties of <strong>the</strong> oil and gas from a surfacefacility. A laboratory differential liberationmay be simulated.Velocity Functions from Time-Depth <strong>Data</strong> Programpermits a geophysicist to derive a velocityfunction and to prepare a tabulated time-depth chartfrom well velocity data.Wave-Front Ray-Path Determination Programprovides a flexible method to compute and tabulatea seismic wave-front ray-path chart; <strong>the</strong> geophysicistuses such a chart to restore seismic reflectionsto <strong>the</strong>ir true subsurface position.Syn<strong>the</strong>tic Seismogram Program computes andplots a one-dimensional seismic model from welllog data.Gravity and Magnetics Continuations, Derivatives,and Residual Program provides a method forcomputing (1) upward and downward continuations ofgravity and magnetic fields, (2) first and secondderivatives of <strong>the</strong>se fields, (3) residuals of arbitrarytype for gravity and magnetic values.


Section Subsections Page20 60 20 03Theoretical Gravity of a 3-D Mass Programallows <strong>the</strong> user to establish a syn<strong>the</strong>tic gravityanomaly by computing <strong>the</strong> <strong>the</strong>oretical gravity of anassumed mass.Quantitive Log Analysis Program permits <strong>the</strong>user to compute <strong>the</strong> porosity and water saturationon prospective hydrocarbon zones in a well, usingdata from several log combinations.Dipmeter Program is designed to assist in <strong>the</strong>analysis of <strong>the</strong> continuous dipmeter log by calculating<strong>the</strong> true dip of intervals in a well.Project Control SystemThis program provides a basic tool needed bymanagement to fulfill its responsibilities in <strong>the</strong>planning, supervising, and controlling of projectorientedwork. In addition to critical path analysis,<strong>the</strong> system provides <strong>the</strong> capability for summarizingexternally prepared resource and cost information.For critical path networks, <strong>the</strong> <strong>1130</strong> PCS willprocess 2,000 activities ei<strong>the</strong>r in <strong>the</strong> form ofprecedence lists or in ij/PERT/CPM notation. Itsdesign allows for a simple approach to networking,but also offers many of <strong>the</strong> features normally foundonly in programs designed for large computers.Route Accounting for Dairies and BakeriesThis is a set of programs offering <strong>the</strong> functions ofroute settlement and associated report preparationas required in <strong>the</strong> dairy and baking industry. Outputincludes order listings, production requirements,load listings, product load strips, route settlement,and statistical reports.Scientific Subroutine PackageSSP is a collection of FORTRAN subroutines thatprovide a major addition to those built intoFORTRAN. They are input/output-free, computationalbuilding blocks that can be combined with auser's input, output, or computational routines tomeet his individual needs. The package has widespreadapplication to <strong>the</strong> solution of problems in research,development, and design, in both scienceand engineering, wherever FORTRAN is used.Statistical SystemThis is a collection of four major tools: stepwiseregression analysis, factor analysis, analysis of variance,and orthogonal polynomial curve fitting. Thisflexible system accepts user-supplied control cards(and data) that instruct <strong>the</strong> system to perform one ormore of <strong>the</strong> above analyses.Structural Engineering Systems SolverSTRESS is a powerful tool for solving structuralengineering problems. It is a problem-orientedlanguage that enables <strong>the</strong> engineer to communicatewith <strong>the</strong> computer even though he has had no previousprogramming experience.This program covers many application areas in<strong>the</strong> field of structural analysis. Most buildingsand bridges are designed by consulting engineersor government agencies, but many o<strong>the</strong>r types ofstructures in o<strong>the</strong>r industries can also be designedusing <strong>1130</strong> STRESS. Some of <strong>the</strong> o<strong>the</strong>r industriesand typical applications for each are:IndustryTypical ApplicationAerospaceWing membersManufacturing Conveyor framing, plant designProcessSupporting towersUtilitiesTransmission towers, culvertsectionsFederalDam design, ship designType CompositionThis program extends <strong>the</strong> speed and flexibility of adigital computer into <strong>the</strong> composing rooms of <strong>the</strong>printing industry. Type compositors can use thisprogram to provide significant time savings intranscribing textual material into a form requiredby linecasting machines for setting type.The program is designed to allow computeracceptance of perforated paper tape containing(1) <strong>the</strong> copy that is to appear in print and (2) instructionspertaining to a desired printing format.From <strong>the</strong> paper tape, a tape suitable for controlling<strong>the</strong> operations of a linecasting machine is producedand allocated to <strong>the</strong> proper point in <strong>the</strong> composingroom. The output tape contains <strong>the</strong> original copy in<strong>the</strong> form of properly justified lines arranged accordingto <strong>the</strong> stylistic and graphic requirements describedby <strong>the</strong> user with <strong>the</strong> format instructions. The programsare capable of producing justified lines inany format within <strong>the</strong> inherent limitations of <strong>the</strong>linecasting machine.


Section Subsections Page20 60 20 04Work Measurement AidsThis program aids manufacturers who need toknow <strong>the</strong> time it should take to manufacture a product.This task, often referred to as work measurement,has traditionally been very time-consumingand expensive. Work Measurement Aids providestwo programs to assist in setting time standards.This information also forms <strong>the</strong> foundation for laborstandards, cost estimates, machine operationinstructions, and scheduling input. The two programsare:Machinability, which determines optimum machinetool parameters such as speed, feed, horsepower,tool life, and process time for machining operations.Work Measurement Sampling, which determinesjob standards for long cycle operations (over 15minutes) and <strong>the</strong> distribution of time to job activities(conventional work sampling).Commercial Subroutine PackageThis program provides <strong>the</strong> scientific and engineeringuser with added capabilities for handling functionsand techniques common to commercial programming.It is a set of 28 subroutines callable by <strong>the</strong>FORTRAN programmer in a similar manner to suchstandard functions as sine, cosine, square root,etc. The subroutines enable <strong>the</strong> <strong>1130</strong> user to addcommercial applications such as payroll, cost accounting,and many o<strong>the</strong>rs.The additional functions supplied are variablelength alphameric move, variable length alphamericcompare, variable length alphameric edit, variablelength conversion from EBCDIC to floating-point,variable length conversion from floating-point toEBCDIC, zone manipulation, fill an area with aspecified character, stacker select, variable lengthdecimal add, variable length decimal subtract,variable length decimal multiply, variable lengthdecimal divide, variable length decimal compare,sign manipulation, overlapping printing and carriagecontrol, overlapped reading of cards with conversionof card codes, overlapped printing on <strong>the</strong>console printer, and conversion from one characterper word to two characters per word.


Section SubsectionsPage20 60 30 01Which Programming Language or ApplicationProgram Should You Use?In terms of coding ease and elapsed time fromproblem definition to operating program, <strong>the</strong> programmingtechniques available to you will generallyrank as follows:1. Application programs (except CommercialSubroutine Package and Scientific Subroutine Package)2. FORTRAN, Commercial Subroutine Package,and Scientific Subroutine Package3. Assembler LanguageThe Assembler Language is rarely used, becauseFORTRAN, augmented by <strong>the</strong> CommercialSubroutine Package and Scientific Subroutine Package,is more than capable of handling almost allapplications, is easier to code, and producesefficient programs.The brief descriptions given earlier will helpyou to select <strong>the</strong> best language in which to programyour applications. A preview of <strong>the</strong> payroll programsgiven in Sections 25 and 35 will give you aclearer picture of <strong>the</strong> kind and amount of writingrequired to code some typical commercial jobs.In addition, Section 70 discusses FORTRAN,<strong>the</strong> Commercial Subroutine Package, and how touse <strong>the</strong>se two tools in implementing your systemdesign.


Section SubsectionsPage25 00 00 01Section 25: PROGRAM DEVELOPMENTCONTENTSIntroduction 25. 01. 00Programming and DocumentationStandards 25. 10. 00Program Change Authorization 25.20. 00Programming Aids 25.30.00Documenting Variable Usage 25.30.10Modular Programming 25.30.20Programming Examples 25.40.00Introduction 25.40.01Example 1: File Creation 25.40.10Example 2: Add Name to <strong>the</strong> File 25.40.20Example 3: Changes to <strong>the</strong>File 25.40.30Example 4: Calculations andPayroll Register 25. 40. 40Example 5: Check Writing 25.40. 50Example 6: Check Register 25. 40. 60Example 7: 941 Report 25.40.70


Section SubsectionsPage25 01 00 01IN T ROD UC TIONThis section is a workbook for <strong>the</strong> programmer.Primarily by example, and to some extent by narrative,he is furnished with a guide to coding.First, suggestions are made for <strong>the</strong> adoption ofcertain standard practices that will make <strong>the</strong> programmingjob easier and <strong>the</strong> results more uniform.Then follows a series of programming aids.The bulk of this section is occupied by <strong>the</strong> finalpart, a group of examples of coding required toimplement a significant part of <strong>the</strong> payroll systemdiscussed earlier. They will prove useful in providinga starting point for <strong>the</strong> programmer and illustratingproven programming techniques, ra<strong>the</strong>rthan in being usable without change for any giveninstallation's system. Note that programs arewritten at this point in <strong>the</strong> installation of your system.Also, Variable Summary Sheets are filled inand flowcharts are drawn. These last two itemsnow become a part of your documentation (notereferences to Section 35).


Section Subsections Page25 10 00 01PROGRAMMING AND DOCUMENTATIONSTANDARDSFor a discussion of <strong>the</strong> documentation that youshould have upon completion of a program, seeSection 35.It is advisable to decide on and write down, perhapsfollowing this page, your own standard proceduresfor handling <strong>the</strong> situations below. You shouldhave some knowledge of programming before attemptingto do this.1. Alternative methods of handling standardtypes of errors (for example, missing date card):a. Assign a standard halt number.b. Assign a standard halt number and errormessage.c. Assign a standard error stacker; do nothalt.2. Standard error messages:a. Establish a log of error messages andhalt numbers and <strong>the</strong>ir meaning.b. Standardize spacing, skipping, location,and whe<strong>the</strong>r to halt for each standard errormessage.3. Standard FORTRAN labels:a. Assign a standard symbolic name foreach I/O device.b. Assign standard field names for fieldsused frequently.c. Assign standard subroutine names forroutines used frequently.4. Record layout conventions:a. Define standard heading (for example,date to left, title in center, report numberand page number to right).b. Define spacing (for example, when listing,single-space detail, double after minor,triple after intermediate and up; when tabbing,single-space after minor, double afterintermediate, triple after major and up) .c. Define how totals are to be indicated(with asterisks or message).d. Define how final totals and control totalsare to be printed (for example, at bottomof page, on next page).5. Specify when flowcharts are required for programlogic:a. When a significant number of GO TO orIF statements are used.b. When a complex table lookup is performed.c. Whenever <strong>the</strong> logic of <strong>the</strong> computation isso complex that ano<strong>the</strong>r person wouldhave difficulty following it without <strong>the</strong> aidof a chart (decision tables may be best).6. Describe how program changes are to bemade:a. Require changes to be authorized.b. Assign all changes to a programmerthrough <strong>the</strong> manager of data processing.c. Keep track of time spent making programchanges by application and by initiator ofchange.d. Require that all necessary documentationbe brought up to date.7. Outline methods of testing programs:a. Define conditions in which a test deck issufficient.b. Define conditions in which a programmust be production-tested before installation.8. Standardize writing of specifications:a. Establish a standard identification (see <strong>the</strong>accompanying FORTRAN coding form).b. Use a standard form of program identification,such as a three-character applicationcode followed by a two-digitprogram number (for instance, PAY10,PAY20, BIL10).


Section Subsections Page25 20 00 01PROGRAM CHANGE AUTHORIZATION<strong>All</strong> changes to an operating program should becontrolled in order to avoid confusion andunauthorized changes. The following sheet issuggested as a means of maintaining control.PROGRAM CHANGE AUTHORIZATIONApplicationProgramRequested by• Date / /Description of <strong>the</strong> ChangeChange Authorized by Date Authorized / /Dote Change to be Effective / / Actual Effective Date / /Programmer:OriginalAssigned for ChangeDate Assigned / / Date Completed / /Systems Design Hours RequiredCoding/Debugging Hours Required


Section Subsections Page25 20 00 02<strong>IBM</strong>FORTRAN CODING FORMPunching InstructionsPage ofProgram Graphic Card Form ii Identif icotioProgrammer 'Dote Punch 73 • 80Fortn X2-7327-Printed In U.S.A.C FOR COMMENTSTATEMENTNUMBERI 5i :r.6 7 10 15FORTRAN STATEMENT20 25 30 35 40 45 50 55 60 65 70 72e.-.-.-.- - To 81 NA MEI I I I I I / I6.--.-- 1 - TO 8/ a u m 815 iz i I I I I 1 I ii II I I I I tC.-.-.-.- - .F.R.016.R.A mMtE.R. . . i-.-. . . . , 1 I 1 . IC.-.--.-.- - .D,A.TIE., .e.o.DIE.D. .. .--.-. .. 1 1..—,— —1 I I I I I 1. . . . 1 , .F.111.,E. , , I . . . , I ,F,I,L,E1 , ,R,E,C10,12..b. IM.o. • . .0[F. „ .RiE.c.o.A.ms.. . 1 , .N.littg.E• , , I , . INum,8,EIR, •L•E.A4G.T.H. .R,E.e.oft,b Is. ,p ,6 - dt , ,S,E,C,rio,K.1 I 1 11 1 1 . iI I i 1C — — — — 0 .U.ri P. U.T. . RI. L.E.S, 1 — . — . .13..1 1 / I . .i . i.— .— — 1 . 1 .1 I 5,. 1L . IS. SC $tA ,I, ofi.!-• ' 0- •• 4,), 4'7 f2s) _ . . .. /i elr.02..9 to /6g.,A" S, ' • • YNr*. 1 I N' v* A standard card form, <strong>IBM</strong> electro 888157, is available for punching source statements from this form.t I. .l


Section SubsectionsPage25 30 10 0 1PROGRAMMING AIDSDocumenting Variable UsageEspecially when writing a large program inFORTRAN, it is difficult to remember <strong>the</strong> functionsfor which <strong>the</strong> variables have been used. This problemmay arise during testing, particularly whenseveral programs are being tested at one time.Again, program revision at a later date can bedifficult, and <strong>the</strong> problem is intensified if <strong>the</strong> revisionis being done by someone o<strong>the</strong>r than <strong>the</strong> originalprogrammer.The Variable Summary Sheet is a suggested formfor recording <strong>the</strong> usage of variables.The sample shown here is related to PAY01shown later in this section. Both <strong>the</strong> variables usedand <strong>the</strong> type (I, R, D, A) are indicated in <strong>the</strong> columnsto <strong>the</strong> left of <strong>the</strong> form.


Section Subsections Page25 30 10 02VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMNAME*La,o248cizt.-9-ciw2F--... I— — LI-15 SCL 0MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETDateProgram Name No. ProgrammerFUNCTION OF VARIABLES* Mode: I = integer, R = real, D = decimal, A = alphabetic


Section SubsectionsPage25 30 10 03NAME ṫ 0VARIABLES <strong>IBM</strong> <strong>1130</strong> COMPUTING SYSTEMi4-0 6zII–t 2DI– ba. 0zMAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication ,z7,4y,pozz .5.y.57-44-A7 Date 645/67A-..Program Name l7/6>c,,,elaile NoAry0/ ProgrammerFUNCTION OF VARIABLESc kw/Ix R 16 7 /#00,1 001 /ilax/n/u,77 oec4onior.miA/^a4/e,CoA4i9 12 /61;O - - Comio,a,ly /7.0:97e:,z/6wz-- R &t 0 0.0 0010 ,r-,0,...f..5:5-cocial/O.-, 7-re.,eor./..s.I Z / r Used / . /2 00 Apo/0IC I / 4/ - - Efv,;,,a4w7Z to Z/Viic,z/c/ z / eSaZA‘ ','' e.//72_,,..74,z 1 / r 2.5-0 y ..41::cr.),,e1 enleribeve 4-7 5:4),e, 4,94,.. e „4:,./e 5.,, ,re-, 74 ,..70 6,y,z,Z4,,,‘_z-/fw _z'" / 7 /4,6 /0/ fiZe pu....n6,-,ape,',.),,,,,,,,e ,00,-.2"0/0„7/tiz,#_,,./e0_INDEX Z 2-"Z 7-4gegii;r7/.4,50 cAeC4. /74/e)ge,e--P, 41Aew .zu,'/ 7z; N9Cd'e'45.xx)ex /AO .7:valex. zio ,c)/44/ /yew 6e..41., ,oelcyce,ssez,2-A/17 I / 0 0 0 C//no., /4/.1.4,/...-7 ,i'ee_z-A././ I / 7" 250 1 Peco,..-",744,0,66,,-, ..,2 1:70/exes b44.0-pedoyee/Ch2 - A/ e Z / A/ - - .1-fa/V a/e,p, e /.0 22V11N3 1. / ,'/ - - liPai3a/e,,,i /0 2-A/114/4 1 / A/ - - Z-fie./;va/e.7.74 A; 2,v1.2.1/ 5 Z / - - Egu.s.,0Z-,274 /a .2-4/../Z>t/ Z / A/ - - fguiv4/g.2,` 14 f4/1.1"/"..0 Z / O 0 CZ5 1.44/.4-ailes skileis of/ecorzi.n ,oreeessm,. ,,,cy4/e23 ::/P1 I /3 C.2 0 2:5 ,..5-2;Peo/&,,,,,,,171.41/ s'/C.E- AwyT27-67- /1 7.- /723 0 Acor/,r,'',74/ent4e.e. 4,--poshog ito 42. Se;en7//e4e,i,o,e,ie of me frle,..,7e4Iglet, i 7- ,5- y*Mode: I = integer, R = real, D = decimal, A = alphabetic


Section Subsections Page25 30 20 01Modular ProgrammingGeneralModular programming is used to divide your problemsolution into its logical parts or routines so thateach routine may be programmed independently. Itenables your complex problems to be divided intomany simple sections. A building block program is<strong>the</strong>reby created that is controlled by a single routinecommonly known as <strong>the</strong> "main line".A modular program utilizes <strong>the</strong> same communicationsystem as established by an organizationchart. Work assignment decisions are made by <strong>the</strong>main line routine, which is not concerned with <strong>the</strong>functions of <strong>the</strong> processing routines. If for somereason a routine is revised or eliminated, o<strong>the</strong>rprocessing routines within <strong>the</strong> program are notaffected. However, a segment of <strong>the</strong> main linemight be changed.There are three primary design criteria of modularprogramming: ease of understanding, ease ofprogram modification, standardization of programconstruction.To prepare and use an operational programeffectively and efficiently, you must be able tounderstand <strong>the</strong> content of <strong>the</strong> program readily. Easeof understanding is provided in <strong>the</strong> following threeways:1. Modular flowcharts. A modular system flowchartgives an overall picture of <strong>the</strong> major componentsand structure of <strong>the</strong> routine; program flowcharts<strong>the</strong>n progress to any desired level of detail,depending on <strong>the</strong> complexity of <strong>the</strong> routine. Theprogram coding is referenced throughout.2. Detailed narrative of each routine. The narrativeof each routine states <strong>the</strong> purpose of <strong>the</strong>routine, describes <strong>the</strong> data processed by <strong>the</strong> routine,and explains each step of <strong>the</strong> program logic as portrayedby <strong>the</strong> modular flowchart of <strong>the</strong> routine.3. Programming conventions. The use of standardlabeling conventions and standard program documentationtechniques enables a person unfamiliarwith <strong>the</strong> program to readily understand <strong>the</strong> programcontent.Years of experience have shown that, with 98%assurance, all of your operational programs willrequire modification and change during <strong>the</strong>ir usefullife. Ease of program modification is of cardinalimportance when your program must be converted tofit a specific new situation. This may be because ofchanging company policy, varied environmentalparameters or different management objectives.Your programmer, <strong>the</strong>n, has <strong>the</strong> problem of creatinga program that can be adjusted to each specificsituation. There are two ways of handling thisproblem.One is to try to anticipate every type of specialsituation that might be encountered and write a setof routines to handle each situation. This wouldrequire a fantastic ability to forecast <strong>the</strong> future andwould lead to slow, cumbersome programs.The o<strong>the</strong>r alternative is to create a program thatcan be quickly understood and easily modified to reflectchanging conditions. Modular programmingaims to accomplish <strong>the</strong> latter alternative.Once again, you may more readily prepare andmore quickly implement an operational program ifall <strong>the</strong> runs (programs) within your application adhereto a standardized construction. As indicatedabove, <strong>the</strong> logical structure of your program mustbe such that modifications and additions can beeasily made.Consider <strong>the</strong> problem of multiple routines - forinstance, three economic order quantity routines.The normal method of lumping <strong>the</strong>se three routinesinto a program necessitates setting switches to tell<strong>the</strong> program which routine to excute at a given time.Any attempt to modify one of <strong>the</strong> existing routinesnecessitates trying to extract <strong>the</strong> routine, patchingup <strong>the</strong> holes in <strong>the</strong> flow of <strong>the</strong> program created by<strong>the</strong> changes, and <strong>the</strong>n fitting <strong>the</strong> modified routineback in. Anyone who has ever tried to modify aprogram written by someone else knows how difficultit is to dissect and patch ano<strong>the</strong>r person's logic if<strong>the</strong> 'routines are intertwined.Using modular programming, each routine is aseparate entity. Your main line routine provides<strong>the</strong> master control that ties all of your individualprocessing routines toge<strong>the</strong>r and coordinates <strong>the</strong>iractivity.Modification of routines is simplified. Fur<strong>the</strong>rmore,new routines may be added by simply expanding<strong>the</strong> main line routine to transfer control to <strong>the</strong>new routine in <strong>the</strong> proper sequence.Modular Programming ConventionsModularity is accomplished by employing <strong>the</strong>following conventions:1. The main linea. The main line routine makes all decisionsgoverning <strong>the</strong> flow of data to <strong>the</strong> properprocessing routines.b. No processing routine can direct data flowto ano<strong>the</strong>r processing routine.


Section SubsectionsPage25 30 20 02c. Input and output functions that are commonto more than one processing routine arecontrolled by <strong>the</strong> main line routine.2. <strong>Processing</strong> routinesa. A separate processing routine is createdfor each logical segment of <strong>the</strong> program.It should accomplish one task in its totality.b. Each processing routine is complete withinitself, with its own defined areas, whensuch areas are for <strong>the</strong> exclusive use ofthat routine. No decision made outside<strong>the</strong> segment should determine <strong>the</strong> processingwithin a segment, and likewise, nodecision within a segment should determine<strong>the</strong> processing outside <strong>the</strong> segment.c. Each routine is designed so that it is, ineffect, an out-of-line subroutine. Controlis transferred to <strong>the</strong> processing routinefrom <strong>the</strong> main line routine, and when<strong>the</strong> routine has performed its function, itsends control back to <strong>the</strong> mainline routine.Entrance to and exit from <strong>the</strong> routinenever depends on a particular precedingor trailing segment.d. A processing routine may transfer controlto a multiple-use subroutine. When thatroutine has performed its function, ittransfers control back to <strong>the</strong> processingroutine.e. Input or output functions that affect onlyone processing routine may be performedby that routine. <strong>All</strong> segments shouldcontain <strong>the</strong>ir own initialization to ensurenoninterference with o<strong>the</strong>r segments.f. A debugging aid that is sometimes usefulis <strong>the</strong> inclusion of pauses at <strong>the</strong> exit ofprocessing routines. During testing, <strong>the</strong>pause indicates that a particular processingroutine has been executed. After<strong>the</strong> routine is checked out, <strong>the</strong> pause isremoved. The insertion of GO TOs into<strong>the</strong> program at strategic points may alsobe used to bypass <strong>the</strong> testing of particularroutines. Action to be taken regardingsuch PAUSES and GO TOs must be knownand documented before <strong>the</strong> testing session.This technique tends to make good use oftest time.3. Multiple-use subroutinesa. If <strong>the</strong> same sequence of statements is usedby two or more processing routines, <strong>the</strong>sestatements should be established as amultiple-use out-of-line subroutine.b. A multiple-use subroutine must be welldocumented for <strong>the</strong> purpose of programmodification. Comments cards should beused to indicate which processing routinescall upon each multiple-use routine and todocument <strong>the</strong> linkage established.Designing a RunTo design a modular program, determine <strong>the</strong> programvariables. List <strong>the</strong> requirements, elements,and functions of <strong>the</strong> program as <strong>the</strong>y come to mind,giving no attention to logical order.Once <strong>the</strong> variables have been set down, reviewed,and revised, determine <strong>the</strong> logical order of <strong>the</strong> processingroutines, and design <strong>the</strong> main line of yourprogram. Construct your main line so that <strong>the</strong>largest volume of data is processed by <strong>the</strong> lowestnumber of instructions - that is, in <strong>the</strong> fastestpossible way. A speedy main line contributesgreatly to <strong>the</strong> throughput capabilities of your program.Once you have established <strong>the</strong> logic of your mainline, draw <strong>the</strong> overall, big-picture, system flowchart.Give careful attention to this diagram becauseit will tend to reveal most errors in logic.The following components are generally found tobe present in <strong>the</strong> main line of typical programs:1. Beginning of item. Before obtaining a record,it is often necessary to initialize certain switches,counters, and areas. Generally, fewer instructionsare required to initialize before entering a routinethan after exiting from it, since routines commonlyhave several exits.2. Obtain <strong>the</strong> item. This segment of <strong>the</strong> runretrieves <strong>the</strong> record, sequence-checks <strong>the</strong> file, andupdates <strong>the</strong> input control.3. Process <strong>the</strong> item. The processing of <strong>the</strong>record is accomplished. The main line transferscontrol to <strong>the</strong> proper processing routines in <strong>the</strong>proper sequence.4. End of item. Generally, <strong>the</strong>re are a few instructionsto be executed just before disposing of arecord. The instructions associated with <strong>the</strong> cleanupwork for <strong>the</strong> present record should not be confusedwith initialization for <strong>the</strong> next record.5. Dispose of <strong>the</strong> item. This segment of yourrun generally puts <strong>the</strong> record in an output file, updates<strong>the</strong> output controls, and transfers <strong>the</strong> programto <strong>the</strong> beginning-of-item routine to start <strong>the</strong> loopagain.Use <strong>the</strong> modular technique with a block whereverit simplifies <strong>the</strong> logic of <strong>the</strong> processing routine.Each routine should be as efficient as possible.


Section Subsections Page25 30 20 03Look for opportunities to consolidate several in-lineroutines into one multiple-use subroutine. Whilesophisticatedprogramming techniques are acceptable,<strong>the</strong> particular degree of skill and knowledge availableto maintain and modify <strong>the</strong> program should bekept in mind.The following suggestions may help when programmingand documenting:1. List <strong>the</strong> functions of your routine.2. Plan <strong>the</strong> logic of your routine and sketch aflowchart.3. Program your routine.4. Draw <strong>the</strong> final modular flowcharts of yourroutine, shown to <strong>the</strong> necessary levels of detail.5. Create <strong>the</strong> test data so that every leg of yourroutine will be thoroughly tested.6. Write <strong>the</strong> detailed narrative of your routine.It is easier to document your routine when <strong>the</strong>information is fresh in your mind; fur<strong>the</strong>rmore, <strong>the</strong>documentation thus produced is more meaningfuland more comprehensive.SummaryIt has been found that programs employing <strong>the</strong>modular technique are efficient from <strong>the</strong> standpointof both core storage utilization and program executiontime. Section 90 illustrates <strong>the</strong> importance of<strong>the</strong>se techniques.Fur<strong>the</strong>rmore, extremely comprehensive anddetailed applications, designed and documentedwith <strong>the</strong> use of modular techniques, may be readilyunderstood by non-program-oriented personnel,ranging from company executives to novice programmers.


Section SubsectionsPage25 40 01 01PROGRAMMING EXAMPLESIntroductionThe examples in this section show various basicprograms in <strong>the</strong> payroll system. Note that <strong>the</strong>seexamples are programming illustrations and <strong>the</strong>reforemay not be considered as complete, usableprograms.The programs are arranged in <strong>the</strong> order of <strong>the</strong>ircomplexity, progressing from <strong>the</strong> simplest to acomplex file-update run with exception reporting.


Section Subsections Page25 40 10 01Example 1: File CreationThis program reads cards containing employeeearnings information. The information is editedfor reasonableness and <strong>the</strong>n written onto <strong>the</strong> disk.The program illustrates a simple single-file at atime run, with a minimum of calculations. The followingprogramming techniques have been used:1. Documenting with comments. Commentcards have been used to document <strong>the</strong> programlogic. The program name and o<strong>the</strong>r indicative informationare documented at <strong>the</strong> beginning of <strong>the</strong>program. Comment cards describing <strong>the</strong> processingto be performed are placed before each logicalsection of <strong>the</strong> program.2. One-at-a-time input from <strong>the</strong> console keyboard.<strong>Data</strong> items to be read from <strong>the</strong> console keyboardare requested one at a time (statements 69+1,69+2, and 69+3). This technique will reduce consoleinput errors and will notify <strong>the</strong> operator when a requestedfield has been completed (<strong>the</strong> keyboard requestlight will go out).3. Entering a partial record. Since <strong>the</strong> completeemployee record requires more than 80 cardcolumns, it cannot be punched in one card. Thename, which requires 18 card columns, is punchedon a second card. However, to prevent a namecard and its associated employee record card frombecoming separated, <strong>the</strong> employee name is storedon <strong>the</strong> disk by PAY02.4. Editing for reasonableness. Fields on acard which have limits, or a range of values, arechecked to ensure that <strong>the</strong>y fall within <strong>the</strong> range(statements 100 through 109). This provides aneffective control of <strong>the</strong> information being stored on<strong>the</strong> disk.5. Program identification numb ring. The programidentification for <strong>the</strong> File Creation Programin <strong>the</strong> Payroll System is PAY01. This method ofidentification uses a three-character alphamericabbreviation of <strong>the</strong> application, followed by <strong>the</strong> twodigitrun number in <strong>the</strong> application. • Identifyingprograms and documentation in this manner facilitatesan efficient system of organizing and filing <strong>the</strong>documentation and <strong>the</strong> various decks pertaining toeach computer run.6. Using packed data. To take full advantage of<strong>the</strong> disk storage available, as much information aspossible is packed. This includes <strong>the</strong> employee andplant name fields. In addition, where possible,some values are compressed by storing <strong>the</strong>m asintegers ra<strong>the</strong>r than real numbers.7. Setting up for future reference to <strong>the</strong> file.The file organization scheme to be used in <strong>the</strong> payrollsystem is indexed sequential. This programmust create <strong>the</strong> index, in addition to creating <strong>the</strong>file. Notice that <strong>the</strong>re is an index entry for eachemployee. Later programs will be able to locateany employee by simply searching <strong>the</strong> index in corestorage and <strong>the</strong>n reading <strong>the</strong> employee record. Therelative position of <strong>the</strong> employee number in <strong>the</strong> indexis <strong>the</strong> record number of <strong>the</strong> employee in <strong>the</strong>file.8. Variable Summary Sheets. These very importantforms are present in <strong>the</strong> following pages.They have been prepared for this program and allo<strong>the</strong>r programs in <strong>the</strong> system.


Section SubsectionsPage25 40 10 02StartInitializeVariablesReadPlant No.Week No.Check No.SetupNameFieldRetrieveCompanyNameRead <strong>All</strong>Informationfor OneEmployeeYesInitializeTradeAssociationInformationSetupQuarterto-DateInformationWrite toDisk <strong>the</strong>Index ofEmployeesCheck <strong>the</strong><strong>Data</strong> forReasonablenessWrite <strong>the</strong>Record toDisk forThis PlantWrite DiskRecord of<strong>All</strong> InformationforEmployeeStop


Section Subsections Page25 40 10 034gClockNo.PayRateLI, Social, Securitys No.2.s..,,-E t51 gGrossEarningsYTDFICAYTDFITYTDLocalTenYTDCreditUnionDeduction8 f.% 'g"j tEa,e g 58 -gi VI C:I.5z- g.12 -La0 0UnionDuesBlankil 1g inBlankAAen000000000000000000000000000000000000000000000000000000000000000000000000000000001 2 3 4 5 8 7 8 111011121314151617111920212233242528272820303132333435363/383940414243444546474849505152535455565758596061626384656667686970717273747578777879801111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666.666666666666666666666666666667777777777777777777777777777777777777777777777777777777777717777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999991 2 3 4 5 6 7 8 91011121314151817181020212223241526272$2<strong>1130</strong>313233343536311839404142434445484148050515253545556575859606162636465666768697071727374757677787980


Section SubsectionsPage25 40 10 04VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMNAME« ow012' °-06z0.2Iiu,--. I- Eis 5;t- °MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication RA y;e60)1L Sys .71X7 Date 6V/447A-Vi.E.Program Name .,4776::, neseat,le No./3"ye/ ProgrammerFUNCTION OF VARIABLESck-A44x ,E7 I 3 7 /#004" 004e .tidA-1/4)-74.47 c4e.e4 a,,,,,,,,I4 A,-.0 47e,CoA4.0 12 /t .4•D - - Camloawsy /10.9-76,,/4--/Z5WE. R 2¢ 0 00'0 0.010( Troop P.07_ 6,' ,SS-C)C/.:77/0/7 e•&;ppev7fs.7 I / r CAred / ./2 00 A,47/01-C r / W — — 6-eve,/,...a16,.2/ 71-o _TAX(1C#CIG j / r e64% ,;:0,-4/,', 48e!lie,/ 7 /4.3 cAeoc.b... //ziew6e0P'41Aeon iu,77Cnị.9 C'46'e45.17 4,..av 6eve .;-;c'',.--",,,/, . / , ye. e F•/e s. SE, 74 e...;/0 .6....vICOZ 7 /26-'0 1 "PE:'et.)/4.471"Law,-..7-/f/v 7 / 7 /06 /05/ File Alumbe,/, are' index Poe" a/0/4..,/. /0.46 74/0e2INDEX z T xxxx MO 1- ,,,deice /0 /0/44/ mow6c0.419 /0,-.4:7CeS•Sek/Z/V-Z7 r / 0 0 0 Ch/o., ..7;71/obe' ,-, ,eeeZA /1 1 / 7- 2.3-,0 21 Cd.ce," - / 'Jamie", /., 1.9dexes 76 FmTit/ e I / /V - - fie...,,,04...2,71 /.2 ..rit/i2"/V8 7 / 4/ - - ii,a/v.34/4.07/ /0 Z/Ve1 A/4 2. / A/ - 4"--12a; v-P/e/774 7c.3 17-,ve..1/145 .1. / A/ – — Lcor//,. . 4,/.w7‘ /a 7141I/t/a z / A/ - — Ege./.",/Q4wr 7`o Ii4/1i-PD Z / 6 as Adec:-49/95 3/4/as 01(2WrigleY1,0,11Ce.SS/e0,94 Cy4/G"2:5e46%° , I /3 0 0 Si.//0/3/e,,,,,,,,714/ s•c4 iewy.1.76:)7 Z // /723 0 ile-cor., r .2e*rit4e..- 4.-ficsslimg,44:2Senenr//e4e,Ifree,e / T -5- f m-ee of IA r frier, li* Mode: I = integer, R = real, D = decimal, A = alphabetici


Section Subsections Page25 40 10 05NAMEVARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEM•02el°5z dLo n---1--E.–15 b,°- °=MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication p4Y,e0LL 6->"*._57-,e7r1 Date 4 //, 5.-A 7KkPrdgram Name ,,,C2le C."'"e"Wie' No.R4)/0/ Prog/ic rammerFUNCTION OF VARIABLES2:R/14.4 2- / A/ - - /o..2-Ce:)Z,{/-s' / T 9 0 Z,1 G4.--d' )1,1=t5-1LIST Z / 7 XXX 44571 ■-&-co.-e, / .74.,-,-/.6e.r. 4-7 14.'80 Z / A/ - - _e-ev/i.4./e.w," fa .2-CD22 8T Z / 4/ - - ifḻa,* x0/,..1>i/ 7`6, _I-CDZZ /fIC I / A/ - eiee/giAgre 40 _.TCOZZ. 5-7" Z / T 250 2.50 Las-71 recor.,44,m66P." ir; a "


Section SubsectionsPage25 40 10 06NAM ẇ oo2-ElVARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEM-06zILUI -___ I– Ea- OMAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication ,z7.4 >%e0L Z --5-- >


Section Subsections Page25 40 10 07IBFORTRAN CODING FORMPunching Instructions Page ofProgram PAYROLL. SYSTEM Graphic 0 oI I 2. Card Form* IdentificationProgrammerDote IPAY97.1. . . IriLE CREATIONPunch 0 L I .i ; 73 801.— C FOR COMMENTSTATEmENTNUATBER1 5i66 7 10 15Form 828-7327-4Prinbd in I I.S,A.FORTRAN STATEMENT20 25 30 35 40 45 50 55 60 65 70 72C.-.-.-,-- To Dl n./ A m El I – – R Ail" R 0 L Li S V S TIEPI - 1 F _1 I- E !CR r A Ti 4 ON I 1 1C — — — — — JO BI pio.,96,61 g 1- - e AO 1 i . 1 1 1...I I I I 1 I I I- -- - .9 .R.oic,-,4 A .m.miel zo . . i-.-. .c... g ..*.c.ric.K. . . 1 . . 1.— ,— — .b.A.riE, .C.o.DIE.A. . . 1 -,-. 3,21/ 23./.6[7, . 1C . — , — .—. — — ./:).4,r1E. .u.P,Ditkr,E-..b. ■ -.-. . I-.-- - I.N.P.u.T. .F.iii...E.S.. 1 .-,--. ,r4o.N.E., , 1,x1 t..E„ , 1 , . . 1 .F.L.L,E1 „,e,E,C..441e.fa . itio,•, .01r. . . ,eiec.a.R-.A:;,tg. RAE I aV.v.m.13.Eo2 ./.,C/IATii RIE,c.o.k.171,5. . PERI ..5,c.c,riode1 I I . . iC.-,-,-,- - .o.u.T1 P. u. T. .F,r.L.e.s. ,-.-. . .14.. ,C.0•1,F.P. , 1 I it 1,1,1. . . as4it.. 34 V.10. P. ., I24 Lite .ri A . . . . i. 31, .m.dc,F P . . t . , _3 1 . /1 6 fi. . -1/1/i.. , . . q i. t-.6.o,FP . .#1 . .14 1 I ..C.6f. I I ., .51.. .1-6...rpr. . . . . . . . ...s", iii.p. . I /.Cps. I ..41. . . /..m.c, FP. 1 . /I 1f . I 30 I . iC __ _ - .71, ?SW ' F.o .• ..z..5-1 . . ./0".6. . I 6 I.. .21.. .,T•N,Dix,i. . I . I/. /I . I .l. .„ . I .2,6771. . . 1•,...1,11 1 .- - 1 . . . . I . II., .1",w,Dix.2., 1 I I st 11 1 1 9, ,3.2/. ,. I . . . 1 , 01. . .r./4/Dix.3. . . 1 . /.4.5, . . . ..V.4. I . . 1 3.9. . I ,* A standard card form, <strong>IBM</strong> elects.° 888157, is available for punching source statements from this form.<strong>IBM</strong>ProgramPAYROLLProgrammer p FILE , CREA TIONC FOR COMMENT; STATEMENTNWADER1 5S YStE mj6 7 10 15 20 25FORTRAN CODING FORMGraphic0 0 'Dote punch , wx 6 , 9 4Punching Instructionsard Form 0Page of* IdentificationFom X28-7327-4Printed in U.S.A.IPA.Y10.1."80173FORTRAN STATEMENT30 35 40 45 50 55 60 65 70 71I I . 1.. . 1/1, ft.r.p/Dix ft I I / o, ■ I i SO i 13 a. 0 0 ,I /7i. .7://Dix.5. i I Los; I / i LT 0 [ , ,32..,o ,I . .i.;4. INnix 6 1 1 1 661 1 / 1 . 3.o. 1 13.2.0 . I


Section SubsectionsPage25 40 10 08<strong>IBM</strong> FORTRAN CODING FORMPrograPunching InstructionsPage ofPAY Rot.SYstEM Grophic 15 0 I r s Cord Form # Identificationform X28-7327-4if? &Vs. t. . . IProgrammer -1: 11.E. ceekr 1D NI DotePunch t, 2, i9 C 73'BoC FOR COMMENT5TATEmENT •E'NUMBER tf,FORTRAN STATEMENT1 5 6 7 10 20 25 30 35 40 45 50 55 60 65 70 72- ,- -I I 111 I 1C. — — -- — R /. I. I o c R r a itatieillY .5 r ohe A G.,E I I II. II iII III Iz a.r.EIG.E.R. .c.do.m.P.l..,16). . . 1 .ID.z.m.Evi.s..r.o.m .F..z,a.RIE.0 .8.) .1 intb.6X(.2.6-.10). . z...swP.P.Ci 1.1). . Iiro r( Ili ). . WANE. (.1) 1.I . i . . i .a.SSAina...3). ) 1 .Q,R,T.111(.0.).), i Y. T.D(.iiil.). . . 1 . . . . i .■- - .Dr Fl.r.N.E. .-nii E. FrILES .F.o,e. .rilas. ,P,koAR.h./41 As ..b.as.c,R,x1S.E.1), dliA,e),VE, y a.m. a . . . . 1C.,-.--.- - .r.q.Uir. 3A.1...EiAl.c.E .ri&E .VAR.ZA&L,E.s„F,DIR, .A.(Ex,r, ..egc,o,R.b. ,410,frid.E,4 ,DE FsuvE. • Fri e..E. , , h. (.a..s.cii „. 1.60 5 10 1 x:e.oll.). . 2.4(10 $ /16 0 , u )iXIWV 4.), . ,I . i . . . . .3.( .20 , /64. 54. 5,tu.nic ),, 4,(.s:91)./ i4.0 ►Q,,z-.13.0).5,. ,s-(1.5.4) /.4.54, u L RT) 6 (30 L6,2114.LLtic), Ls: ( 45■/$6.(,,,.0■9.mt) .,3 1/ .4.i .(Ais-ch. / . 1 . u pr Iv 1 i) ) ./04-(90,./, Q., zn/a) , 1/O.3 6100,1 3 10. 31-A131) 3If I. LI Oh, (SW ,./...ui, I ast.)i,. / 0,51( /.,s795 )1 /3 u. ).xpvs-).5. I / fi G (3I 5 / 3 Li, z/v4.),E.9.011V.A.L.ENICE . (.ric 0 L5.21k/t/A...././41up/c"tisn"./.13.-r, LAI.G) 3ii 1 1 (IINI I IN12. rtJ 11 =a 1+ lids" mt.I6 ) 1 1 II1 1• . 1II I I I I Ii* A standard card form, <strong>IBM</strong> electro 888157, is available for punching source statements from this form.1


Section Subsections Page25 40 10 09<strong>IBM</strong>ProgramPAYRot.t_ S Ys reit')ProgrammerI ECREATIONC FOR COMMENTSTATEmENTNUMBER1 5DoteFORTRAN CODING FORMGraphic0 I I Z.Puncn .x it. 06 ) 7 9Punching InstructionsCord FormPage ofForm X28-73274IdentificationIPA.Y95.1. . .7380FORTRAN STATEMENT6 7 10 15 20 25 30 35 40 45 50 55 60 65 70 72I 1 1I I I I I I 1 I- x 14 IIT 'AA_ zi7 P 1,/ AI Rs A B 1.4 E-S 1 I I I 1 I I I. — .— — I 1 1 1 1 I I 11C.K.m.Alx...a.s.043.#... . I=,C. =.11 , 1r.C,0.1-1=.1. .. I I I 1 I 1 I l I I. 14 , z , Ti .., 56, .. i 1 1 1 1tZ .A1, I . .u i i, ... I i .I. P,b , u., 0. 1• •1 1 1 1 .D.o. .6iFi, .i.,.. I I s , 1 .3, , 1.. .6.8 I.S.u.PiP.(.m.) ..I 0 . I1Z. T 0 T i ( I ) u / 1 1 / t I IX "r.o.'n (.2.),:,C, 2,13,1 1 1 1 1. tIT.O.r1(.3.).=.412.95. .. 1 11.T:o.Ti (.5-.).=.61A.S": .. iI,TATI (.6.),= 4 12,6.,,T .n:ri (.7.) .,- ... 61.2-1 1 II I: 1-.0.1-1 (_R.) .=.41.t g.I 1 11 1I• T.o7r1(.9.)....,i1 I I I I 1 1 i . ..T on(/ I ) .14.3.5-. S. 1 . I. I I . I1-.Y.R.HIR=.54* A standard card form, <strong>IBM</strong> electro 888157, is available for punching source statements from this form.I


Section SubsectionsPage25 40 10 10IBFORTRAN CODING FORMPunching InstructionsPage ofProgramPAYROLL SYsTEAT Graphic 4, 0 / E Cord Form # IdentificationProgrammerDot x 0 IPAY4.1. . . IFI LE CQEAT/ON6 9 73 80C FOR COMMENTi SZTi EzEEr i1 56 7 10 LS 20 25Fon. X28-7327-inted in U.S.APrFORTRAN STATEMENT30- 35 40 45 50 55 60 65 70 72NA *Wm: I I I I 1 I i tNC N Cik: .0 . 1 I I I I I I t 1 I INC u Di p. f I I i I I 1 1 1 . 1 . ,W.M.3.5)C.:-.4 .I 1 I . . Ints:rxit4=4 1 I I 1 1 1 1 1 1•et Pik,f4P. t.0, . t . i .iv ki.k.PIP.z th• . " . I9 KT, bi (S.) ,---,C1), .. . . . 1 I 1 1 . I9.2 .T.Di (6.) ., ..00. .619. .ht .---. /1 J.Y. , i I I 1 1 1.6.9 Y.T.11(im.).= 4/4..1 1.. 1 I 1 1 1 1 1 .— _.—IBFORTRAN CODING FORMPunching InstructionsPoge ofProgramPAYROLL S YSTEM Graphic Card Form # IdentificationProgrammer Dote1 P. A.Y146.) . . • IFILE C RE- AT /0/i Punch X it(o 9 973 80C FOR COMMENTSTATEMENTNUMBERi 5i,56 7 10 15 20 25Perm X28-7327-IPrinted in U.S.A.FORTRAN STATEMENT30 35 40 45 50 55 60 65 70 72I I I I I I I I I I I iC------ REAtt, P/IA Nr Mum a e R, % WEB t ././.1/141 &ER. ,, 101- Mt) CR E.0 k i Mum . 8 .E1 R I I 1I 1 I II 1 t 1 I II IR.E.A.G &et .5 4.)1 .047.P.LI r . . . I . . . 1 IE A ..41“. ) Cl . )i .2.■./.E.EIK . ....---R,E,i.p1(.6.5.5.)1 ,I.C../.1.c.ilr. . 1 1 1• .it F.o R.t4A.T.(.1',11), I 1 1•. F-1- 7 R filtA.r.(I.2.1) , .


Section Subsections Page25 40 10 11<strong>IBM</strong>ProgramPAYROLL. ....)`/STEA1ProgrammerFILE CREAT/Onlr-- C FOR COMMENTSTATEMENTNUMBER NUmBER5Doteroom X 78- 7327-4FORTRAN CODING FORMPunching InstructionsPage ofG raphic 0 0 i r Z Caro Form # • 10entificotionIP.A.Y4.1. .PunchX it.6 / 9 as .B09 73en6 FORTRAN STATEMENT6 7 10 15 20 25 30 35 40 45 50 55 60 65 70 72I 1 I 1 I 1 1 I 1C, — — — — — CA L iC01 AT I E rg Ei P r i_ al /11..)./4316.2 Ot t r /4 F liNhE XI FOR 1r/4E CIURRE MT PL AINT. IC— — --- F 1- A4 r 5 ki 'IN r r T Ai L 1 2 'NU; V A Rix A S L EIS — .1170 r- (41) t nor ( 1 01). 5 LAT I II I 1I II F./ b =1/ 0 0 4.1 t/0 ei..177 .&o. Tin . (.5711,..C2.,,,513.5.575z,11.r.s:,,s-,t1),,,,Y.o.PILT. . 1 ■_5 / L 5.T..12 5756. I I 1 1,..5.,z4,0. .no. .577 1 .L 5 ,T=190I 7.0.71(./ .0.).=10 . 16-.o. :no, .58 1 I I I .5-.3 L 5 r=iz0561 ■ Ii i578 ,..r T.o.Ti ( #.).-..4a / . . 11 I I I1 1(r 0 TIO . 6.0. iI I 1 I 1Srii L . 5.T.:15:05. ,1 I I 1 1G'0 TIO .5:7 I 1SS L s T r-o .5-93„I I I i I I t/.70.7-1(.4.):=01. 1 ,CT O. .T10. ..C'Q 1I I 1 1 I 1SG L 5T=1.3 0 I 1 I I I 1 I I I 1 I . i* A standard card form, IB electro 888157, is available for punching source statements from this form.<strong>IBM</strong>FORTRAN CODING FORMPunching InstructionsPage ofProgramPAYROLL SYSTEM GrophiC 4)Cord Form #Identification0 I i ZProgrammer Dote .P.A Y/ .:)).1 .IFIL E CREA riot,/Punch X 4i I L 1z1 'I 173 80i— C FOR CO ENTi,57,47.fmtN7NumBER ,f11 5 67Form x29-7317-4Pt int. ;o1 U. 5.,FORTRAN STATEMENT20 25 30 35 40 50 55 60 65 70 75-9IT° Ti(*) •=0 .1— I L. 1r-rrsTI(( 05)_L f1 I— — — 1 — — 1— — — 1 — _1:_. — — —_1_ — 1 — --


Section SubsectionsPage25 40 10 12IBProgramPA YR o L i- 5 YS T E MProgrammeXL-E CREA Tr On/r-- C FOR COMMENT■;$ 74•TEmENTNumBER 3I 5 6 7 10 15 20 25_ __FORTRAN CODING FORMfo,m %2B-7327-4Punching InstructionsPoge ofGrophic (I) - Cord Farm # identificationDote PunchI RA X 1;, I. 1073 80I 1 I I I I I ._.-1FORTRAN STATEMENT30 35 40 45 50 55 60 65 70 72I ___t_ I __1_____1e- - - - - S ETIU P T HIG." /JAMIE F S E IL .P A NO A C TI/ZI E V EI r y E 1C0 b1P Ift WY ,V 4IM E I I1 I I I I I t I40 RE A.M(.b, 3 )1 N.A.M. El 1 I 1 1I I iFo R I4I4 r.( 9 Fla.) . I I 1 I I 1g E A DI (.6 , 1) 1 C OM Pi I I 1 I fF 0 IR Aia.r.(. /. e1A.2..) , I I I I I 1 . 2- .-. .-._<strong>IBM</strong>FORTRAN CODING FORMPunching InstructionsPage ofPrograCard FormIdentificationP Y Ysr 4) 0 I IZProgrammerDate 1- 0 iPunch P.A.Y16. / . .CREATi oNe, I 1 9 73 80C FOR COMMENT028-732,"STATEMENTNUMBERI 5''FORTRAN STATEMENT6 7 10 i5 20 25 30 35 40 45 50 55 60 65 70 72I I I I I —1_ —I_ J 1_ I I I IC- -- .- - RE AID A 1.. Li x typ oiRmAT rio Al P nik c dEi E eiP Lie YEE 40/ b . ,C114 E c K !Felt L.111 ,S T CARDI I 1 I 1 1 1___2_ _I_I i6.0 0 R1E A D2( 2 > a.) 1 14 UM. v ,N R A TrE S a .11LIC9,_ A/i5 S A n1 p nix mPIF 3 .1_. 1:a.b ( i ) , f Y r .0 (I2- ) ) 1171) ( ‘ )t.,2III Y.T.D.(4).mC I) JA 1- 14',S in/s -rc,KI .A1 UA L ,A1 b AL ,t1).i') ) ) ).FOR141.4.7.( 1)(if.X1.1.) I.1 i ii3.„ ,I.ZI, if.) l IX , /1. F7 . 0 ; 23 F.S-. 0, IS- 211 ti ) I 1 .1",/1 i i ?Xi „.1.1). I I 1I . . . .__i_C- - - - - I,s. IT,O.z S IT.H.E, .1- 1 A,s,T. ,c,A.R.D.?. 1 I . I. J___ 1 2 IC,-.- - - .Y.E,Si - 6.62 .T.o, .60.0. . I I I ,C.- -.- - .No. 1 -. .G.:21 .7,o, ./i%. I I I 1 2 i I .I i16•EX j 2 ZX F (ICI- 9.) i i0s 6.10 s (0 I I I I t I I fI I I I I — I.i1■


Section Subsections Page25 40 10 13IBProgramFORTRAN CODING FORMPA Yi Rol. t. SYS TEMGraphic 40 0 I 1 EProgrammerl-2-LE C R EA rTc ,./r--- C FOR COMMENTDotePunchPunching Instructions Poge ofiy.9Gard Form it • Identificationfem. X28-7327-4Nimrod in U.S.,1 RA:( 14.1. . . I73 130STATEmENTNUMBERI 566 7 10 15 20 25FORTRAN STATEMENT30 35 40 45 50 55 60 65 70 72I I i 1 I 1 I 1 1 1 1.– SE nu 1, EA. P I. 0 y E -.E s TAIT Vs go DE, Z. riv.rri EkEmIPT.T.0 MS j A Mb Q–Ti– D I NI F o Rif AirN_._ _ I II I 1 IN.'s .T.A IS. -=. t . . I 1 1 [ 1 1N',X.I.11:15.r.N.X.14P.F,Q.R.T. Mt. i .1. = .Yir.b ( 1 )1 I I I 1 I 1 I i 19.R.r..b1d..z..=,Yir. el.3.), 1 1 II IQ.R.T..bI (.3.) , o.YI T.b.( . 2, ); .Q R T III( q.)...Yir b ( 8,)! •--


Section Subsections Page25 40 10 14<strong>IBM</strong>FORTRAN CODING FORMPunching InstructionsGraphic Card Form #Prograrn hi YKO L. S y 5 TEN10 I I e.Programmer Fa L ce,,,,T. 1 0 Ai DotePunch7t 17- le4 I 1 9F-- C FOR COMMENTSTATEmENFNUMBERI 5FormPage ofIdentif icotion14;:?A.Ni 4. I . • ...Iit STATEMENT6 7 10 1520 25 30 35 40 45 50 55 60 65 70 72I II I II I IC------ E-T)Tir MA PIT rA i. Is r,47%/1.5 L .1 11.11.roni 151 VE S NED u c. T1 roN.. Is EX C I O A E vi i . / b _tic) 0"3C- -- ..- - n, / 1=- c l C C A- RIY 5 .1,1 bio.z F.Y _LE M to t- a 1Y E E sc r 11. r List c OD C. I1:F.(141A.R.). 31 15. /.5./.561/.s./.95$6..tric.Ø xi-- l.m14.a.-.2,)1 . /.0.2. 5 ,/.0.2. 1 10./. . , 1./46'/ tv.A.k.,t . . 1. 1C.A.L.LI ..5.r.A.clk, 1 1 1,1 0,2. I T (AL) 0.E.S)k /.05.3,3 1/ flit.s./10,d. , . I .I 03 f/ D.ti .E1S.=.0 . I .CAL- L1...C.r.A.CIK„. J0. 11 NSTAL5...X.l. •/ 0.56 IF ( AliO P L. T-13 ) / 210 5 1 / .57 9 / .2,0. I 1 1 I 1 I//SNAUE15=0 tI I I II70 IFCMS.E.)0•10.9 1 1459,10 7 .I/917 TF(Asex-1) //0 /0f d09 I/ ORN.S •T A NS. =.. a. . 1 . 1 I I . . 1 I1 1 I .NS E.X1 .. Z. . . 1 . I1 I I61.n. .71n J.1.01 0 N s.fx,=.z. I. I I 1 I ICA.1-14 57".A.Cik I I I 11 1 I '* A standard card form, <strong>IBM</strong> electro 888157, is available for punching source statements from this form.IIIIX2B-7327-4


ISection Subsections Page25 40 10 15<strong>IBM</strong>FORTRAN CODING FORMPunching InstructionsPoge ofProgram vt., 0 r L.,...% '..e.'7.--,:,,,,Graphic 0 I T- ZCord Form #IdentificationProgrammer palc. DoteIPP-'?I I . . Ic...g .E A 1...L..0 ti Punch 1 1. 1 1. 1 73 80(---- C FOR COMMENTSTATEMENTNUMBER1 5Fenn %28-7327-4C,5 FORTRAN STATEMENT6 7 10 15 20 25 30 35 40 45 50 55 60 65 70 72— I — I I— — — .—I I1 I I1 1 1 11(2 —.— — — CREIA-TE TINE 2- Mb G.X EvvrRY ' FOP, Ti ' 4 TS EIM P 1- e : 0,1... e AMh Wig IIT.r ./4...ris. .R.C.cio.g .1:4 . i .C- - - - - 0 a 710 TM- El hr 5K1 r h' e:1// 4-0 IP A '' ; I rn r ME RE AA .5. TA rE.NE Nir To 'GE T IC. -,-,-,-- - .-riv.no.e.A.A.ra-,0", .ow. .7"./4 ei A/C x 7) .E14ptiol-"P_I I I I1I JOTN.b.EX.(.3-,eni-) = N IAMC,- , - ,-,- - ,W,RI I TIE„-r ,01 M.H C 1.D I .5. K. • )_ _ _G---._w.g,i.-nE.( wo.ea.._r, ', Ter aL.) . No) A/ 3 . MA ME,, 1MS S A A 5 Ats rIAS , IAil b UEs I M.VV.k JvhP ". .N.WIK.P.1) ; 1 .1 .111A- R ,, NIX m Pk-,, N x m pis 7 Az.siE K. 7 . aiRA.r.r.,, .Y.T,A.,, 9 R.r.r), .,2 1 I I-, Y R I I R ...,1 14/ e cl )1 . A/ CO 0 ■D 3 d INCA", IA/A D WM , A/ 5 ilck. .7 1..7../s/s. 5 . ■3 .del.r.s c... y 11.0 A- ) 1 .N.J.T.xlh.,. .2-.50 P.P 3 . a.N,2-.7-1 1 1 l b. i . .- III I 1_— , c ,o , IBA.c,k. i p .o P. Aid oro 6e .in.Pli-a .,l .E.E,' s T.NIFO R /4041-r in A/-.- -I 1 Ii ,Go. TIC). 6-74c6 ..1 I , ,I.I I I I I II .* A standard card form, <strong>IBM</strong> electro 888157, is available for punching source statements from this form.


Section Subsections Page25 40 10 16<strong>IBM</strong>FORTRAN CODING FORMPunching InstructionsPage ofProgram p4,(904,_SYSTEM Graphic cb 1 T Card Form # IdentificationProgrammer Fx.tt ca.sA_rx.0A1 Dote Punch 1P.A.V10I ' •'It:') I1;- 973 80C FOR COMMENTForm 708-7377-4STATEMENTNUMBER ,13 FORTRAN STATEMENT1 5 6 7 10 15 20 25 30 35 40 45 50 55 60 65 70 72Printed ∎11 U.5.4..I 1 1 I I 1 1 I I I IC-- - - - -- 4 4 .517 < ARIA 11 A Si a Ene■ R F fl. . 1 I I 1 I i I I- – Titixt T I A Grit 5 rhIE r g Al /YE A ns oC 1 Air ..! n V II ti F 0 Rim A -r-, oIN . I I II 11 1 I I. 1,,,in D.O. .c.s.d, x., l., .O. , I. .4,54 E.t.a .1zIE. (Z)..10..-- -I -------1='"--6------1.-t-t-"-----------<strong>IBM</strong> FORTRAN CODING FORMtomX28-7327-4Program pAsia ott.SYSTEMProgrammerFT Lt (2. AT ONC FOR COMMENTSTATEmENTNUMBERI 5DotePunching Instructions Page a s- of /6Graphic oc,,za Card Form # IdentificationtP.A.Y10. 1 . . . 1Punch73 800 )41; 17i,51 FORTRAN STATEMENT6 7 10 1520 25 30 35 40 45 50 55 60 65 70 721 I 1 1 I I i 1 I I I tC.- - - - - vi RriT,F rstE 1- a DIE x 0 ri E ii P LtnY E.E St P oie Ira? s 1 AL AM. Ti ro. //IX'S K .. 1 II I 1 I 1 I 1 I I 1 1L A.s.n ...r.c.o.s., – ./ I I II I I I I I I I iW iz. i, TIE. (.2.N hi 1 , I. ). . (i IN,A,E. X ( Z.) Z .7 . / LAST, ), . I. . 1-9 .3'-


Section Subsections Page25 40 10 17IBFORTRAN CODING FORMPunching InstructionsPage ofProgramPR yitoci_ SYSTEM Graphi (I) 0 I i Gard Form # IdentificationProgrammer FILE1P.A.Y10/. . . IDote /2..CREAr_r on/Punch 073 80i 9 9i-- C FOR COMMENTSTATEmENNUMBER ? 61 5 6 7 10 15 20 25Form X28-7327-4Prin., in U.S.A.FORTRAN STATEMENT30 35 40 45 50 55 60 65 70 721 I 1 I 1 " 1 1 1 1 IC — --- — — VvarrrE. rthE REcloiz 11 rio Rr mr.s. PLIANT no DI.Sik. TiiIE ./110 ABER .oir em PIL 0 yE.E.LSC.-,- --- IN IT H- E PILAA tr. IT a TRIE IIVIWG'k A A.4.6 S T a P . 1 1 . . . I . . I I1 I Iw iz./ ne ( kz-, 1 1A40,P.L.,11). ,C,c) "LP 7-CaN.C.14,. t .W.E.Ekt,. .F.r.t.R.E. mr.o.r ickm.Ax■..,' /IA/Rzn g.(.rm,p1 ,./....s.r.), L..A.S.-n . 1.. . . 1. I I, , C.A,44,Li ,E:X.x. 7i .El`i. D. i I i I 1 I 1 I 1 I I I 1


Section SubsectionsPage25 40 20 01Example 2: Add Name to <strong>the</strong> FileThis program is an extension of PAY01, File Creation.Because <strong>the</strong> employee record contains morethan 80 characters, one card is not sufficient. Thename field for each employee appears on a secondcard which is processed by this program.The dummy name field, set up in <strong>the</strong> disk recordby PAY 01, is filled in with <strong>the</strong> actual name on <strong>the</strong>card.The program illustrates a simple single-file updatewith no calculations. The following programmingtechniques have been used (see Section 35 fora listing of this program):1. Updating masters. The master file is updatedby changing <strong>the</strong> name field in <strong>the</strong> master record.Note that only <strong>the</strong> variable name in <strong>the</strong> output listhas been changed.2. Searching an Index. The index to <strong>the</strong> filecontains an entry for each employee. The clocknumber is placed in <strong>the</strong> index at a location correspondingto <strong>the</strong> record number for <strong>the</strong> employee.Each index entry is examined to find a match with<strong>the</strong> clock number on <strong>the</strong> card (statements 120-125).When a match is found, <strong>the</strong> location of <strong>the</strong> match in<strong>the</strong> index is <strong>the</strong> employee record number in <strong>the</strong> diskfile.3. Indicating exceptional conditions. When <strong>the</strong>index is searched, it is possible that <strong>the</strong> clocknumber on <strong>the</strong> card will not match any index entry.If this occurs, <strong>the</strong> clock number is printed in <strong>the</strong>following message:CLOCK NO X:500( NOT IN FILE.


Section Subsections Page25 40 30 01Example 3: Changes to <strong>the</strong> FileThis program illustrates a complex single-file updateprocedure. Any one of 16 different changes canbe performed.The master file is <strong>the</strong> file created by PAY01 andPAY02. The transaction file is on cards, whereeach card contains <strong>the</strong> clock number, a code indicatingwhere <strong>the</strong> change should be applied, and <strong>the</strong>new or changed information.The one important change this program will notperform is deletions from <strong>the</strong> file. However, thismay be accomplished by changing <strong>the</strong> pay rate tozero.The following programming techniques should benoted in this program (see Section 35 for a listingof this program):1. Setting a switch ra<strong>the</strong>r than testing. Thechange code is a two-digit number form 01 to 16(statements 105+1 and 106). When it has been validated,proven greater than zero and less than 16,<strong>the</strong> code is used as <strong>the</strong> index for a computed GO TOstatement (statement 140). This saves <strong>the</strong> programa set of IF statements, each statement testing <strong>the</strong>code and deciding on an action.2. Detailed data validation. Since PAY01 andPAY02 were so careful <strong>about</strong> building <strong>the</strong> file andmaking sure <strong>the</strong> data was correct, common senseindicates that <strong>the</strong> same care should be extended toany changes to it. This is done through checks,not only on <strong>the</strong> change code, but on <strong>the</strong> plant number,<strong>the</strong> clock number, and, where applicable, <strong>the</strong>change itself. Note that <strong>the</strong> addition to <strong>the</strong> file of anew employee causes a check to see whe<strong>the</strong>r thatemployee clock number is already in <strong>the</strong> index.3. Use of <strong>the</strong> alternate stacker. Any time anerror is detected, <strong>the</strong> card involved in <strong>the</strong> error isselected to <strong>the</strong> alternate stacker of <strong>the</strong> <strong>IBM</strong> 1442(statements 3 + 1, 8 + 1, 5 + 1, and 7 + 1). Thiswill save <strong>the</strong> operator <strong>the</strong> task of picking out thosecards with errors.


Section SubsectionsPage25 40 40 01Example 4: Calculations and Payroll RegisterThis program consists of extensive calculations andreport writing. Payroll calculations are performed,including calculations of gross pay, taxes, voluntarydeductions, and net pay. The report shown is <strong>the</strong>payroll register.In addition, <strong>the</strong> calculations are balanced to controltotals and each disk record is extended with <strong>the</strong>current period's calculations.The following programming techniques have beenused (see Section 35 for program listing):1. Arithmetic Statement Function. Since <strong>the</strong><strong>1130</strong> is a binary computer, decimal fractions maynot be expressed exactly in binary. This inaccuracymay be avoided by performing all calculations withwhole numbers. (See Section 70. 10.20.) Whencalculations are complete, <strong>the</strong> result must be halfadjustedand <strong>the</strong> decimal point placed. Since <strong>the</strong>reare many calculations in this program, it makessense that <strong>the</strong> rounding procedure should be set uponly once and accessed from many different places.The Arithmetic Statement Function, PHIL, will beused to do this.2. Use of data switches. Since <strong>the</strong> check number,week number, and maximum check amount are notpermanent, a facility must be built into <strong>the</strong> systemto change <strong>the</strong>m. By setting <strong>the</strong> console data switchesappropriately (statements 3 + 5 and 71), each or allof <strong>the</strong>se numbers can be changed. A hard-copyrecord of any changes is produced on <strong>the</strong> consoleprinter.3. Zero balance test. The control totals arecompared with accumulations produced during <strong>the</strong>processing of <strong>the</strong> file. The original control totals,<strong>the</strong> accumulated totals, and <strong>the</strong> differences areprinted. If <strong>the</strong> differences are not zero, <strong>the</strong> operatorknows that fur<strong>the</strong>r examination of <strong>the</strong> output isnecessary. (See statements 15-18.)4. A variety of calculations. The calculationsperformed with this program are more extensivethan <strong>the</strong> o<strong>the</strong>r sample programs. The first set ofcalculations is used to initialize <strong>the</strong> program variables,while <strong>the</strong> second set initializes <strong>the</strong> plantvariables. The third set initializes <strong>the</strong> variablesfor an individual.The remaining detail calculations pertain toregular, overtime, and bonus earnings, taxes (includingfederal, state, and local), and voluntarydeductions. Finally, <strong>the</strong> net amount is calculatedand plant totals are accumulated.5. Backup is built into <strong>the</strong> system. To providea means of recovery when an error condition or anout-of-balance condition occurs, <strong>the</strong> calculatedinformation (gross, net, tax, etc.) is punched into<strong>the</strong> employee's weekly card (see statement 9). Asimple list of <strong>the</strong>se cards will thus supply sufficientinformation to check or reconstruct portions of <strong>the</strong>file.6. Ano<strong>the</strong>r type of half-adjusting. In printing<strong>the</strong> payroll register <strong>the</strong> dollar and cents figuresshould appear with decimal points. To round off,reposition <strong>the</strong> decimal point, and clear fractions,<strong>the</strong> WHOLE Function (from <strong>the</strong> CommercialSubroutine Package) is used (see statements 515-515 + 11).AMT = WHOLE (AMT + (AMT/ABS(AMT))*0. 5)/100.


Section Subsections Page25 40 50 01Example 5: Check WritingThis program demonstrates <strong>the</strong> use of <strong>the</strong> CommercialSubroutine Package (CSP) in preparing areport--namely, <strong>the</strong> check and check stub.In this example, <strong>the</strong> employee file is accessedsequentially. If <strong>the</strong> paid indicator is set appropriately,a check is written. In ei<strong>the</strong>r case, <strong>the</strong> nextemployee record is read.Control totals are carried, and a zero-balancecheck is performed.The following programming techniques should benoted in this program (see Section 35):1. The use of subroutines. There are threespecific operations which are used many times (seestatements 91 + 9 - 95 + 5). These are PUT, MOVE,and EDIT. PUT converts from real format to Alformat, MOVE moves information, and EDIT insertsand removes characters. Ra<strong>the</strong>r than repeating <strong>the</strong>statements that perform <strong>the</strong>se three operations eachtime, it is much simpler and shorter to make subroutinesout of <strong>the</strong> statements. This, in addition tosaving core storage, is much easier to test anddocument. <strong>All</strong> three subroutines are supplied with<strong>the</strong> <strong>1130</strong> Commercial Subroutine Package.2. Editing data for output. The use of <strong>the</strong> EDITsubroutine is a very powerful technique. It requirestwo kinds of data. The first is <strong>the</strong> data to be edited,and <strong>the</strong> second is a description of <strong>the</strong> result, <strong>the</strong> editmask. As can be seen, <strong>the</strong> edit mask is treated asa constant and is initialized at <strong>the</strong> beginning of <strong>the</strong>program (see statement 4). The result of editingcan be seen in <strong>the</strong> amount field of <strong>the</strong> check spectra=shown.


Section Subsections Page25 40 60 01Example 6: Check RegisterThis program illustrates a report in which detaileditems are written, three up, (three items per line).A plant file is accessed for each employee (seestatement 655), and a line containing check number,employee clock number, employee name, and netcheck amount is composed. When three employeeshave been placed on one line, <strong>the</strong> line is printed.This technique will produce a very concise report,easily read, filed, and used. The technique alsodecreases printer time to produce <strong>the</strong> report bydecreasing <strong>the</strong> number of lines to be printed.


Section Subsections Page25 40 70 01Example 7: 941 ReportThis program will process multiple files to produce<strong>the</strong> 941 report. One report is produced for eachplant.Note that a count of <strong>the</strong> lines printed on each pageis kept (see statements 195 + 5 and 150). In thisway, headings can be and are printed at <strong>the</strong> top ofeach page in <strong>the</strong> report.Also, notice that <strong>the</strong> plant totals are reset onlywhen a new plant is to be processed (see statements2 + 1 thru 3 - 2), while page totals are reset whena new page is to be printed (see statements 4 + 4,4 + 5).


Section SubsectionsPage30 00 00 01Section 30: TESTING EFFECTIVELYCONTENTSIntroduction 30. 01. 00 Testing Hints 30. 30. 00Testing Strategy 30. 10. 00 Summary 30. 40. 00Testing Tactics 30. 20. 00


Section SubsectionsPage30 01 00 01INTRODUCTIONNow that programming is "finished", it is time toevaluate what you have in relation to your objectives.Do your programs and systems produce <strong>the</strong> resultsyou want? To find this out you must test <strong>the</strong> programs-- but not until you have a plan.Experience has shown that more time can bewasted in testing than has originally been allottedto testing.In o<strong>the</strong>r words, testing must be performed effectively.* * * * *There is a great temptation to get a newly writtenprogram on a machine and see it run. A littleextra effort before going to <strong>the</strong> machine can save agreat deal of time and effort in <strong>the</strong> long run. If youmust travel some distance to test a program before<strong>the</strong> installation of your own machine, it also meansreal money saving.The chances are very good (99.99%) that yourprogram contains errors of various types:1. Programmer clerical errors. It is easy tomake minor clerical errors when filling out <strong>the</strong>coding sheets. Although <strong>the</strong>y are minor, <strong>the</strong> programwill not work properly until <strong>the</strong>y are corrected.2. Programmer procedural errors. The numberof procedural errors will depend on <strong>the</strong> experienceand proficiency of <strong>the</strong> programmer. These arecaused by not adhering to <strong>the</strong> programming rules asoutlined in <strong>the</strong> language manuals.3. Card punch errors. Errors may be introducedwhen <strong>the</strong> program is punched into cards.Punching programs into cards is very exacting, and<strong>the</strong> keypunch operator must be very careful. Becauseof <strong>the</strong> nature of <strong>the</strong> information on <strong>the</strong> programsheets, it is difficult to achieve speed andaccuracy in punching.4. Program logic errors. Logic errors may becaused by poor or incomplete analysis of <strong>the</strong> problemprior to programming, or by incorrect programmingafter correct analysis. In any event <strong>the</strong> programmust be able to ei<strong>the</strong>r process, or properly reject,all <strong>the</strong> various pieces of information that will begiven. Someone who is intimately familiar with <strong>the</strong>procedure, as it is now being done, should review<strong>the</strong> logic of <strong>the</strong> program for completeness.Most clerical errors, both programming andcard punching, can be detected by a careful reviewof <strong>the</strong> material. Key verification should always bedone, and it is essential to proofread coding sheetsbefore <strong>the</strong>y are punched. The most common errorsoccur in <strong>the</strong> use of 0 and 0, 1 and I, 2 and Z.Standards should be adopted in which, for instance,alphabetic 0 is written 0, zero is 0, Z as I as aprinted capital (I), and 1 as a straight line (I). Itis wise to formally familiarize your keypunch operatorswith <strong>the</strong> adopted conventions.Program procedural errors can often be detectedby having someone o<strong>the</strong>r than <strong>the</strong> original programmerreview <strong>the</strong> programming sheets. Evenwhere <strong>the</strong> programmers are relatively inexperienced,<strong>the</strong>y will often catch errors in syntax (grammar offorming statements). This review can also serve asan excellent way to improve programmer knowledge.During a review of <strong>the</strong> program, program logicerrors are more difficult to catch. This is particularlytrue when <strong>the</strong> person who is familiar with <strong>the</strong>procedure is not also familiar with programming.Logic errors are generally caught during testingwhen sample data is processed by <strong>the</strong> program. Thesample data must be prepared so that all of <strong>the</strong> variousexceptions, combinations, and ranges of informationare introduced to <strong>the</strong> program, insofar asit is practical to do so. It should be rememberedthat any element or combination of elements that isnot tested is very likely to appear eventually; if itcan happen, it will.At <strong>the</strong> time that your program is assembled orcompiled on <strong>the</strong> system you are installing, a seriesof diagnostic tests is also made to detect many of<strong>the</strong> potential errors, and <strong>the</strong>se errors are noted.By properly prechecking your programs, you canmaterially reduce <strong>the</strong> amount of time to get a programcompiled and tested successfully. Care in<strong>the</strong> preparation of test data will also detect logicerrors so that <strong>the</strong>y can be corrected before <strong>the</strong> processingof actual data.The final test of any program is <strong>the</strong> successfulprocessing of "live" data, after which <strong>the</strong> resultscan be compared against those obtained by <strong>the</strong> previoussystem.Note: If <strong>the</strong> results of this last test do not agreewith previous results, check again to be sure what<strong>the</strong> right answers should be. Sometimes <strong>the</strong> oldsystem has not produced <strong>the</strong> correct solutions.


Section Subsections Page30 10 00 01TESTING STRATEGYAny good system is like a successful athletic team.Each member must do his job well, and all membersmust work toge<strong>the</strong>r. These two things are whatyou must accomplish with your testing strategy.Each individual program is tested. When all programsgive correct results, pairs are tested. When<strong>the</strong> first pair gives correct results, ano<strong>the</strong>r run isadded to <strong>the</strong> system. Finally, all runs are testedtoge<strong>the</strong>r, and <strong>the</strong> entire system is checked out.The individual tests are <strong>the</strong> foundation of <strong>the</strong>system's test. A deck of test cards should be madeup for each program (or subprogram) and kept foruse in testing <strong>the</strong> program again in <strong>the</strong> future.The ideal rule to follow in deciding what test datato include is this: include every field at least onceunder every condition in which it can occur, notonly by itself, but with every possible combinationof conditions in which all <strong>the</strong> o<strong>the</strong>r fields can occur.With a simple program this is easy enough to do,but where many fields appear under many conditions,<strong>the</strong> number of possible combinations can becomeenormous. Then your programmer must use hisjudgment in making up a limited set of test cardsthat covers <strong>the</strong> possibilities adaquately.The test cards should be created, <strong>the</strong>n listed.For each set of test data, a "prediction" of <strong>the</strong> resultsthat will appear on <strong>the</strong> output forms or cardsshould be made. Then, when actual testing is performed,your programmer cannot be easily misledinto believing that his output is correct when it isnot.The first data in <strong>the</strong> test deck should test only <strong>the</strong>ordinary, easiest, most straightforward conditions.Next, multiple conditions can be combined on onecard or record. Finally, error conditions can betried. The reason for this careful progression isthat unless <strong>the</strong> simple situations are proved first, itis possible to spend many hours trying to determinewhich of several possible causes for a "bug" is <strong>the</strong>true one.Avoid setting up your tests in such a way that youcount on <strong>the</strong> output of one program to act as input toano<strong>the</strong>r. Have at least one independent set of testdata for each program you are testing. "Merged"or "linked" testing is a valuable means of proving asystem's overall validity, but it should not be doneuntil each program is individually tested.After a successful test, both <strong>the</strong> test input andoutput should be retained, as part of program documentation,to make future testing easier. Also,when testing program modifications, test not only <strong>the</strong>modifications but <strong>the</strong> entire program. In o<strong>the</strong>r words,your sample test data should expand with each modification,so that <strong>the</strong> entire system may be tested atany time.


Section SubsectionsPage30 20 00 01TESTING TACTICSMany techniques exist to assist your programmerduring <strong>the</strong> checkout phase of a program. Each hasits own advantages and disadvantages. The one tobe used for a particular problem will depend onyour programmer's thoughts as to what area of hisprogram is in error. Some very useful techniquesare:1. Core Storage Dump. This is a printout of <strong>the</strong>contents of core storage. There are two methods ofproducing it.The first is with one of <strong>the</strong> utility programs suppliedwith <strong>the</strong> <strong>1130</strong> Programming Systems. Theseutilities will produce a core storage dump in hexadecimal.Since manual hexadecimal-to-decimal conversionis very tedious and time-consuming, this method isnot recommended.The recommended method of dumping core storageis with <strong>the</strong> dynamic DUMP facilities of FORTRANand <strong>the</strong> Assembler Language. The informationdumped with this method can appear in hexadecimal,integer, or real format.In FORTRAN, <strong>the</strong> DUMP facility is accessedthrough use of <strong>the</strong> PDUMP subroutine. You wouldwrite CALL PDUMP (Al, Bl, Fl, , An, Bn, Fn).Blocks of core storage are dumped. Al and B1are variable data names, subscripted or nonsubscripted,indicating <strong>the</strong> inclusive limits of <strong>the</strong> firstblock of storage to be dumped. Similarly, An andBn indicate <strong>the</strong> inclusive limits of <strong>the</strong> nth block ofstorage to be dumped.The format of a block is determined by <strong>the</strong> Fxassociated with that block. Fl through Fn are integersand are assigned in <strong>the</strong> following manner:0 = Hexadecimal4 = Integer5 = RealThe Assembler Language dump facilities, DUMPand PDMP, are used in a similar fashion.<strong>All</strong> of <strong>the</strong> core storage dump facilities will producea printout of core storage, by address. Youshould use <strong>the</strong>se facilities when a program "bug"requires, in <strong>the</strong> judgment of your programmer, anexamination of all or part of core storage.2. Arithmetic Trace. The use of this techniqueinvolves subroutines that are executed whenever avalue is assigned to a variable on <strong>the</strong> left of an equalsign. If Console Entry Switch 15 is turned on atexecution time, and <strong>the</strong> *ARITHMETIC TRACEFORTRAN control record is used, <strong>the</strong> value of <strong>the</strong>assigned variable is printed, as it is calculated, withone leading asterisk.As an optional use, you can elect to trace onlyselected parts of <strong>the</strong> program by placing statementsin <strong>the</strong> source program to start and stop tracing.This is done as follows:CALL TSTOP (to stop tracing)CALL TSTRT (to start tracing)Thus, tracing occurs only if:• The trace control record is compiled with <strong>the</strong>source program.• Console Entry Switch 15 is on (can be turnedoff at any time).• A CALL TSTOP has not been executed, or aCALL TSTRT has been, executed since <strong>the</strong> last CALLTSTOP.If tracing is requested, an *IOCS control recordmust also be present to indicate that ei<strong>the</strong>r typewriteror printer is needed. If both typewriter andprinter are indicated in <strong>the</strong> *IOCS record, <strong>the</strong> printeris used for tracing.Use of this facility will increase execution timeconsiderably. The trace facility should not be presentin a production program; if it is, you shouldrecompile <strong>the</strong> production program after testing iscomplete, leaving out <strong>the</strong> trace.3. Transfer Trace. In this case, <strong>the</strong> FORTRANcompiler generates linkage to trace routines whichare executed whenever an IF statement or ComputedGO TO statement is encountered. If Console EntrySwitch 15 is turned on at execution time and <strong>the</strong>*TRANSFER TRACE FORTRAN control record isused, <strong>the</strong> value of <strong>the</strong> IF expression or <strong>the</strong> value of<strong>the</strong> Computed GO TO index is printed. For <strong>the</strong>expression of an IF statement, <strong>the</strong> traced value isprinted with two leading asterisks. The tracedvalue for <strong>the</strong> index of a Computed GO TO statementis printed with three leading asterisks.The optional use of trace explained under ArithmeticTrace also applies to Transfer Trace (use ofTSTOP and TSTRT), as does <strong>the</strong> information followingoptional use.4. Extensive Use of PAUSE. It may turn out thatsome parts of your program execute correctly andsome incorrectly. What you would like to do is tocheck <strong>the</strong> progress of <strong>the</strong> program while it is running.A very useful technique is to place PAUSE sat strategic places throughout your program. Inorder to know where <strong>the</strong> program is at any point intime, number <strong>the</strong> PAUSEs consecutively:C READ INPUTPAUSE 1CALL READ(IN, 1, 80, N)C IDENTIFY INPUTPAUSE 2


Section Subsections Page30 20 00 02IF(IN(22)-1) 3,4,53 CALL MOVE (IN, 1,27, IWK, 1)C TYPE ZERO CARDPAUSE 3etc.The PAUSE number will be displayed in <strong>the</strong>accumulator. Use of this technique will let you follow<strong>the</strong> logic of <strong>the</strong> program (IFs and GO TOs) withoutseverely slowing its execution.5. Additional Print Lines. This technique issometimes called "selective tracing". Again, ra<strong>the</strong>rthan severely slowing <strong>the</strong> execution of a program andprinting <strong>the</strong> result of every replacement operation,only selected variables and/or fields will be printed.Use of <strong>the</strong> FORTRAN WRITE statement or <strong>the</strong> <strong>1130</strong>Commercial Subroutine Package PRINT subroutinewill allow you to follow <strong>the</strong> progress of variablesand/or fields as <strong>the</strong>ir contents change during programexecution.6. Console Debugging. This technique should beused only as a last resort. It involves manual inquiryinto <strong>the</strong> system via <strong>the</strong> console switches, dials,and keys. In most cases, <strong>the</strong> previously mentionedtechniques will provide you with all <strong>the</strong> informationnecessary to debug.


Section SubsectionsPage30 30 00 01TESTING HINTS1. To test <strong>the</strong> logic in a program that usesCommercial Subroutine Package I/O, use standardFORTRAN READ and WRITE for I/O. This makes<strong>the</strong> trace facility available. When finished, useCommercial Subroutines READ and PRINT foroverlapped I/O.2. Ask yourself: What must be done to recreateinformation if <strong>the</strong> disk cartridge is lost?How long will it take?3. Keep testing in mind when planning <strong>the</strong>development of various runs. That is, write <strong>the</strong>file creation and maintenance programs before <strong>the</strong>report programs that use <strong>the</strong> files.


Section Subsections Page30 40 00 01SUMMARYIf program testing techniques are properly planned,a minimum amount of machine time is consumedduring program checkout. Manual inquiry into asystem via <strong>the</strong> console is extremely expensive inmachine and operator cost; little is learned in returnfor dollars expended. Time spent deskchecking is well invested, since most of <strong>the</strong> logicalerrors may be detected before <strong>the</strong> program actuallyenters <strong>the</strong> computer testing phase.In trying to make <strong>the</strong> maximum number of runsduring a test session, your programmer may betempted to make rapid patches without pausing toannotate such changes thoroughly. Such urgency isseldom fruitful in <strong>the</strong> end.The program testing phase should be carefullyand thoroughly planned, executed, and documented.The following checklist should be used as a guide toensure maximum productivity for program testing.After coding <strong>the</strong> program and preparing revisedflowcharts and o<strong>the</strong>r supporting documentation, <strong>the</strong>testing procedure begins.1. Prepare test data and precalculate results.2. Punch and verify program cards.3. List program cards.4. Desk-check <strong>the</strong> program. Look for:a. Errors in logicb. Endless loopsc. Incorrect use of program switchesd. Unsatisfied or incomplete coding for<strong>the</strong> problem definitione. Inefficient program (time and storage)f. Incorrect data field lengthsg. Improperly signed fieldsh. A name for each variablei. Improper indexingj. Initialization of routines and storagek. Duplicate names1. Misspelling and punching errorsm. Invalid operationsn. Necessary control cardso. Improper alignment of card columns5. Manually simulate <strong>the</strong> computer processusing test data.6. Compile <strong>the</strong> program.7. Perform error analysis with error listingand program printout.8. Correct <strong>the</strong> program.a. Card programs. Correct <strong>the</strong> sourcedeck and recompile <strong>the</strong> program. Tofacilitate card handling with objectdecks, label <strong>the</strong> object deck with amarking pen. The first and last cardof <strong>the</strong> object deck should be so labeled.The top edge of all such cards may alsobe marked.b. Disk programs. When <strong>the</strong> program isprepared on disk, corrections are madeto <strong>the</strong> source deck. This is accomplishedby placing <strong>the</strong> corrections in <strong>the</strong>source deck and <strong>the</strong>n recompiling andrestoring <strong>the</strong> program. Alter <strong>the</strong> programlisting and update <strong>the</strong> programflowchart to reflect source deckcorrections.9. Prepare detailed instructions for machineoperation during <strong>the</strong> test session.10. Pre-test-session familiarization.a. Console operationb. Input/output devicesc. IOCSd. Utility routines such as clear storageand load programs, file generators,trace programs, storage and disk printprograms, sort and merge programs,and check point and restart programs.11. Test documentation and materials. To reduceconfusion, all materials should be clearlylabeled with <strong>the</strong> name of your organization, programname, content, and date. Each person should havea list of items for which he is responsible:a. Program flowchartsb. Compiled program listingsc. Test data decks and disks with test datalisting (a duplicate copy may bedesirable)d. Precalculated results of test data andlisting of expected output with each testcasee. Card and disk record layoutsf. Internal storage mapg. Printer carriage control tapeh. Operator checklist, providing all <strong>the</strong>information <strong>the</strong> operator needs to setup <strong>the</strong> data processing system for <strong>the</strong>running of each program:


Section Subsections30 40 00 02Pagel(1) Job or program name(2) Operation name(3) Machine setup(a) Disk cartridge assignment(b) Input cards or tapes(c) Output cards or tapes(d) Carriage tape(e) Sense switch settings(4) The sequence of events to run <strong>the</strong>test(5) Listing of all possible messagesand halts(6) Switch and index listings(7) List of paper forms or card stockfor auxiliary equipmentObject deck or disk cartridgej. Blank forms, cards, disksk. Source deck and listings12. The test sessiona. Plan <strong>the</strong> test session in advance. Decideupon <strong>the</strong> sequence in which programsshall be tested. Programsshould take precedence in testingaccording to <strong>the</strong>ir importance, and <strong>the</strong>most important programs should be retestedas often as possible until <strong>the</strong>y arecompletely debugged. Schedule a workloadgreater than can be accomplishedin <strong>the</strong> allotted test time. Assign duties(such as handling <strong>the</strong> card reader,punch, printer, disk cartridges, andconsole) to each person attending.b. Arrive early. Confirm <strong>the</strong> testingschedule that was established in advanceof actual testing. This schedule maybest be laid out as a series of half-hourto full-hour sessions with one- to twohourbreaks in between.c. Be familiar with <strong>the</strong> latest versions ofall programming systems to be used.d. Make certain that <strong>the</strong> test packet isorganized properly. Test <strong>the</strong> higherpriorityand larger programs first.Each program should have its own inputtest data; one program should not bedependent on ano<strong>the</strong>r program that wasrun earlier in <strong>the</strong> same session.e. Make sure that all units are in <strong>the</strong>proper initial status--for example,printer restored, disk units ready, noleftover cards in <strong>the</strong> reader or punch.f. Debugging at <strong>the</strong> console is timeconsuming,error-prone, and generallynonproductive. When <strong>the</strong> program hangsup, <strong>the</strong> following steps should be takenimmediately:(1) Note <strong>the</strong> console status--indicators,lights and registers.(2) Take core storage dumps.(3) Take disk dumps.(4) Go on to next program or ceasework.Even if a program goes to end-of-joband appears correct, <strong>the</strong> above stepsshould be taken in order to simplifycorrecting errors discovered later.When a program hangs up, do not forceit to continue without taking down statusinformation, since <strong>the</strong> conditions causing<strong>the</strong> original hangup would <strong>the</strong>n bedestroyed.g •Label all core storage dumps, diskdumps, console sheets, etc. , with date,time, and program identification.h. Debug off <strong>the</strong> console with deliberatespeed. With <strong>the</strong> above items, <strong>the</strong>re ismore information to aid in locating <strong>the</strong>reason for <strong>the</strong> hangup than is availableat <strong>the</strong> console. Do not make hurriedcorrections to a program in a falseeffort to maximize usage of test time.Do not, however, spend three hours ata desk to save five minutes on <strong>the</strong>system. Strive for a reasonable costbalance.Before testing <strong>the</strong> program again,find all possible bugs, not just <strong>the</strong> onethat caused <strong>the</strong> hangup. Step fur<strong>the</strong>rthrough <strong>the</strong> program after each test toensure that <strong>the</strong> program will not hang upon <strong>the</strong> next instruction or routine.Correct all errors in output content andformat. Strive for perfect output fromeach test.i. Note all corrections on <strong>the</strong> programlisting. Corrections that affect <strong>the</strong> halt,switch, or index listings should be updatedaccordingly.J .• Note <strong>the</strong> reason for <strong>the</strong> correctionadjacent to <strong>the</strong> card itself. Be sure toinclude number and date. A post-testlisting of cards is desirable for referencewhen correcting <strong>the</strong> source deck.


Section Subsections Page30 40 00 03k. Generate a new program listing after anappropriate number of cards have beenadded to <strong>the</strong> program. Update <strong>the</strong> programflowchart to reflect <strong>the</strong> currentstatus of <strong>the</strong> program.1. Keep documentation current. Thiseliminates <strong>the</strong> waste of time and efforttrying to pick up changes during testingor debugging.13. Post-test evaluation. Every test sessionshould be followed by a thorough evaluation:a. Was <strong>the</strong> pretest preparation adequate?b. Were <strong>the</strong>re any areas of preparationthat could be improved to yield a moreeffective test?c. Were <strong>the</strong>re areas of preparation inwhich you spent too little?d. Did <strong>the</strong> test point up any areas of weaknessin<strong>the</strong> coding? If so, are <strong>the</strong>se typesof errors documented so that strongeremphasis can be placed on <strong>the</strong>m duringfuture coding and desk checking?e. Was each machine session usedeffectively?f. Are <strong>the</strong>re any corrections to <strong>the</strong> testingtechniques that would make <strong>the</strong> next testmore fruitful?g. What is <strong>the</strong> status of each programtested?(1) Is it completely tested? That is,has every program loop beentested, and do you have any reservations<strong>about</strong> calling this programcomplete?(2) Is it tested to <strong>the</strong> stage where <strong>the</strong>only changes left are in spacing andediting of <strong>the</strong> output data?(3) Are <strong>the</strong>re logic errors left in thisprogram?h. Did <strong>the</strong> test session achieve its objectives? If not, what adjustments inpresent scheduling are necessary?


Section SubsectionsPage35 00 00 01Section 35: PROGRAM DOCUMENTATIONCONTENTSIntroductionInstallation ManualsProgram Information ManualOperation Manual35.01.00 Documentation Examples 35.20.0035.10.00 Payroll System — Program35.10.10 Information Manual 35.20.1035.10.20 Payroll System — OperationManual 35.20.20


Section Subsections Page35 01 00 01INTRODUCTIONThe final step in your installation program is todocument everything you have done. Let us quicklyreview <strong>the</strong> importance of adequate documentationbefore discussing <strong>the</strong> form that your documentationmay take.The package of materials describing each programwill become:1. A source of information for implementingfuture changes.2. An education device for familiarizing newoperators and management personnel with <strong>the</strong> procedures.3. A means of describing control procedures toyour auditors.It is a modern but well proven adage that a welldocumented installation is a sure sign of a smoothrunningoperation.You should develop two manuals: <strong>the</strong> programinformation manual and <strong>the</strong> operation manual. Yourbasic library will consist of <strong>the</strong>se two manuals toge<strong>the</strong>rwith this <strong>1130</strong> User's Guide, physical planningmanual, <strong>the</strong> <strong>1130</strong> functional characteristicsmanual, <strong>the</strong> programming system referencemanuals for FORTRAN and Assembler Language,<strong>the</strong> machine reference manuals for <strong>the</strong> I/O unitsyou have ordered, and operating procedures manualfor FORTRAN, Assembler Language, and DiskMonitor System. If you use <strong>the</strong> Commercial SubroutinePackage, you will also want referencemanuals and operating procedures manuals for thatsystem. Consult <strong>the</strong> <strong>1130</strong> SRL Bibliography fordescriptions and form numbers of <strong>the</strong> manuals, andfor information <strong>about</strong> o<strong>the</strong>r <strong>IBM</strong> publications thatprovide fur<strong>the</strong>r details on <strong>the</strong> subjects covered inthis guide.


Section Subsections Page35 10 10 01INSTALLATION MANUALSProgram Information ManualEach application should have its own binder, whichwill be used by management, systems analyst, orprogrammer, and will contain:1. Job description. This is <strong>the</strong> same for allprograms with a job or application. It is a briefabstract.2. System flowchart. This is also <strong>the</strong> same forall programs within an application, and shows howeach program fits into <strong>the</strong> larger picture.3. Record layouts. <strong>All</strong> record formats for <strong>the</strong>application are shown.The three items above appear once for <strong>the</strong> application,whereas <strong>the</strong> items below are necessary foreach program (you may want to place dividers,labeled with <strong>the</strong> program names, in front of eachgroup of <strong>the</strong>se):1. Form layout.2. Variable Summary Sheet. The purpose forwhich program variables are used is apparent at<strong>the</strong> time of writing, but again, as with programlogic (of which variables are an integral part), <strong>the</strong>programmer rapidly forgets how he used <strong>the</strong>m. TheVariable Summary Sheet (see Section 25) will serveas a testing and program modification aid.3. Program flowchart. Experience has provedthat logic which is clear to <strong>the</strong> programmer at <strong>the</strong>time of writing is difficult to recall a short timelater. The logic must, <strong>the</strong>refore, be documentedin such a manner that testing will be accomplishedin a minimum amount of machine time. Well documentedlogic is also valuable when <strong>the</strong> program ischanged from time to time, ei<strong>the</strong>r by <strong>the</strong> author orby ano<strong>the</strong>r programmer who may be completely unfamiliarwith it.4. Coding sheets or program listing. To avoidconfusion, <strong>the</strong> coding sheets should be discardedafter <strong>the</strong> program listing is produced.5. Test data listing. Test data should be listedand retained. As changes to <strong>the</strong> program are made,<strong>the</strong>y may unintentionally affect parts of <strong>the</strong> originalprogram. <strong>All</strong> original test data, <strong>the</strong>refore, alongwith any additional test data necessary for <strong>the</strong>change, should be processed to ensure that <strong>the</strong> programis operating properly.6. Test output. This includes sample reportsor cards, as produced by <strong>the</strong> test data.7. Machine setup sheet. This is a guide to <strong>the</strong>operator, describing machine setup, source of input,disposition of output, and actions to be taken atmachine halts.8. Detailed program flowcharts. These mustbe included if <strong>the</strong> programmer is using AssemblerLanguage. Since programs written in AssemblerLanguage are not as easily read, or as clearly relatedto <strong>the</strong> job as FORTRAN programs, it is vitalthat your programmer draw a detailed programflowchart that carefully documents <strong>the</strong> programsteps he has taken. Each block should cover only afew program steps, and should be cross-referencedto <strong>the</strong> program. It is advisable in most cases to includea general program flowchart, which providesa quick means of introduction to <strong>the</strong> logic and is explodedby <strong>the</strong> detailed flowchart.


Section SubsectionsPage35 1 0 20 01Operation ManualIntended for use by <strong>the</strong> operator, <strong>the</strong> operationmanual is arranged so that each application has itsown section. Usually, <strong>the</strong>se materials are all keptin one book, at <strong>the</strong> <strong>1130</strong> console. In addition to <strong>the</strong>materials suggested below, <strong>the</strong> operation manualshould include a copy of <strong>the</strong> operating proceduresmanuals supplied by <strong>IBM</strong> for <strong>the</strong> programmingsystem being used.Dividers of two kinds should be used: one forapplications and one for programs within applications.Behind each application divider should be a jobdescription followed by a system flowchart of <strong>the</strong>entire application.Behind each program divider should be all instructionsto <strong>the</strong> operator. These may include (1)procedures to be followed to accomplish accountingcontrols, such as recording totals on a controlsheet, checking critical items, and noting crossfootingmessages, (2) recovery procedures -- thatis, procedures for reconstructing or continuing arun that has been interrupted as a result of an operator,machine, or program error, (3) initial switchsettings and <strong>the</strong>ir meaning, (4) halts, error messagesand <strong>the</strong>ir meaning, and (5) I/0 considerations.


Section Subsections Page35 20 00 01DOCUMENTATION EXAMPLESThe examples in this section show <strong>the</strong> necessarydocumentation for those runs in <strong>the</strong> Payroll Systemwhich were coded under Section 25. Note that <strong>the</strong>seexamples are illustrations and, <strong>the</strong>refore, may notbe considered complete, usable programs.


Section SubsectionsPage35 20 10 01PAYROLL SYSTEMProgram Information Manual


Section Subsections Page35 20 10 02


Section Subsections Page35 20 10 03CONTENTSPayroll Application 1Job Description 1System Flowchart 1Narrative 1Payroll File Create (PAY01, PAY02, PAY16) 2Payroll File Changes (PAY03, PAY16) 3Payroll Calculations and Register (PAY04, PAY16) 4Print Payroll Checks (PAY05, PAY06) 5Payroll Check Voiding (PAY11) 6Payroll Deduction Registers (PAY12 thru PAY15) 7Payroll File Audit, 941, and Tax (PAY07, PAY09, PAY10) 8Print W-2 Reports (PAYnn) 9Error Detection and Correction (PAY09) 10Payroll Record Layouts 11Card Forms and Console Keyboard Input 11Console Printer and Line Printer Forms for Output 12Disk Record Formats 12Payroll Programs 34PAY01: Payroll File Create 34Variable Summary Sheet 34PAY01 General Program Flowchart 37Program Listing 38Test <strong>Data</strong> Listing 43Test Output 44Machine Setup Sheet 45PAY02: Add Names to <strong>the</strong> File 47Variable Summary Sheet 47PAY02 General Program Flowchart 50Program Listing 51Test <strong>Data</strong> Listing 55Test Output 55Machine Setup Sheet 56PAY03: Changes to <strong>the</strong> File 57Variable Summary Sheet 57PAY03 General Program Flowchart 60Program Listing 61Test <strong>Data</strong> Listing 67Test Output 68Machine Setup Sheet 69PAY04: Calculations and Payroll Register 70Sample Payroll Register 70Variable Summary Sheet 71PAY04 General Program Flowchart 77Program Listing 78Test <strong>Data</strong> Listing 92Test Output 93Machine Setup Sheet 95


Section Subsections Page35 20 10 04PAY05: Check Writing 96Sample Check 96Variable Summary Sheet 97PAY05 General Program Flowchart 103Program Listing 104Test <strong>Data</strong> Listing 111Test Output 112Machine Setup Sheet 113PAY06: Check Register 114Sample Check Register 114Variable Summary Sheet 115PAY06 General Program Flowchart 121Program Listing 122Test <strong>Data</strong> Listing 126Test Output 126Machine Setup Sheet 127PAY09: 941 Report 128Sample 941 Report 128Variable Summary Sheet 129PAY09 General Program Flowchart 133Program Listing 139Test <strong>Data</strong> Listing 140Test Output 140Machine Setup Sheet 141ii


Section SubsectionsPage35 20 10 05PAYROLL APPLICATIONJOB DESCRIPTIONThe Payroll System is composed of 16 different runs. From <strong>the</strong> source documents, producedat <strong>the</strong> six plant sites, cards are punched. These cards are used to store <strong>the</strong> payroll informationon <strong>the</strong> disk cartridge.At this point <strong>the</strong> system uses cards only for transition between jobs. The input data,employee records, is read from <strong>the</strong> disk and updated before being written back. This gives ahighly flexible system, in which I/O, because of <strong>the</strong> disk, is very fast.The system produces <strong>the</strong> following reports:• Checks and check stubs• Check register• Payroll register• Deduction registers for1. Union dues2. Credit union3. Stock• 941 quarterly reportSYSTEM FLOWCHARTNarrativeThe system consists of 16 programs.The Files Creation program is first. <strong>Data</strong> decks are keypunched for each individual, in sets,by plant. The data is edited and, when correct, loaded on <strong>the</strong> disk by PAY01. Three files arecreated: a master file, an index file, and a plant information file. A second data deck wi<strong>the</strong>mployee clock number and name is loaded onto <strong>the</strong> master file by PAY02.Changes to <strong>the</strong> disk information are made by PAY03. Documents, received from personneldepartments at <strong>the</strong> individual plants, are checked, summarized, keypunched, and verified.Time sheets, submitted by <strong>the</strong> plant payroll departments, are keypunched and verified. <strong>All</strong>of <strong>the</strong>se cards are processed by PAY16, which edits and generates control totals. PAY04<strong>the</strong>n processes <strong>the</strong>se cards, performing all payroll calculations. Cards are read, pay computed,disk files updated, and cards extended with current pay figures. After all cards areprocessed, a payroll register is printed.Checks are printed by PAY05. A header card is read and <strong>the</strong> checks are printed from <strong>the</strong>disk file. PAY06 lists <strong>the</strong> check register from <strong>the</strong> disk file. In <strong>the</strong> event of an error incomputing pay, PAY11 provides <strong>the</strong> means of voiding checks. The extended time cards fromPAY04 are read in and <strong>the</strong> affected employee records are reset. The above are weekly runs.At month end, registers are prepared showing each individual's deductions for <strong>the</strong> month:PAY13 writes union dues register.PAY14 writes credit union register.PAY15 writes stock deductions register.PAY12 resets charity deductions code.At <strong>the</strong> end of <strong>the</strong> quarter and at <strong>the</strong> end of <strong>the</strong> year PAY07 and PAY08 are used to balance<strong>the</strong> disk files to control totals.PAY09 produces <strong>the</strong> 941 tax report.PAY10 produces a tax worksheet used to determine tax reliability.At <strong>the</strong> present time <strong>the</strong> program for W2 reports has not been written.1


Section Subsections Page35 20 10 06EmployeeEarningsRecordKeypunch &Key-VerifyClock No.and Name■Keypunch &Key-Verify<strong>All</strong> butName / \Totals onAddingMachineTAPEV<strong>All</strong> butNameKeypunch &Key-VerifyControlTotalsControlTotalsZero BalanceTotalsPAY 1q.INPUTEDITBalance toTotals-&Correct asNecessaryOut of BalanceControl Totals<strong>All</strong> butNameFileADiskPayrollFileClock No.andNameFileB2


SectionSubsectionsPage351201007EmployeePayroll ChangeAuthorizationsTotal onAddingMachine01.TAPEKeypunch &Key-VerifyClock No.,Change Code,and ChangesKeypunch &Key-VerifyControlTotalChangesControlTotalZeroBalanceTotalPAY 16INPUTEDITBalance toTotal andCorrect asNecessaryOut of BalanceO.K.ControlTotalFromStorageChangesControlTotalDiskPayrollFilePAY 03FILECHANGESChanges3


Section Subsections Page35 20 10 08WeeklyTimeSheetsTotals onAddingMachineTAPEKeypunch &Key-VerifyDetailsKeypunch &Key-VerifyControlTotalsDetailsZero BalanceTotalsPAY 16INPUTEDITControlTotalsBalance toTotals &Correct asNecessaryOut of BalanceAO .K.Control TotalsDiskPayrollFileDetailsPayrollRegisterPAY 04CALCULATIONZero BalanceTotalsBalance toTotals; IfIncorrect,Go to EDetailsDistributePayrollRegisterDiskPayrollFileToControlTotalsToC4


Section SubsectionsPage35 20 10 09CDiskPayrollFileControlTotalsCalculated PAY 05 Pay Checks / Total onControlPAY ROLLand StubsAddingTotals CHECKS MachineBalance toTotals; IfIncorrect,Go to DTAPEOnly WhenTotals BalanceBurst, Signand DistributePaychecksand StubsDiskPayrollFileCheckRegisterBalance toTotals; IfIncorrect,Go to E5


Section Subsections Page35 20 10 10DOnly When Totals Do Not BalanceDestroyChecks(DiskPayrollFileControlTotalsDetailsPAY 11VOIDCHECKS7iDiskPayrollControlTotalsDetailsFileFileD6


Section SubsectionsPage35 20 10 11FromStorageGeneralLedgerDiskPayrollFileUnionDuesRegisterPAY 13UNIONDUESEnter PlantNumberTotals onAddingMachineBalance toTotals; IfIncorrect,Go to ETAPEVDistributeUnionDuesRegisterDiskPayrollFile(CreditUnionRegisterPAY 14CREDITUNIONEnter PlantNumberBalance toTotals; IfIncorrect,Go to EDistributeCreditUnionRegisterDiskPayrollFileEnter PlantNumberStock PAY 15DeductionSTOCKRegisterDEDUCTIONEnter PlantNumberStoreDistributeStockDeductionRegisterBalance toTotals; IfIncorrect,Go to EDiskPayrollFilePAY 12RESETMONTHLYTOTALSDiskPayrollFile7


Section Subsections Page35 20 10 12FromStorageDiskPayrollFileGeneralLedgerTotalsPAY 07AUDIT FILEBY COMPANYEnter PlantNumberTotals onAddingMachine//Balance toTotals; IfIncorrect,Go to EFile•TAPEDiskPayrollFilePlantNumbersCalculatedControltotalsPAY 09941REPORT941ReportBalance toTotals; IfIncorrect,Go to EDistribute941ReportDiskPayrollFilePlantNumbers8


Section SubsectionsPage35 20 10 13FromStorageFileEDiskPayrollFilePlantNumbersW-2ReportsPAYnnW-2REPORTSBalance toTotals; IfIncorrect,Go to EDistributeW-2ReportsVDiskPayrollFilePlantNumbersStoreFileE


Section Subsections Page35 20 10 14DiskPayrollFile/ Select DesiredClock NumberCardClockNumberIndividualPayrollRecordPAY 08INQUIRYLast Week'sPayrollRegisterBalance toTotals; IfCorrect,Go to EWeeklyTimeSheetsDetermineChangeRequiredUse PAY 16& PAY 03to Change <strong>the</strong>Disk PayrollRecord/ Does thiscorrect originalerror? If not,Go to EReturn toPrint WhereErrorOccurredOnly whenentire originalerror has beencorrected10


Section SubsectionsPage35 20 10 15PAYROLL RECORD LAYOUTSCard Forms and Console Keyboard InputPAY01Plant no. — 1 digit — keyboardWeek no. of month — 1 digit — keyboardCheck no. — 2 digits — keyboardName — 18 blanks — keyboardPlant name — 32 characters maximum — keyboardFigure 2 — cardPAY02Plant no. — 1 digit — keyboardFigure 3 — cardPAY03Plant no. — 1 digit — keyboardfigure 1 — cardSocial Security Number, if changed — keyboardFigure 4 — cardFigure 5 — cardPAY04Figure 6 — cardCheck no. — 5 digits — keyboardWeek no. of month — 1 digit — keyboardMaximum check amount allowed — 5 digits — keyboardFigure 7 — cardPAY05Figure 6 — cardCheck no. — 5 digits — keyboardCheck maximum amount — 5 digits — keyboardClock no. (if requested) — 4 digits — keyboardPAY06Figure 6 — cardPAY07Plant no. — 1 digit — keyboardPAY08Figure 9 — cardFigure 10 — cardFigure 5 — cardPAY09Figure 11 — cardFigure 12 — cardFigure 13 — cardFigure 14 — cardFigure 15 — cardPAY10Figure 9 — cardFigure 5 — card11


Section Subsections Page35 20 10 16PAY11Figure 6 — cardFigure 8 — cardFigure 5 — cardIf requested:Insurance deduction — 4 digits — keyboardStock deduction — 4 digits — keyboardCharity deduction — 4 digits — keyboardMiscellaneous deduction — 4 digits — keyboardPA Y12Plant no. — 1 digit — keyboardPAY13Plant no. — 1 digit — keyboardIndividual amount for a plant — 4 digits — keyboardPAY14Plant no. — 1 digit — keyboardPAY15Plant no. — 1 digit — keyboardPAY16Figure 6 — cardFigure 7 — cardConsole Printer and Line Printer Forms for OutputPAY01 — NonePAY02 — NonePAY03 — NonePAY04 — Figure 17Figure 8PAY05 — Figure 18PAY06 — Figure 19PAY07 — Figure 20PAY08 — Figure 16PAY09 — Figure 21PAY10 — Figure 22PAY11 — Figure 17PAY12 — NonePAY13 — Figure 23PAY14 — Figure 24PAY15 — Figure 25PAY16 — Figure 26Disk Record FormatsEmployee File — Figure 27Index to Employee File — Figure 28Company Record in <strong>the</strong> Corporation File — Figure 2912


Section SubsectionsPage35 20 10 17/Clock .No. Change Blank000000000000000000000000000000000000000000000000000000000000000000000000000000001 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 11 42 43 44 45 46 47 40 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 23 74 75 76 77 78 79 6011111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777177777777777777777117711177111117888888 88888888888888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999991 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ZS 27 28 29 30 31 32 33 34 35 34 37 38 39 46 41 42 43 41 45 44 47 48 49 50 51 52 53 54 55 56 57 50 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80Figure 1,4.ClockOBISocialSecuri yNo.GrossEarningsYTDFICAYTDFITYTDLocalTaxYTDCreditUnionDeductionP„ in5 'A'.5 o.v oUnionDuesBlankBlankil 3or00000000000000000000000000000000000000000000000000000000000000000000000000000000I 2 3 4 5 5 7 8 9 10 11 12 13 14 15 16 17 18 19 26 21 22 23 24 25 26 27 28 29 33 31 32 33 34 35 36 37 38 39 40 41 42 43 44 05 46 47 48 49 50 51 52 53 54 55 SS 57 59 59 60 61 62 63 64 65 66 67 68 59 70 71 72 73 74 75 76 77 78 79 601 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 122222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666667177117777777777777777117777717177777777777777777777777777777777777777777777777788888888888888888888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999991 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 26 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 45 49 50 51 52 53 54 55 56 57 58 I9 60 61 62 53 64 65 66 67 68 69 70 71 72 73 74 75 76 77 75 75 BOFigure 2,13


T7 I•T7 azn2I aos 6E 15 II 9L Si 15 El IL IL OL 69 99 L9 99 69 99 69 Z91909 65 66 LS 95 55 95 ES ZGIS05 60 e9 LI 99 St Pt Et Zt 11, 13;66 BE LE9E561566 Z6 1E Ot 6Z8ZLZ 9Z 3Z 9Z CZ zzau el 81 LI 91 SI 11 El ZI 11 01 68695 EZI6666666666666666666666666666666666666666666666666666666666666666666666666666666699888888898898888988889888888998888898880888988888888889898889888899889888889989LLLILLLL LLL LLILLULLLLL LLILL LULLLLLL UHL LULLULLLLULLULLILLULLLIAILLILLL LI99999999999999999999999999999999999999999999999999999999999999999999999999999999G6666666666666666666466666606666666666666660466066666666060666666666666666666660ttOtt744174417444174p4444417174174p4417404401744tpttptttp4417444444174444417444444411tt444t4tEEEEEtEEECEMEMECCECCEEECCEECEECCEECCEEECEEEEEECEEEEECCEECCEECCEECCEEECCUECE111111111111111111111111111111111111111111111111111111111111111 111111111111111111111 III IIIILIIILLIILIIIIILIILIILIllllll1111111LIILIILILIIIILLIIIIIILILIIIILLILL09 6L (IL IL SL EL 91. EL Z6 IL OL 69 69 L9 99 69 09 C9 Z9 19 09 65 BS L5 9S ssescs ZS IS OS 60 89 a 99 St 09 Et Z0 ft 1/9 66 BE LE 9C SC It EC ZEMOE 6Z BZ LZ9Z3Z tZ EZ ZZ IZEIZ61 81 LI 91 SI 91 El ZI 11 01 6 96959E010000000000000000000000000000000000000000000000000000000000000000000000000000000051,161g!_ ! 'AZ i, ...,'1015'Epos'ON,0,0•E a xn.21,409 6E ft LL 9L GL ,I. EL ZL IL OL 69 89 L9 99 69 99 69 Z9 19 09 66 95 LS 95 56 96 ES Z5 IS 06 60990 99 69 94 Et it It 01 60 BELL 96 SCIIEC ZEMOC 6Z 81 LL 9Z 52 92 CZ ZZ le OZ 61 81 L191 SI tl El ZI II 016 869506Z16666666666666666666666666666666666666666666666666666666666666666666666666666666688888888889999998888888989888889888888988988888888889888888888888808899988889988LULLILLILLLLLLLLLL L11.111LLILL11.111111LLLILLILLLILL LULL CLULLIALLILLLLLULLULL99999999999999999999999999999999999999999999999999999999999999999999999999999999666666666666666666666664666666G 4664666666466666666646466666666663666S6666666666644ttt4t4t4t4tt44444ttUttP44t4tUtt4W4tPtttt174ttitt44t4tt41,17444t4tttt4t0t4t4444CEMECCEEEMECCEMECCEEECCEMECCECCEEECEEEEECUMEECCECCECEEEECCEECCEECECEEZZUZZZZZUZZZZZZZZUZZZZZZZUZZ1ZZZZZZZZUZUZZZZZUZZUZZZZZZZZZUZZUZZUZZZZIIIILIIIIILLIIIIMIllillillill111111.1111111l1111.111.111MILIIIIIMILIIIMILIIMI 6L 61 II 9/ SL IL EL LIIIP1 69 89 19 99 59 09 69 09 19 09 66 86 LC 9S SS t6 ES ZS 15 06 60 Bt 19 99 St 91 Ct 09 19 09 60 BE LE 9C SE tE EC 001606 el BZ LZ 9Z SZ tZ EZ ZZ 10 OZ CA 81 LI 91 GI tl CI ZI 11 01 6 81960EZI00000000000000000000000000000000000000000000000000000000000000000000000000000000:17 i1.9 10 aweN 'ON5.138T 0Z 0Z 9£36ed suopasq ns uo pas


giOS 6/ 6/ II 91 St 92 EL Zt 12 01 69 29 L9 99 59 99 ES Z919E9 6S 86 LS 95 SS 96 E6 Z61606 69 13, MI 01 St 91 Et Zt It 09 SE 9E a 9E SE tt EC ZEMOC 6Z 84 L2 9Z SZ 11 CZ Z2 12 OZ 61 El L1 91 61 91 tl ZI 11 0168L95900166666666666666666666666666666666666666666666666666666666666666666666666666666666898888998980899888813888988898888888888888888988988881388998138888888899889980813899LUILLILLILLILLLLUILLLILLIILLMILILLILLLLLILLILLLILLLLILLLLLILLILLLLLULLLULL99999999999999999999999999999999999999999999999999999999999999999999999999999999SESSSGSSSSSSSGSSSSGSS5CSSGSCSGSSGESGSSESSSSGSSGSMSSSGSGMSGSGSSSGSGSMSSGS4444444444444444444444444444441,4444444444444444444444444444444440444444444444 494499EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEZZZZZZZZZZZZZUZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZUZZZZZZZZZZZZZLZ11111111111111111111.11111111111111111111111111111111111111111111111111111111111109 61 9/ II 9/ 51 91 El ZL IL 01 69 89 20 99 59 19 E9 29 19 09 65 85 LS 95 66 IS CS ZS IS OS 69 Bt a 9/ St 11 CO Zt 1909 6C 9C LE 9E GC tE EC ZE 1E OE 6Z 11Z LZ 9Z SZ tZ CZ ZZ IZ DZ 61 61 LI 91 61 91 CI ZI II GI 60/958EZI00000000000000000000000000000000000000000000000000000000000000000000000000000000SuS10/6t0u/03 1,0111 smOH smo14 111010^N MO 1.00 ../Blepad5 nuog .1197.0Jein5aH1/1110 ,L,!U.. 3 1/B,ID ..Id,,„,1..1WW1101oiWW1os 61 BL LL SI SI 1L EL ELUOL 69 69 19 99 69 99 E9 Z9 19 09 65 BS LS 95 SS9SES Z9 15 GS 61 89 9/ St Mr Et 29 19 99 fit BC LC St SC K CC ZE U Or 6I BZ LZ 9Z 5Z OE LIZZLZ OZ 61 81 LI 91 SI tI CI ZI II 01 6 6/96 8E016 66666666666666666666666666666666666666666666666666666666666666666666666666666668888888889888888888888898988888898888988898899888888888888889988888889998888889LLLULLULLLULLLULLULLLLLLULLLULLILLLLLLLULLLLILLI.LLULLULLLULLLLLLLILL9 99999999999999999999999999999999999999999999999999999999999999999999999999999999994S944999949994949999944949999999999449449444449994499999949999999944444949994444994444944944444444444444444444444444444444444444444444444444444444444444444LEE CELL LEE L CE EL CL LEE CE CCL CELL CELL CELL ELI LEE C CCCL EL CELL EL CCCL CCL LELECLEL CELL CCCLZUZZUZZUZZZZZZZZZZUZZZZZZUZZZZZUZZUZZZZZZZZUZZZZZZUZZZUZZZZZZUZZZZZZill 1111111111111111111111111.111111111111111111111111111111111111111111.111111111SI SI LL 9L SI IL EL ZLILOL 69 89 l9 99 69 99 09Z9 19 09 66 89 LS 95 56 96 ES LS IS 09 6V 89 LO 99 59 14 Et it 10 09 6C BE LE 9C SEKEE ZE IC Of 6Z BZ IL 9Z SZ 8E OZ ZZ IZ OZ 61 91 L191 S191 El ZI II 01 6 899980010000000000000000000000000000000000000000000000000000000000000000000000000000000nr/61 01 OZ gE86Bdsuopasqns uoRoas


Section Subsections Page35 20 10 20/ f.,6 ,63Clock Regular Overtime Bonus -8 Special t Special t SpecialNo. Hours Hours Hours 3 Earnings 8 Earnings 6 Earnings Blank000000000000000000000000000000000000000000000000000000000000000000000000000000001 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 16 18202122232425262728293031323334 35 36 37 38 39 40 41 42 43 44 45 447494950515253545556575659606162635465665168697071727374757677787950111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444i444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555 5 5555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666666666666666666666666666666777717777777777777777777777777771771771777777777777777777777771777117771117777778888888888888888888888888888888888888888888888888888888888888888888888888888888899999999999999999999999999999999999999 9 999999999999999999999999999999999999999991 2 3 4 5 8 7 8 9 10 11 12 13 14 15 16 17 16 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 66 69 707132 73 74 75 16 77 76 79613Figure 7./ Total <strong>All</strong> 1— 73Clock Regular Overtime Bonus Special 919 Special -`8 Special Pay Local Credit Union O<strong>the</strong>rNo. Hours Hours Hours 3 Earnings 8 Earnings 3 Earnings Bate Gross Net FIT FICA Tax Union Dues Deductions m 09000000000000000000000000000000000000000000000000000000000000000000000000000000001 2 3 4 5 6 7 8 9 10 111213141516171619202122232425262728293031323334 35 36 37 38 39 40 41 42 43 44 45 46 47 49 49 50 515253 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 7671721374257677U 79 501111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666667777777777171777777777777777777171771717117111777717117171777777171771177717177788888888888888888888888888888888888888E188888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999991 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 17 18 19 20 21 22 23 24 25 26 27 NI 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 53 59 60 61 62 63 64 65 56 67 68 59 70 71 72 73 74 75 76 77 78 79 soFigure 8,16


Section SubsectionsPage35 20 10 21PlantNoBlank0 000000000000000000 `1.26. noo00000000000000000000000000000000000000000000000000002 3 4 5 6 7 9 9 10 II 12 13 14 15 16 17 18 19 20 21 23 24 '5 36 27 29 29 30 31 32 33 34 35 36 37 30 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 8011111111111111111111i'1111111111111111111111111111111111111111111111111111111112 22222222222222222222222222222222222222222222222222222222222222222222222222222223 33333333333333333333333333333333333333333333333333333333333333333333333333333334 4444444444444444444444444444444444444444444.4444444444444444444444444444444444445 55555555555555555555555555555555555555555555555555555555555555555555555555555556 66666666666666666666666666666666666666666666666666666666666666666666666666666667 77771777777777777777777711177177711111117777717777717777777777777777777777777778 88888888888888888888888888808888888888888888888888888888888888888888888888888889 99999999999999999999999999999999999999999999999999999999999999999999999999999992 3 4 5 6 7 8 9 10 11 12 13 14 15 18 17 W 19 26 21 22 23 24 25 26 27 78 29 38 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 16 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 65 67 60 69 70 71 72 73 74 75 76 77 78 79 80Figure 9,ClockNo.Blank0000 00000000000000000000000000000000000000000000000000000000000000000000000000001 2 3 4 5 6 7 9 9 10 II 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 36 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 8011111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222223333333333333333333333333333333333333333333333333333333333333333333333333333333344444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777777777777777777777777777777777777888888888813888888888888888888888888888888888138888888888888888888888888888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999I 2 3 4 5 6 7 9 9 ID 11 12 13 14 15 16 17 10 1S 10 27 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 56 67 68 69 70 71 72 73 74 75 76 77 78 79 BCFigure 10,17


Section Subsections Page35 20 10 224, eDate forReportingPeriodBlank000000000000000000000000000000000000000000000000000000000000000000000000000000001 2 3 4 5 6 7 6 9 101112131415161716192021222324252627252930313233343526373839404142434445464743495051525354555135755596061626364656567686970717273747576777579301111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666667777777777777777777777777777777777777777771777777777777777777777777771777777777788888888888888888888880888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999991 2 3 4 5 6 7 8 91011121314151617181920212223242525272629303132333435363735394041424344454647413495051525354555657565960615263646566676869 /0 71 72 33747576777E17960F igur e 11./CompanyName Blank000000000000000000000000000000000000000000000000000000000000000000000000000000001 2 3 4 5 6 7 6 9 10 111213 74151617181929212223242526272629303132333435363736394041424344454647464950515253545556575559606152636465566760697071727374757677787980111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777717777777777177777777777777777777777777777777777777778888888888888888888888888888888888888888888888888888888888888888888888888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999I 2 3 4 5 8 7 8 9 101112131415161715192921222324252627752930313233343536373839404142434445454748495051525354555657511596061525364656667613697071727374157677 78 /960Figure 12.18


Section SubsectionsPage35 20 10 23Street AddressBlank00000000000000000000000000000000000000000000 0000000000000000000000000000000000001 2 3 4 5 6 7 8 9 10 II 12 13 11 15 16 17 I9 19 20 21 22 23 24 25 21 27 28 39 30 31 32 33 34 35 36 31 38 39 40 41 42 43 44 4546474949565I 525354555651585960616263646566676969707112137475767776798011111111111111111111111111111111111111111111 11111111111111111111111111111111111122222222222222222222222222222222222222222222 22222222222222222222222222222222222233333333333333333333333333333333333333333333 33333333333333333333333333333333333344444444444444444444444444444444444444444444 44444444444444444444444444444444444455555555555555555555555555555555555555555555 55555555555555555555555555555555555566666666666666666666666666666666666666666666 66666666666666666666666666666666666677777777777777717777777777777717777777777777 77777777777777777777777777777777777788888888888888888888888888888888888888888888 888888888'8888888813888888888888888888999999999999999999999999999999999999999999991 2 3 4 5 6 7 8 9 10 11 12 13 11 15 16 17 le 19 20 21 22 23 21 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 4499999999999999999999999999999999999945 46 47 48 49 5051 52 53 54 55 56 57 58 59 60 61626364 65 66 67 68 69 7071 72 73 74 15 76 77 76 79 82Figure 13.City end Zip CodeBlank00000000000000000000000000000000000000000000 0000000000000000000000000000000000001 2 3 4 5 6 7 8 9 10111213141518171819202122232125262728293331323334353637383943414243441 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 122222222222222222222222222222222222222222222 22222222222222222222222222222222222233333333333333333333333333333333333333333333 33333333333333333333333333333333333344444444444444444444444444444444444444444444 44444444444444444444444444444444444455555555555555555555555555555555555555555555 55555555555555555555555555555555555566666666666666666666666666666666666666666666 66666666666666666666666666666666666677771777711177777777777777777777717777777777 77777717777777777777777777777777777788888888888888888886888888888888888888888888 88888888888888888888881388888888888138999999999999999999999999999999999999999999991 2 3 4 5 6 1 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 21 28 29 30 31 32 33 34 35 36 31 38 39 10 41 42 43 445464748495051525354555657585960616263646566676069101172737475767778798099999999999999999999999999999999999945 46 47 18 19 50 51 52 53 54 55 5657 58 59 60 6162 63 64 65 66 87 68 69 707172 73 74 75 76 17 78 79 80Figure 14,19


Section Subsections Page35 20 10 24/StateAccountNo.BlankAcs un1000000000000000000000000000000000000000000000000000000000000000000000000000000001 2 3 4 5 6 1 8 9 10111213141516111819202122232425262728293631323334353631383945414i43 44 45 464148495651525354555557585950 61626364656661606910111213 74 15 16 71419801111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444444444444444444455555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666667777777777777777777777777777777777771117777777777777777777777777777777777777777788888888888808888881313881388138888 0088888888888881388 0888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999991 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 11 18 19 20 21 22 23 24 25 28 21 78 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 41 48 49 50 51 52 53 54 55 55 51 58 59 60 61 62 63 64 65 66 61 66 69 10 1112 13 74 15 16 7116 79 80Figure 15.20


t'.'INTERNATIONAL BUSINESS MACHINES CORPORATION<strong>IBM</strong>PRINTER SPACING CHARTLINE DESCRIPTION FIELD HEADINGS-WORD MARKS 8 Lines Per Inch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :<strong>IBM</strong> 1403 Models 1 8 4MOM I I I ••••••11111.1111111•••••1••••••••••■••111L■•••••11111W0111 ■■11111■ ■ MN r ■ 17 ••■ ■ Emil 11■■111 ■■■■■■■■■ ■111MITTri I I- Trr1-il f I I 11-71-1T I1-111-17-1 J T111I I r TIT- 2721 11 I I T I III r I n 1IIIIIIITIIIIIII!Iii,,11••••••• •••••••■•••111111111111111•111111.110 • 11111111111111 111••••••••••• NM HUM. WI ■ MEW .51111111••• ••■•1 MMOMMOMII<strong>IBM</strong> 1443 Models L N1, and 2203 up••111111111 ■ ■ 11111.1111111 OBESE •11111111111 M••••••••• Mull ■ 77- 1 EMMUTT annu■■e ■■■mmummu■mumuumummummtGL UE0 1111111111 2 1111E11111 4 5 6EILIEIEUXICIPREIGIEMIXIME115080 8 9=MIIIMN111111111:=M11111M1171111:111131ZIPB6 . 700011EMIE1 6 71I1 0 1 2 -27T761-2 3 9 1318818E11313102ommuuum0 I 2i3LEIMEICEIME101210121:1111211EEICIERIFIERIOLIEEIVIMEMEIurinumENNENNNENIummunimmisioNNEENNEN u1111111194.111111• unimum =NM INNENENNEul NommomumnuiEumummunEumummmutiluiụ• ••111111111••••••••••••••••••1111111•11•111111111111• 14ii2 1•••••••1111.15•1•111111•11111••••••••1•••1111111111• 111•11.1111• •••••IMM •••••1111•01110111•111111 •3 1•111111111••••111111MHOMM.11111111111111111111111•••••••••••••1111111151111111.15•11111.11111.W1111111111.1•••••••••••11•1111111•11. 1111••• •••••••••••••111.Nuanq u4 NEII: 11111■111.:41:Ninuommu•prummuThislisummThEN•umoniummuummannummilKI.1•1111. f.! f:ENNINEMINININNNINNE NN•NmmuliumIIIAI: /*I . ?! r! I: III1/0 !I:lill 04 ,...4•1. r r .4•114.0.11111:41E+.4. ■:114.111:1■:40'1AD: r. pr.rur y. • . r r roNEMIN ••••111= •••••••••••■ sENNO•11•111111•111111111111.ossu111111.01111111■111113111WiriloWiN.1111ENNNU r..7 r.- maw NNW r.4011111: i. r.. ■Ar.4114111.1111K NT iv. /WC 01111110Nr. T. VV. ■II.wisammur I rVili' ri,' I NOVirrir. i. 7.114"41'.. ,'.11111111111.1111.111111111.11111141111111111■•••11111•111 •11111111111•11111111•••••••••••••••••••••11NW r NW if 41741V. Illlu 111414 r 43r.iNTolrlmuirviry. arum Nrenr. mariVAVAIFia■lrounr.1.4 g,* r' NT 111111i7119141r 1113rAriTtl rNNi. ,:rou ",r 5••••••••• •■•••••••111111111111111.111111111111•••••■•••••••••••••11NI:40:1*. TN : PIE:II:IT ■11rinmonriiesmunnommomisossomossonmossismossinsossommisin11111■ 1111■1111aumul■11.1•147.41w:4: NNONE 141110■11: 7./F.B.N6:±Iror.ca :7447400CfrA Ff. 'Ars IVA I I:tommuunrusuummumniingumusidemeno p MiNarilillr KINIV r. •VAII : INNIAIMIKEINNE'ANTr I: ■.. IM:0:0:11'.41/.41:1:41:11/: IAIHIIIKI 'ACME I:4:0:11•11•1•11111111.1iUII.1111 411 miiii••••uniii11.1 111111111111.11.1111111111111111111111111•WW••••••••••••••■•••Nun gun_ • .rnolormsMNIIIIIIIIMIE1111111:116191111101 1111111111 1.40MI1111•111111 MI 1111111 1111111.1••••■••11111mmummowlim- mull!....-------• I mill111111111■miliiiiire-,ummomM • I FUN. milINNIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIEINNINFN ' ----..140MOMMEMIOMMOMMEMMIMIESMOMMOMONso 11m*-momma mum--- --'1,!!!!MOMM. ____"4"4.1.1.1_1151m--1-'=-Figure 16.INTERNATIONAL BUSINESS MACHINES CORPORATION<strong>IBM</strong>PRINTER SPACING CHARTND LINE DESCRIPTION FIELD HEADINGS/WORD MARKS 8 Lines Per Inch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443; and 2203 Print Spon :1-1 <strong>IBM</strong> 1403 Models 1 8 4 I■■ommommumwom MM MOM MMMMMMMMM WommlOMMOMM 1■111111■ ■■■1R. NOMM■■MO MN I MOM I■■■ ■ ■■■ ■ MOM. T ■111■11■■012111111. 1.111. MOM. 1111111111•11•••••• NOM 7 ••••••• III III II T TTI II IT1 I I F ■■■■ II IMO11111<strong>IBM</strong> 1403 Models II2, 3, 5, N1 and 1404111••••••••••••••11111110••••111111111111111111•••••■••••••••••••••••••••••••••11MMIMMINIIIIIM MI 111111111T TI III1111111111 <strong>IBM</strong> 1443 Models L N1, and 22031111 0 ■■11111. ■EMM■■■■OMOS alOOROMM.11■11.111ME■■OE■IM■IXEM■IOMOMEMOMI ■ ■■■■MOM ■ ■■ ■■■ ■■■■■■■■■■■ ■111111 1111.111■O■MEMIUMI■■GL UE 0 1111111111 2 1111E11111 4 5 6 7 M110111111111111.111.1 : 10 Mt=A 1E118135171128 9 0061:1131731<strong>1130</strong>0013112011315 LIONIEIENOSIESSE100 I HEIM 6 61E1 9 0 I HEM 6 71:1111:1BORMOO 7. 81;113119 3 47-81-6-mum 11111 1111111•••••••••••••••111111111••••1111111111111111111111•••1111•••••••••••111111111111111111•••=1•1111••••• MB7 890131MEXIMOBEEE11.1501DEMUAL5,20111MCICINI ••111.••■•1111511••••••M1111 111.1111111. 11111 1.115.11•1•1111111•111151•111111111111111111•••••••••••••••••••••••••••1111111111111.1111111.1.11111111.1.1.1111111111 OMB MI 11,11111. •11 .=11.1 • M BMWIEMOMMOMINIMMISMOOMMIONOWIMMO■M■ ■MISM■ MOIMMOMMOBOOMMEMOOMMOI MOMMOMMXIIMUMNIMMOillint ilinICIEMMEM.111.1115.111111.111.115BOMEMOBM0 Nuns11111505,N5111115, imummuNINTIEU11110 WEE11.111.1••••111111.11••••••••11114..1411.4.1% . .I. „ , ..I 1, M..11. Oral II, 11.11111111.1117 iniiiiiriq MIMI! Arl."41 41.0. lialtiqIITO 1111111NI me um IANU•••••11111111MMEMENW111111111WIMMOIMMIIIIIMIEWM1111111111511•11111111111 L.. -■ 41,', ' OINIIIIII■ ,17,;ummismuummu; lett'i:/.:11..1 I: :■C'E; Y": MII;! -I'I'Se!=N•NENENIN• .swil■• EmmuummuuarAKI:r4_ IIIIKIAilai l 11.1112r4 ' 1 lW1111O: • ,' MI , _71•111• MO •'M '1. ; "t„ .e,; IR • 1111 lb 1111 turtaAmmift..EltiAluoulutEcommoun..Arzt..:11,wiAmmurrrx Kai mammmi mli NI • Num Num° XIII11111 IIIL toNcr#441,111,11 M.RITITTIMI!!. r.I.I!...11.11 IT!IP111:1P.11 m . 4 , ' !j• ITU_ ; _Li115.47 . EE's 74 -7.04707440.1- 4W77777 r.4.d.111. K. k.7-, .m_ . , _N, _ , 136c! 111118111 iii...' '. . 0 r I Om, o1 i.I .IIIIIt 1111 , L- al!! cs go, I .[ ..; .9 4LI,- 1._9 . •E I -• 0'_L I i ;wintlikl,•.a • .00 7; . . . a •1111111 11111 I. 1 r-.A. Y-.. 1.7.. . -. . .1 _._. . . .• M , AI[ Iif_' Ii ill—:Gil ifill 1.4 MER, Pillnmufe _,A, ■■_ /:. 1141„141.1•z, - III • a ■ •••:, ., —I 1 . ,i,I Li1I I 32,' •* ri ----il- ■ -:Jc.•is men•,24• • silNio oil111c:XtEl: .-.111 Uri 1 8 •Er.• Ills ... Hrl ,. .11111 11 i', 1 H [I. . 1 I _IJJ 1lin!.11111110. MI11111111 T linogriffinIsm ivii• . I it, :. r. r Ct. Ni. 144144. i 11.1 ■ 1.4.0.11'.4.# 41,9 , -'I 1.-.16( . : .. -1`jek • w ■ •emu ; 1 , İ,I_ °um • MOEN'millimm :::Im •1111111:N iii1Jv• ± 7 a 1 1 ■u`11u Nu arm-I_j_i_ul_u_a-12. iii ...11 WS ■ 1111 m•Illur 1II IWO IMO ,' __L 1 I j_ j_ ••••11111111 igli III,- MUNI. Piluis umouummumou•• ••=1M1E1uNicur1Ems; • ; I I ' ' , ; j . 1 . , .._11.. . _:._1_,_1_1_' !_ •111111•1111; • ;I ' : ••••••24 WM■5101911110II • 115•11111••••=5.11•••••••••••1••••1111.1111X • • 11 il -1111-_,Tp_ _,_i_l_ I II, . – -1--:11 , , I ' ; 1 1 ' MIN •1111111111111OMLI I '!-r- 1I _L.L.I1_11 i I I 11111111 1 111 i 1i p_ ;_ 1 j] ..L!1 i. A I HH 1 ill liolp--1 1111111!!_■.•-• a.mo.nrighihmiiENNUI ir -ili! ' . i r 11_,_-__L4 , ..L...._4_ _I in •IFigMre 17


INTERNATIONAL BUSINESS MACHINES CORPORATION<strong>IBM</strong>PRINTER SPACING CHARTINE DESCRIPTION EIELD HEADINGS/WORD MARKS 8 Lines Per Inch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :<strong>IBM</strong> 1403 Models 1 & 4E■■■■■■■■■■..mmummummmu■■mummam ■mu■■■mum■ lammummsomminumm. mmammummilmmummossm... • ■■■■■■■■mu■■■■■ ■■■■■■■■■■■iMIMI<strong>IBM</strong> 407, 408, 409. and 1403 Models 6 and 7 ri••••M■INE•• EMI 1111•••MEINENII •11•••MMIIIMIMOIMMENNEMI••=11111111•11 -FT 1 r 1 MIIMMEMINIMIIIIMMI IMENEMMEMMIMIIMIMMIIIIIPOOIIMIMMIMMININ•111111111MIMIMIMMIIMM II NIMINIMIMIUMNIIMBEEMMINIMMMINEMIN <strong>IBM</strong> 1403 Models 2, 3, 5, and 1404 a,MIMI ■ MIMI nu I 11111111MINIMIIMMIMMIll••••••111■8••■■■■■U■ ■■ ■■■IM ■■■■■■■••■■■■■■■,==E=IIMINIMME■■■■■IMIIMMIIMIIMINIM■■■■■ ■■■■■■■■■■■■■■■■ ■■MM■M■■■IGL UE1111311111111111111 2 1111E11111 4 5 67 IlliallEMEIMP 10 1.1111111111/1mappap00mmemap000omp m080onegognigoomown6mp0121456712008834567ao0l21 4.56709012134.512000OBES00050001011000M0ODUSE00013000IIIIIMIIIII IIIMMIIIIIMON<strong>IBM</strong>IMMOIESIMEMMEEMBOMBEIMENEIMIIMMINEMISMIN =MEW•I MINIMIMINIMM■■UIMMIMMENI■■IMIIMM■M11111111PM1111MIIIIIMIIIII IIIINIMUMMIIMMEM•••••1110•••MIMMIMIIMMIIMIMMIMMINIMMIIMEINIMIMIMIMMIIIIIMIN•EIMMIMIIIIIIIMIMMEMINEMBEIMIIMIIIII•MMIMIMMEMENSIMMIIMMMI■ME■■■MI■■MMI■■■■■MIN■MINIMMI■II1111111111011111■MLIMMENNEMMINMNIMININIMEIMINIMMEMMIIMINIMIRMOIMIMENNIIMMINIMMODIMMUMINUMMINIMIN FUW111111111111111111111 11111 .1111111111111111111111EIIIIMMINIM',k ,, IIIIIPIIIIIIIIEllitv: i.8:1111:v: rmr: !:I I:1 If! Ur: 01: Ftlh Ur: III A ' AVIIIK01■:1111:1 :0: rm:1:111:1:4■: ■:cm •0: No : 4,A.:0 :46 lowomccommliN Imunimmommisamin. issumimmomoni113MV7.474707.1111111q47 V UV MOE Krli: 'F. T: RIK r:4:1": r111474111111PRTACFA 'St! MI: )'.1■' ooriooptwin ". Te.01,701101011fill1111 111111111111MIIMIIMMENNIMINI11.111111111111111MIIIIIIIIMENII2 ■II■IPIIIIIMI111117i7 KirE417171 ASV X171NrAVi 3 :1 . .111■114■111111:INK rt71 1:17 NM PIENNEig rAilr.4 -7411111r Kir.r.4T41111110111111111:111Eir. r. ■130)71AP111767 iNr. rircr HMV'ARNOW rirflarANNIKII1TV MMV t11 7. ■70:1177111111V7V ril: NV :mow i.4Ki):411V07 PM :INT r. l'EMIIIIIMIMMIMIUMIUM•••IIIMINIM•••••••111••••••••MMINIM••••••••1NIM EIB■■■MII■■■■■■■■■NINIMMENIII■IIIIIIIII■■■■■■■I171111111111•11111IIIIPIIIIMIIUM TM onus 7071NR: noir. ,'' r. MK r r. Mrir. MK ■1174■74111r. ', r.7111F.1.17+74111■7071: or. or. rtli<strong>All</strong>i7ir. I: MiliirAtAIN171:44:1W: I:1: I: 01:11:4I: ■71111:111: IA: Mt 1'. I: I:111: 7.11:1KINI: VA KIIIMINIMIMMIlitogarammummummintimgm mmosiummmimmis glimmingsmo mmumumom IIIIIIIII ommummummommommumumnsimum............m1111941 InkMEMIMMINIMINEME•MIMMIWIN IIMMIONOMMENIN II MilErIMM MIMINEMIll 1 ME•W• MIN•MMEMOMMIIMEMMEINIMMINEBOMINIMIHMENIEll•1011111,11 MEIliliniMIMIIIIMMIMIIIIIIMMIIMIMIIIMMUMIIMOMIIIIMI . II g 11MMIEMEN•IMMIMIRMENINIMMInMIIIIIMINIMIIMffi•MNINIIIIIIIIIIMIE•p•MOMMUIIMINIMUIMMMIMMMINEMENI5 •rIMIMIIIIIIIMIRMIUMMI1. -'m-NIIIMIIIIMINIMMIIMMIMMINIMMINNIMM011i-gm RIP" --mums.... - -IIIMMINIMMIIMIMEMNBIPI--,IlmommummommluMmll R ImmoullummommEMP"'"--,.....Imommolowl.-- - _.•.....L


<strong>IBM</strong>TINE DESCRIPTION FIELD HEADINGS/WORD MARKS 8 Lines Per InchGL UE7, a aIIIIDMIIIIIIIIIIDMIIIIIIU1111111111111111111,1101111111II11IH11III:I11111141111111111111111.4111111IIIIDOIIIII111111■411111'!IMIDOMMI11111W11111111111111,4111110111110111111:1111101111111111111111111111M111'■111ID411101111RIMPIIMMIMW1111111111111100111111111111111101111111111041111MCr=1111111111111111110111101111111111111111111— . ,:4::!!!!111INTERNATIONAL BUSINESS MACHINES CORPORATIONPRINTER SPACING CHART<strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :<strong>IBM</strong> 1403 Models 1 & 4mumummammummommumminumumummommummummonummum ammumm■m■u■m■■■ ■■m■■mulim■■■■■■■■■■■m<strong>IBM</strong> 407, 408, 409, and 1403 Models 6 and 7MEMO OMIMMUIMMUMMIUMEMMOMMIOMMEMMOMMEMMEMMEMMUMEIIIIIIIIIiiiiiiii ERMO MMEMMEMMONOMMEMMEMENOMMUMMIMMUNC<strong>IBM</strong> 1403 Models 2, 3, 5, NI and 1404MM■IIMI■NI 1111I IN 9,11.11ENL I=131813M11111111PMIMMEMEMMEMMEMMEMMEMMEMMERNMEMEMEMBOIMMINIMMEMEMMEMOMMEMMEMOMEMOMMUMMEMBEIMMEMMERMUMMEMINMROMMENSEMINIMMOMMOMMEMMOIRO011moo 1 , 10 1111001111111111613120511:10111113EICIEICIODUBEICIEMEHILEMBEZIMIREIMMEEMOUIDIEMMIZIOCIBEIEILM1010006111013019130061110001100001EIMODOEDOMmmummummummommammemmummummummommommummummumummummumummommumnsommummummSUMEMIMERMEMOMMOMOOMERIMMUMMMERIMMEMMOOMMOMMOMMEMMEMMESIMOMMEMEMMUMMERIMMEMMEMBERIMMEMEMMOMMOMOSOMMORMOMMMOROMMEMEMENmmmmmmmmmmmmmmsmmmmmmmmmmgmmngmmmmmmmmmmmmmmmmmmmmmmsmmsmmmmmmmmmmmmmmmmmummmmmmmmumm mmmmmmmmmmmmmmmmmmmmmmmmwammummommommommummommommommumummummommuummumummumamannommummummommumrommummummuouniumumummummommommommonwinemammonsunnommunsumumWOBWIWIWIWW.W4SREMMJY4 1,,TVLt,IIILUYIEW.O:CAIWWWIRREMMUIRMIROMMUMMEMOOMMMERMEMMEMMIMMEMMOMMEMMEMEMCW.riCiAREMEMMIMMUMNIMMIRAIMMERMEMBEREMOMORRORMOMMEMMUMMEMEMRIMMEMERMENIIMEMMIRERINOMUMMINIMMIIMIRMOMOMMOORMOMMOONOMMONOMIOMMUNIUMBOOOMMIORROMUMMORMEMONMEMBREMOMMUMENMOROMMOMMOONISENROMBUIMEMMINERNMSSMERIMMIMMOMMEMORMIMIMMOVIMINIMMORNIMIMIROMISMr ∎'/IE ■'.A:(11' 4:01F .4:411:441 :6: a:1■1111`1'.• Er CIQIIMIMM/t 1:11: FM: ',9111L !3.I / lt ■M■ENIL '.ALrummummummummummummummummummummummussummummommummummummommumummummomminmmmumuummmmmnmmmmmmmmmmmmmrmmmmmunmmmmmmmmmmmmmmmumnmummmmmnmummmmsmmmmmmnmmmmmmumummmnmmmsmmnsmmummommommumisammun mmnmmmsmmmmmmmmmummmummmmmlirumsuummmuammmmmmmnmmmmmmgmmmmmmmmmmpmmmrmminrilowwwciiimiNlAu4Aiminowrcomwmilumwalwrougimm mimmumommummummumummummummul v(1mulimmummimmummarumummumminnummommammumumma IIIMINEMIIMIIIIIIIIIIMMIIIIMIIIIIMIM1111111111111111101211•111110111111 mmamilmmummumummummummusummummummommummommummummummummommummommommummummmumummommunummummummummommommonnSIOOMIIMMUMMINIOMMMOMSOMMIMMlimmullomMillnummUMOIMIONOIIVEmr4rwmumwc,'4ElreAlmmommummunumummummommummummummummummummumummummommommummommommommonswOMMISMIUMMEMOMMOMMOMOMMINIMMINUMMOMOMERMOMMONUROMMORMENIUMMUNROMMOMMOMERMERMOMMOMOMMOOMMOUNOMMOMMOMMUMIOSMUROMCIMMEMMEMOMMIERMOOMMEMOMMOMMONOMMOMMOMMOMMOMMOMMOMMOMONOMMEMINIROMOMMERNMEMORMOMUMMOOORREMMEMMEMEMOMMOMMOMMIOMMEMMOMMIUMMMOMMEMEMMUMMUMMUMMIUMMEMOMMOMMIMEMMIIROMMIUMMUMMEMMUMMIIIMMOMMEIMMUMMEMMEMMEMOMMOROOMMMOMMOMMIMININOMMEMMIMIUMMOURIMOOMMOXIMMUMMEMOMMOMMINOMM MMMMM OMOMMEMMEMMEMMEMMOMMOMOMOOMMIUMMEMSOMMOOMMUMMOIMMOMEMORM MMMMMMM OM MMMMMMMMMMMMMMMMMMMMMEMMEMEMOMMOMMIVALECNE,AVAMIAMNIWAMMOMMOOMMMEMMEMMENEMMOONOMMEMOMMOMMOMMIMMOMMUMMOWAINVYWAVAMOMMMOMOOOMMEMMOSMOMMMMOOMMOMMINUMMAIWOMNIMIMMUWAIMMINIMMOOMMEMBOMMOOMMINUMMOMMUMNIMMOMMUMMOMMISMATWITAIMMIONOMMOMMONIMIOMMIMMMOMOMMUMMOMMOMMOMMOMMUMMUMMOMMUMMOMMOMMOMOMMEMEMMOMMIIIMMEMEMMEMEMOMMEMMOMMUMMEMOMMEMUMMOMMOMMIUMMOMMUMMEMOMMilMINOMMIMMEMOMMEMOMMINUMMIUMMOOMMOMMUMMINIUMMOMMEMOMOINMEMMEMMUMMOMMUMMEMOVEMMEMOINUMMOMMOMMUMMOMMOMMINISIMMELmmmmmmmmmsmsmmmmmmmmuummmuummmmmmmmmmummummmmmmpmmmmmmummmmmmmmmmmmmmmmmmmmmmmmmmmmmnmmummmmnmmmmmIIMMOMMEMMOMMEMMEMMOOMMOMMEM MMMMMMMM MOMOMMOM MMMMMMMMilimmummommiummumummummuummommummommommummimmummilmmummummummummommommomummunummummommummumummanummummumummummummummummommummummummummuummummMMIIMMMINIIMMUMEMOMMORMINOMMIONROMMOROMMOSOMMOMMERN MIMOOMMEMIMMOMMUMMOMMEMMEMOMMUMMOOMMUMMOMMEMINSOMMMOOMMUNIUMMMINSMNmmummummumummummumumummommumunummummommummummommummmumennummusumuummummumMERIMMUMIIRMOMMINRIMMEMOSIMMUMMIUMMINNOMMOMOMMEMIMIMERIROMMIVINNOMMEMORMORMOIMOOMONOMMIUMMIVIMOMRSOMOMIMIOMMOIMMMEMOMMOMMERNIMMOMMOMMOMMOMOMMUMBIONNUMNIMUMMERMUMOMMEMOVERROMMERMERIMMOOMMIRMOMONSOMMUOMMOMMEMONIMOMINIMMOOMMIMUMMUMMEMMEMOMOMMIMMIUMMOMMEMEMMOMMIUM MMMMM MOOMMIIMMOMMEMOMMUMMOMMOUmmmmnmmnmmummummmm mmmmuumun mmmmmmmm mmmnmummmmssnnmmmmnmmmmmmm gmmlmm mmumu mmmmmmmmmmmmmmswmommummannummmmummummummummommommummpummommommimpe MMMMMMMOMMONOMOOMOMMEMIENNOMEMMORMONW,' MM = M MM RINOMMOMOMPT MMMMMMM -TlimummomMIP T - M -_mmommommommumum- MMMMMmommi= M --____- MM –=111111114111.010--MMMMMMFigure 18.


<strong>IBM</strong>LINE DESCRIPTION FIELD HEADINGS/WORD MARKS 8 Lines Per InchGLUEINTERNATIONAL BUSINESS MACHINES CORPORATIONPRINTER SPACING CHART<strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203SMOMMOMMUROMOMMUMMEMEMMIMOMMUMMEMSOMUMMEMEMOMMEMMIMMISMOOMMI MEPrint Span<strong>IBM</strong> 1403 Models 1 & 4Minsumun mammummummemn MMUMMEMMEMMEMOM MEM ■■■■■■■■MM 407,408, 409, and 1403 Models 6 and 7ME■■■■■■■■■■■■■■■■MOMMEMMEMMEMMERMEMMISIMMUMMEMMEMMEMMEMEMMOMMOMMUMERMEMMOMMUMOOMMORMOMMOMOMMUMMUMS ■IMME■■■M■■■■■■U■■■■■■■■■U■MMEMEMMEMEMMEMIMMEMMEMMOSEMMEMEMEMMIMEMEMMEMMUMMEMBEMMIMMIMEMEMEMMOMENMEMEMEMMIMUMMEMUMMIOMENNEMEMMEMMEMEMEMEMMMEMIIIMM•111111M1111■MMISIIME■ ■■ISi ng3rJEIDEEEIDOBEILIENICKICHUBEILIERMIWOUIREMMEMMIMM ISEICILIMILIMMEMINIOLIDEBTIODEMMBECIUIEEICIOCEINEW EICHMEECICIIIIINIIIIIIREEMMOMMINOMOMMIMMUMMEMMUMOMMIMMOMMOMMUMMOMMIUMMOMMUMMONMEMMOMMEMMUMMOMMEMMOMMOMMOMOMMINOMMUMMOMMONOMMOMM1111111011111■11111P4IMINMOOMMOMMEMOOMMEMEMOMMOMMOMMUMMEMMOMMOMMOMMENOMMEMMOMMOMMEMMOMMIUMEMOMMOMMOMMUMMIMMUMMINIMMOMMOMENUMOMMOMMmummommummommmmummummummummenummummommummuummummummummmomommummommummminimmommummummmumumummimmmimmummommummommumummwMUMMEMMUMNISOMOMMOMMUMMOOMMOMOMMONOM1111111111111111:, MIMMEMUMMEMMEMMUMMUMMMEMMUMMUMMOMEMMENNEMOMMEMOW.1051:1dM #1.1110111MMEMEMME MEMMEMOMMOMMEMMEMMIKINEMMEMIMMOMMENEEMM1111111111111111 IMMUMMMINIUNIMMINIMMOMMUUMNIMMEMIMEIMMIUMMEINIMIMMIMMIIMIWIEMISMIMMMEMIEMMISIMMel IS Zivill:411:1,411.14.97,.:': !a: !,1:1111A VNI I. II: &CI,: :1111111111MICh zU VA>M4i: IMMUMMOMMISIMMEMINUM111101111111 MAMOMMIMMEMMENEEMOMMMENIMMOMERMEMEMMEMIUMMEMOMMEMENUOMMIMMAZIMMOMOMMEMMUMMESIMMOMMEMMUMEMMEMOMMOMMINUMMEMw L•mimmic Tun■■m■n■ur! Or; !Arai! 1"1:41: ,11111117 ZIT 1:11.91rINIMINI■n■ I i 11*: simmun MINNEIMEMMY Y. ;II IN11111041111111IIIIIIIIIMMWONNNOWCOMTWFMAYIV,WW, ,,WYAKMAMINIMWMPAUAAN Yr2,22F2YOYI,YY1IPOWAMOOMU.011WOUIPAT,WJ4WHLUY.T.1110M7N74V4.1RMI Xi7VAMOYWAIMPIUWIFYITYMENOWNEMIGTOMMPANNTIWI2MAOPVTAPTMMIONWAMOMIONMAIMWUM9LarTVPUVEIDOUVOMMOMMNIHNIUMUllillrl:oIMPUNIMI maintweallursnmporlrirnmqualicvmmosimmAmulwormommangnrwrInnowmaimmomillmiTarryilummomumummr;IlmVANDAADIWATC WrnaVOVEIVITODPIZTIN17014AWNWANWWWWITLTUUMWITIMIWNUMOIONOWN7WATIMINITIVALaPIMMUCWNWIMMIEs: SA: 1,11f: La v: /c9c r, ic9:1 icV. FY: 71:41116: iNNINIIISToT 707 ry,v, F A,: TAT 72/c I t r: Ms7(7 117. S:s•Mr.iiiinaIIIIIMUSTAWAIIFFKOrMLIT, LIMMCIETIMOTY29:1FM 74PE47.1747.4:71r4Z ■7471,741111T: ry 1r, r ow. przimmAr i: r,r7v., MOM,: r, r,r w Nay, r?r, 1,1r1r,V3f, rr. PliAs:111MUTH OSIMMUROOMMUMMEMONIMMOMMOMMOMMOOMMUMINIMUNIMMIIMUMMIMMOIMINUMBOIMOMMISMOISMOMMEMIUMBEIVISIMMOIMMINIMIMMIMMEWWI IN AMMEMEMINEMMOMMINIVIMENOMMONOMMOMOMMOOMMOMMOMMEMIMMEMISSIMEMMOMMUMMOMMEMMIUMMEMMEMINUMMEMEMMOMMMOMMEMMEMMEMOMMINOMOMMIMMMUM III MINIMMINUMMINUMMIMMIUMMIIMMUMMINUMMIMMININIMMIUMMUMMEMEMOMMINIMIMMIHEMMEN.OMMOMMNOMONOMMOMMOOMMOOMMENIMISOMMOMOMMOMMOOMMEMMEMOMMEMMOMMOMMEMMOMMEMOMEMMEMOMMOMMEMEMUMUSOMMEMMOMMISMIMOMOMMIMIIIINIIIIIIMEMOMMIMMUMMEMMUMMINMEMENIMMIUMMUMMUMMOMMOMUMMOMMOMMOMIMMOMORMOMMINEMMUMIMMEMEMOMMOMOMMMUMBOOMMIUMIMMOMMUMMSMOMMOMMUMMEMIMMIUMMOMMUMMEMMIMUNOMMUNOMMUMMEMMIUMMUMMEMOMMUMMOMMOMMOMMOMUMMEMOMMMOMMOMMOMMEMOMMEMMUMMIIIINIIIIIIENNOMMEMMIMOMMOMMOMEMMEMEMOMMIMEMEMUMMUMMENNEMMOOREMINSMEMOMMENUMMENNEMEMMEMEMMEMEMOMMIMMOOMOOMMIMMEEMMEMMINOMOMOMM111■1■1POIIIII AMMEMEMERIMMOIMMUNIMMUMNIMMEMOMMUMMOMOMBOOMOMMOMMUMUMMIMMUMMOMMIMMOMMOMOMMEMMINOMMOMMOMMEMEMIUMMUMMOMMUMMIOMMIMMEMEM11111111,01111111 AMMEMMEMMOMMEMEMOMMIMMOMMUMMENUMEMMEMMEMENOMUMMINSOMMEMMUMMBEINERMEMMERMMEMEMEMMEMONEMOMOMMEMMUMMEMINUMOMMUMMMOMMUNOMMINIMUMMIUMEMOMMOWMMIEFFUWWITUUYI9ITVYA Y7PWAIMOAAVArKiWIEVMU,AMOWAVAIMIINi7NU. ur.umwomwmwrywpmmumII 1111141111111MEMOMWitalVV4INJJ1/44JM4J1wIrl ■-rwrammummummmommonsminmsommomminammummummin immummimmuminammiummul MMIMMOMOOM MIMMOMMOOMMMEEMMEMMEMEMMOMMOMMEMOMMENOMM MEMOMMEMEMMOMMEMOMMEEMMOMMUMMOMMOONOMMVIIMOMMIMMIUMMUMMOUIMMOMENIROMNIn MMONNMMOOOM:::::::::::■■MMMMMMMMMMMMMMMMMMMM OMMMM :MOMMMMMMM MMMEMMOMMOSIMOMMENNEMMEME MMUMMOMMEMMOMMEMEM ommpn--- 1m ----emilmumm-=-----=2.-Tummommusomm -m==- ----mmommumminummum.2.1MMEMINFr-'''..4■11111MMOMMOMPIE■■E■M■■■OOM■INE■■OM■ESEM■■MME■■■■II■MFigure 19.


<strong>IBM</strong>LINE DESCRIPTIONIBAINTERNATIONAL BUSINESS MACHINES CORPORATIONPRINTER SPACING CHARTFIELD HEADINGS/WORD MARKS 8 Lines Per Inch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span<strong>IBM</strong> 1403 Models 1 8 4EMMEEMEMEMMEBOMOMMOMEMMOMOOOMMIUMMOMMOOMMEMOMMUMEMEMOMMEMEM ■■••OM•EME• •MM•EM•E••I••••EM•••••ME••••MI•••ME•••INIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII <strong>IBM</strong> 407, 408, 409, and 1403 Models 6 and 711••MI1•••MM•II•MIIIIM••I•1••1•IIIIIIIIII•••MllE•el••MMIIIIIIIIIIIIIIIIIIIIIIIIIMIM•ZN •• EMEMENIMMEMMEMEMEMMIUMMUMME111111111111:::::::: MM 1403 Models 2, 3, 5, N1 end 1404 ■1111■•11=1.1. - IMMEMOMMIUMMUOMEMEMNIMUMUMMUMMWMOMIMMEMUMMEMMEEMOOMMEMMOMMEMMEMMUMMOMMONOMOMMUMMONMEMOMOMMOMOMM I•E•OMM•MMMIIIIIIINIMIEMINIIIIIMI====MMEMMUMEMOMMEMMEMEMEMMEMSMINIMMEMESMEMMEMEEMMOMMEROMMOMMUMOMMMOMMEEMMEMMUMMIMUMEMMEMMEMMEMEMEMEMOMOMEMEIMISOOMEMUMMIGLMAIMME1111111MINMIIIIIIIIENIIII11=1•11•1111E11111111111:1=11111EMIOMMIIIIIIMEIMIIAnoonnammocummanommesomouuonsommouRIERRIMPlonmonnumonsmommonnomoonuocommonnuonmencononommongsnomMINIMUM 000 MMOMMIUMMOOMMIMMOMMEMMIUMMUMOMMOMMMOMMOMMOMMOMMOMMIMMUMMUNIUMMOMOMMUMMOMMIMMOMMOMMUMMOMMUMMEMMIMMOMMUMM111111111111111OOMMEVIMMUMMOOMMEROMMEMMUMMEMEMMUMMEMMEMOMEMMIEEMORREMIMUMMOOMINIMOMMIMMEMOSEMEMBEMOMMUMMEMOOMMOVIMEMONIIIIINIIIIIIMMIMMOMMEMEMMEMEMMIMOMISMUMMOOMMEMEMMOMEMEMEMNIMIUMMEMMUMENIMMEMEMMEMEMIUMEEMMOOMMOMMOMMEMOMMEMEMMUMOMMOMMMEMMOMUMMUMOMMEMMUMMEMMUMMOOMMOOMMOMMUMMUMUMMUUMMEMEMOMMIMMEMMONOMOMMUMOMMMOMMOIMIMMINOMMEMMEMMUMMOOMMffl111111.1111111EMMOMMUMMOMMEMMEMOOMBEMOMMMUOMMEMMUMMINIMUMMOMMOMMUMMEMEMEMMEMMEMMEMMINIMMEMMEMUMMEMMOMMEMOMMEMEMENMEEMEm1111D4111111EMMEMOOMMUMMEMMEMMINDEMMIMMOMMEMEMOMMOMMEMOMMOMMIUMMOMENIMMIMOMMEMEMMOMMUMMEMOMOMOMMOMMOMOMMOMMEMMUMMIMOMMOMMOMOff•OMMUOIIUUIIUMIUMMONEMOOMMOMMUMMOMMOMMOMMOMMEMOMMOOMMOOMMOOMMOMOMMUMMUMMEMEMMILMEMOMMOMMUMMEMEMBEMEMMEMMEMOMMEMMEMOMM11111114111111 MIWKWOOVAIRMIMEINIMMOMMOMMEMUMMEMMIUMMEMMIMMUMMIMMIMMIIIMOMMOOMMUMEIMIIMMEMMUNOOMMOMOOMIMIOMMOMIMMOUNION_11111■11111111 RE- I M111111,4•11111 1111W4 VOIMMOOMPEIHMOMMEMOOMOMMINUMMIOMMUMMOMOTIMINOMMEAMMEMOINMI ROUMMIMMIMEMOMMUMMEMOMMOMMEMMOMMEMMUOM11111111411111111IIIMM6C■NNWRWAMMIIMMOMMOMMEMOMIMMIMEMMUMMEMMOMMUMMOMM IIIIIIIMITIMMONEMMOMEMMOMMUMMEMEMOMMOMMOOMOMMUNUMMUMM11111111111111MWOWWORUMMOMIMIMEMEMMIMMOOMMEMMUMMEMOMMOMMEN • =EMMEN IMMIMMUMOMMIUMMOMMIUMMEMMUMMEMMEMMEMOMMUNVIMMMMOMO '411WAIRIMINMOMOMBIONIMMIIMMUNUMONMIMMEMIM MINIMME mliMmilmummommumniumummummummummosumm11111111151111M MK, ORTMEMEN - Y. --- MMEAMMUMMONEOMOMMOMNAUMMOMMEMMEEMMUMMUMMEMMIMMUMMEMINIMUMMEMEMMEMOMMEMMEMOMMEMMOMME1111D4111111 IWO 41..,CMINFAMAV:47../UOVVrIrKrWfAIVANUIVAMMIEMOMOMMOMMIUMINUMMONIMEMOOMMOMOIMMOOOMMOMMOOMMOMMNOMMEIMMERMOMUM1111191111111smou mwmmolummummumummummummumulimplimmUmmillIflIONNOONNIMONIOMMUM IMINOINIMINimummummIIIIIMIIIIII EM067■ ORNMEMMIMMOMMEMMOMMUMEMMOMMEMMOMMIUMOWIRMEMMENINIME memmEMOIMMEMOMMIMMOOMMM O MONEMEMEMMEMMEMEIMMOMMIN1111D4111111 MENNM 'A. ;7416VMMOMIMMOMMOMMUMINOMMINIMMUMOMMEMOMMINUMMINOMMOMMUMMMUMMMOMMIUMEMMUMMEMOMMEMMUMMEMMIMIMMMUMMOOMmosuro wiwunommummumummummummummum MOOMMUMMENIMMINIMMUMUMMUOMMIMMOMOMMOMMOOMMIMMEMMUMMIMOMMEMMOMMunnamnOMM0576 .111,,..MMIUMMOMMIUMMIUMMOMMOMOMOMEMOMMUMM IMMEMBISMIUMMOMMEMOMMEMOMMOMMUMMUMMENSIMUMMOMMOMOMMIMEMMOMMOMMIIII04111111 II MIIIKKURNIMMOBIONVOINIONNIMMIMUMOMMIMMOMMOVIMMOOIMMMIMINEMMMIIMMOMMIMEMMEMEMOMMUMMEMOMORMIMIUMMINOMMIMEMIMMOMMW•••••••••••••••••••••••••••11111112•••••••11111MIE•111111111•111MUI•M•11•111•M•IIMMLIIMINIMIIIIIIIIII•MIMMIIIIMMIIIIIIMIMMIMIII1111111411111M 00000EZll usimmommumummommummummommommummummommemmummumumminummummutignummmummummummummummw---OMMEMMUMMUMMOMMINVOMMINTIMMUMMOMUMMEMOMOMEMOOMMUMMOMIMMOOMMEMOMMOMMIMM I -- NMOMMUMMOMMUMMUMMIMMEMM--...,...-. MOOMMOR0 — - --TRimumwm. -,PMEMEMOMMUMMEMEROMOIMMIMMIMOMMEMMONEMOMP.. 11111MMEMMEMMIMOM- '7`11111MMOW.' ---TmOMMONMEMOWT - ■ .Figure 20,CADG71O


C'TZ anISTAO1-1_MMM-iiiimommompqmommommumummummummumiimmitimilimmummiiiimmummum ----"4.11111111: 11114■1/11111M11111111111111MMMEMIIIIINEMMIIIIIIIIIIIIMMA1,15:1:IMMEDIIIIMWOMMIEMIIIIM,VIIIIIIMMOMMEMEM1111111MK111111/411111mmummonsommummumnimmummommummemisimimilimmummummummummommummummummommummumm11111114111111MUMMONIMUMMOMMIMOMEMIUMMOMIUMMOMMIMMINOMMINERINIONMIUMMUNIONIMMONIMIONIMMOMMOMMUMMOMMIVIMMEMPOIVIMMOMMEMMA1111119411111mummommemmummummammimmmonsammwwwyNAlumpAwom■Anumma&mhmillummorJowomilow■Amm11111194 111HmsmmmmmmmmmmmmmmmmmummmummmmmmmmmmmmmgpmmgmimrvpmmsumummlmmmpmsmmgmmmmmmnummmmmmmnmmmmmmmmmmrmmommMUMOMMEMMIUMMEMMOMMOOMMOINIMMOMMOMMOSIONNOMEAMMENWIMIMINIONOOMIAMMINIMMIMINOMMOINOWIMMUMMEMBOMMEMMOMMIMIIIMMUMBmmClICCD1111111411111MMEMOMMEMMEMOMMUMUMMIUMMOMMEMMOMMIMOOMMOMMEMUMMIIMUMMOOMMOMMIIMMOMMEMMOMMOMMOOMMOVOMMOMOMMOMMOMOMMOMMIMMEMMOMM1111111411111nmmmmmmmummmmmummmmmmmmmmmmmmmsmmmmuummmmmmmmmmmmouuummummmssmmmmmmmmmmmmmummmmsmmsmmmmmmumsmmmmmmmm1111111,411111MMUMMUMMUMMEMEMONNOMMOMIMMONOMMIMUMMIMMIMMOMMEMIMIONIMIMMOMMIMUMMUMMUMMUMN MIINUOMOMIMOMMEMOMMI M MANUMOMMAM1111111411111ummmmmmmmmmmmmmmmmmumsimmmmmmmmmmnmmmummmmmmmmmmmnmmmmmmmmmmmummmmummmmumsmmmummmmumsmummuummmmmmmm1111111411111MMOMMUMMUMMOMMMEMEMMOMMEMEMEMMUMMMOMMEMOO MEMOMMMUOMMOOMOMMEMMEMEMEMMUNOMMOMOMOMMEMNIMEMOOMASOMMOM.MMUMMIMMIMM EMOMMUMMUMOSMOMMOMMOM OMMOOMMOOMMOMMEMSMOMMOMMIMMOOMMOMOOMOMMUMMOMMEAMMINVOOMMOMMOMMEMEMMAIMMEMEMMO11111114111111111111411111NIBIIIIIIIIIMI11111111111MIMMI1111 11111111111111111111MUMIMMIINIMIIIIIIMIUMEMIUMMIMMMIIMUMMUMMMINIMIllmummumminnommommummumommommimmimu N1111119411111mmommonammommummoommommummommummummommomm11111111411111MMOMMEMMOMMOMMEMMOMMOMMOMMIMEMOMMOMMOMMOMMOMMOMEMO IAMMEMEIMMEMMOMMEMNIMOMMINUMUMMMOMMESEMOUVOMMUMOMMOMMOMMONM111111,411111M MMMMMMMMMMMOMMMMMIOOOOMIMMMOMMMMMMMMMMMMMMMMMMMMMII MO MMUMOMMOMM/MMEMEM MENWEINVIMMMAEMEMEMMENIMMIMMOSOMMIAMMUMM1111111411111MMUMMUMMEMIUM OOMMOOMMUMMOMIMMEMOMOMMOMMOMMEMMOMM EMMUMMUMMEIMMOMMOMMOMMUMMOMMEOMMIMOMMUMMUMMEMOMMUMMIIMMUMM 11111114111111111111411111IIMMIIIIIIIIMIIIIIMMIIIMMOMIIIIMMIIIIIIIIIIIIMINIIIIIIIMMIIIM111111111111111111101111111111111111111111111111111111111101111111MMUMBEIMMIIM 1111119411111OMMOMMUMMUMMOMMOMUMMOMMOMMUMMUMMONIMMUMMUMMAMMUMUMMINIMMINUMBOMMOMMUMEMEMMUMMEMMOMMIMOMMOMMUMMUIMMEMOM 111111/411111IMMESUMMUMMOOMEMMUmmommommalMUMMOMMEMMOmmommummommenVEMMOMMUISMOMMOMOWAMOMmumMUMMOmmommmumEMOm 1111119411111MMUMMOMMOMMOMOMMUMMUMMIMUMMIIMMIUMMOMMOMMUMMINOMOMMUMMEMAMMEMOMMEMMUMUMMOMOMMUMMOMMEMMIMMIMMUMMOSIIMMOOMM 1111111411111Neeeeeeeeeeeeeleeeeeleleeeeeeeeeeeeeeeeeeeeeeeeeeeeeeel/IIIIIIeeeeeeelleeeeeeeeeeeeeeeeeeeeeelleeeeeeeeeeeeeeeeeeeeelleeeee•U I 1111.11,411111MMOMMOMMOMMEMOMMOMUMMIMMOMMEMMEMOMMUMMOMMMAMMOMMEMUMMOMMEMMENAMOMMOMOMEMMEMMEMMOMMUMMEMEMOMIMMIMEMEMOMMAIMMOMMS 11111111411111MINOMMIMIIMMIMEMIMIMINIVIIMMENOMMIMIMMIMUMMUMNIUMMUNIMMOIIMMUMIMMIMOMINUMIIMMIAMMIIMMOMMIIMIMEMMOIMIUMMIMM 1111111411111mm MMMMM MEMNON= MMMMMMMM mumminiMEMEMMEMEMMUMMIMMIMMOOMMIUMOMMEIMEMMEMEMMEMMEMOMMOOOMMIMMMEMEMMMEMEMMEMEmmummomms 11111110411111WMMUMMIUMIUMMOMMOMMOMMUMMEMMUMMUMMUMMMOMENOWNEMOMIMMEMMIIMMEMOMMMOMMUMMOMMOMIVIMINIMMIMMEMOMMEMMAIMMUMM 11111141411111LIMUMMOMIMINOMMOMMOMMUMMUMMUMMUMMIUMIUMMIMMIMIMINUMMUIMEMMIAMOMOIMMIMINIMUMINOMINMOMIMMOMIIIMOMOMMIIIIMIMIUM 1111119411111MOOMMEMMIOMMEMMUMOMOMMOMMOOMMUMNIMUMMUMMEMOMMOOMMOMMOMMUMMOOMMOMMUMMONIMMOMMAIMMIMMUMMOMEMMEMMEVIMUMOM 1111110411111NIMMINEMMIUMMEMMEMMOMMOMMOOMMOMEMMOOMMOOMMEMMOMMIMMISIMMUMUMMEMOMMMOMMOMMOMIMMOMMOMMAMMUMMIMMUMMEMMEMMOOMMMIMO 1111.0411111111MMUOMMOIMMENOMMOMOMONOMMIMOMMUMMUROMMOMOMMOOMMOOMMUMMOMONIAMMUMMMONMUMMUMWMOMOOMMEMOMMIMMOMMEMOMMOMMS 1111119411111MMOOMMOMMEMMEMMUOMOMMOOMMOMMUMMUMMOMMUMMOMMIMOMOMMEMOMMUUMEMOMMMOMMMOMMOMMONEMMOMMOMMOMMOMMONOMMANUMUMCOXEDMMOMMOMMOMMEMMOMMUMMOMMMUMMUMMOMMIUMMIMMMIMMOMMUMMOMMEMMEMIMMOMMEMUMUMMINEMMAINUMMUNIMMUMMUOMMIUMNIMME11111D411111MMEMOOMMIUMMOMMUMNIMMUMMOOUMNUOMOMM NIMONOMMONNOMMONNUMMUMMOIVOMOMMOMMIIIMIMOMMIUMMIMMMVMIMOMMOMMMINIMMOMMUMMOMMMOMOMM M UMMUMMUUMI IMI MMMMOM ONVOO111111411111MMU UMMOMMUNU MMUMMUMMOMMEMORMOMMIMMIRMOMMOMMINUMMMUMMUMM OMMUMM111111,411111MBSOMMOMMEMOMMUMMEMMOMEMEMIUMMIMMMMUMMOMMAMOOMMMINAMMOMMOMMEMOMDMIMOMOMMOOMMMOMMEMMOIMMOMMUMMEMMEMINEMUMEmmom 1111111411111MMIIMeeee1e1e1e1eleeelelellleleeellelel0elleNelleee111leeeleeeeee1e7l1ee1elel1e11e1eeeeMOIONMIe1INIIIIeeeeeIIIIMMlleeei• L 111110411111MMMEMMEMMUMMEMMEMMOMMEMMOOMMEMMEMMISIMEMOMMUMMEMEMUMMEMSEMMENIMMIMMOMMUMMOMMEMMEMIMMEMEMEMMEMMOMMEMEMOMAMMOOMMA 111110411111MeeeeeeeeeeeeeeeeeeueeeeeeeeeeeeeeeeeeeeUeWeeeeeeelleeeeeeeeeeeeelleeeeeeeeeeeeeeeeeeeeeelleeeeee01111111411111WOOMMOOMOMMOMMOMMOMMEMUMMUMMOOMMOMMOOMOMMOOMMOMMEMAMMOMMISIMMOMMIMMOMMINIMMUMUMMEMOMMEMOMMOMMOMMONOOMUMMOMOMI111110411111WMUMMOMMEMMEMOMMOMMUMMOMEMMEMEMMUMOMMOMMEMNIMMEMMOMMEMEMOMMUMMEMEMEMOMMEMMINOMMOMEMMOMMOMMOOMMOMOSSOMMOMMIESSOMM 1111110411111MMUMMOMMOMMMOMMEMEMMOMMOMMEMMUMMUMMOMMOMMUMMEMIUMMOMOMMOMMEMMOMMIAWC6001111.1MMMYSWMMOM 011111411111MOOMMOOMMNIMENOMOMMOMMEMSEMEMMEMMOMMEIMMOSEMMIWYMOMOMOWAMMEMEMMEMMaladirMOviffkdi0001,4111111MOMINEOPAYAWA91.Q111111411111MMUMMINIMMOMMUMMUMMOOIMUMMOSMIMMIMMOOMMONMEMOMMIUMMUMBOOMIMMUNNUMMUOMMEMMOMMONOUeIMMOMMOBOOMMIMMIMIOMMUMM2 1111111411111WOMMEMOMMUMOMMONMEMMUMMEMMEMEMMUMOMMOOMMOMUMMUMSOMMOMMIEMOMMEMMOOMMEMMOMMOMMOMOMMOMMOMEMMEMMUMMOMMIMIOMMOMMIUMMM1111151411111WINOMMOMEMMMOMMEMMEMMINOMMEMOMMOMMOMMOMMEMOMMMUSEMEMMUMMMOMMEMMEMEMMEMMEMMEMMEIMMIUMMEMMIMEMMEMOMMEMMOMEMOMMOMOMOIIIIIIHIIIIIMOOMMINUOMMOOMMEMMINESMOMMUMMOIMMIMMIMMOMMOMMUMIUMIMMOMMIMMEIMMOMMIMIUMWA(46FIMMINOMMUMMOIMMAPAAliMMOMMMOOMMIMIUMMOOMMOMMOMMOMMOMMOMMUMMOMMOMOSIMMISIMMEMMIMMEMOMMOMMOMMOMMOMMOVIMMUMMEMOMMOMMUMMOMMOMMOOMMEMOOM 1111111411111mmummummennumummommummommummummuummannnummummum avrckwur4Diimoump1m1IIIII►UMIONmmommummummommuummummumminummumummummommummummummummontOmummummommumm111111►411111MMIUMMOOMMEMEMEMMEMMOMOMMOMMUOMMUOVEMMOMMORMEMOMMOMMUMMIMMOOMMOMMOM 34,1:1;Romitviulmu;lommi 111111,4111111imommummummommummummumummummunsummummuminummummummummumnimumummemumumm 1111111411111AMMOMMUMMUMMUMMUMMEMOOMMOMMEMMUMMUMMOMMEMMOMMOAMEMMOMMEMMMMCQYAM :791WHIMACiieWMOM MIII►411111wommummummummummummumummumumummumummummummummummommummummiiiiiiiimmumumimm 111111411111MMUMMUMMUMMEMMOMMEMMOMMUMEMMEMUMMOMMUMMOMMUMMUMMUMMEMEMOMMEMMUMMUMMOMMOOMMEMOMMOMMUMMEMEMOROOMMOMMOUS 11111111411111wmomMIMMUMMMOMMOMMOMMEEMMIUMOMMEMMEMMEMENMEMMUMEMEMMOMMIMMMOMMEMMOMMMOMMEMUMOMMOMMMOOMMEMMOMOMOMMEMOIMMUMMEMMO 111111,411111MUMMUMMUMMUMMEMOINOMMIUMOMMUMMEMMOMMOMMEMUMMINUMMOMMOMMEMMIMMUMUMUMMOMMEMOMMOMMOMMENOOMMOMMINMOIMOMMOM 1111111411111MMUMMEMMOMOMMOOMMEMEMEEMMUMMEMMOMMIMMEMOOMOMMOMMEUMMOMMEMMMEMMOMMIMMEMMUMOMMOMMOMMOMMOMMEMMINIMMMUMMONOMOMOM111111►411111HIMMOOMMOMMIMMEMUMMOMMOMMOMMUMMEMOIMMEMOMMOMMEMMUMMOMOMMEMMEMMOMMOMMOMMOMMOMMOMMOMMMOMMOOMMUMMINUMMUMMOMOMOR 111111,411111MEMENUMMIEMMOMMOMMUMOMMUMMIMMUMMUMMUMMIUMMUMMIOMOOMOOMMUMMEMEMEMMUMUMMOMOMMIMOMMOMOMOOMOMMOMMEMMIMMUNOMM. 11111114111111000MOUHMODOMOUMBOODOODUMB00001200012010n01200103130000NUEMB0003 UODEIBUDOLIE amanononuommonancoommononommonanonommug. .2-L.MEMENIMINIMMANINKEN 3n 19ponommonsmsonmsumnimmonsummtnumemummumemmommummummommommessommaECIZZ 16u. 'EN 't s l.PoW E991 WEIIMOMOOMMOMIUMM OM OOMMOOMOMMOMMOMM MOOMOMMOMOMMEMOMMEMMOMMEMOMMIMMOMMMOMMOMMEMMEMMOMMOMOMMOVIMEMOMMEMMIMMOMMOMM•MO,901,1 1.N 'E 'E E091 W811111111111immommummummommommoommommummummummum mmummummommommummummommummummommemmummommumummuummeL P E'. 9 1.1.°W COP! '609 'BOP 'LOP W91 11111111111111111111111111111111111111111111111111................................................................m- VV1 • 1.P.W EOP1 W81Eut318 Upd COZZ pus, 'EPP '40171 'COSI. '601, '80P 'LOP W9I121VHD ONDVdS 2131NI21dNOIlVa0003 SaNIHDVW SI3NIS118q31.11 Jed Sault 8 SNHVW CINOM/SONIa0114 °1311 NOIldltDS30 3,111C•1CO7:


<strong>IBM</strong>INK DESCRIPTIOLD HEADINGS/WORD MARKS 8 Lines Per InchINTERNATIONAL BUSINESS MACHINES CORPORATIONPRINTER SPACING CHART<strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203Print Span<strong>IBM</strong> 1403 Models 1 & 4MOSEMINNEMEMMEMMEMMEMMEMMEMMINAMMOMOMMUMMMOMMUMMINSMENSUMMEMOS BM MMEMMOMMEMMINWOMMMEMUMMOSOMMEMOMMOMMUMMOMMOMMEI<strong>IBM</strong> 407, 408,. 409, and 1403 Models 6 and 7111111111=M111MMEMME111 IMMEMMENSUMMEMMIMMEMM OM ME MEMMIMMONOMMOMMMOMMEMOIMMUMMUMOMIMOMMUMMill<strong>IBM</strong> 1403 Models 2, 3, 5, N1 and 1404GL UE1111104111111111111411111111111/411111111111119411111111111145111E111104111111111111411111111110411111111110411111111M41111111111114111111111111411111111111411111111nummumWID4111111MI1141111111°WIFigure 22,


INTERNATIONAL BUSINESS MACHINES CORPORATION<strong>IBM</strong>PRINTER SPACING CHARTLINE DESCRIPTION FIELD HEADINGS/ WORD MARK5 8 Lines Per Inch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :I1iO1\3co<strong>IBM</strong> 1403 Models 1 8 4Ii■■■■■ u■■niniiM■■■ ■■■■■■■ ■iiiiiiim■ ■in■■■■■ ■■ ■■■■■m■■■■■■■..■■■■■■■■■■■■■■■.■■■■ ■■■■■■■■■■.1<strong>IBM</strong> 407, 408, 409, and 1403 Models 6 and 7ninilinlin NI nolimmininnounimmillim molIOM■MIMMIEW O li IlOOOMM WOOMOMBIooM i<strong>IBM</strong> 1403 Models 2, 3, 5, N1 and 1404WIIME■IIIM■■■ ummininguninnonannenin inininninin EnnininnninlinnEn ■ ■■■■■■■■■■■ MOO MOO UMWlimminlowniuma ■insmiliso sniumnon n ........amou ■.......................................E=EMEEEIMIZEICEIMECE=GL UE 0 1.1111111111 2 MMI 4 5 6 =1211111111=11111111111111110131•10MC=IIIIIIIMEcr. 0 0 .8, ElE101305113P/OURECIEMIEEICEEIE1 4 MEI 8 9111111041111111111111111114111111111IMMINIIIMIIIIIIMMannIMIMMIIIIIHMMInnlonnillinnninlin•nnlinininnanniniliniCILIEFKIIMICJOURE1121612017CREIE1135 , OD DEEMnillinnnnonnininiiiiNM7 7 8 CICIME113121061MOINIEILEMIX/INIEWIDEIMETIOBEEICIFICIEHMIDOMICIMEEMICI11111EMMMEnnanlinnnlinnilinninilinilillinninnlinin illinlinanninninillinionnnillininilininninnnninnonlin nioilimillinnill11111411111 ■111111IninnininliniliniiiiiiinnEMIMMIIIIIIIIIMIMMillninnillinninWEIMEIMinlilinillinInlionlininillnInfininilinnninillinnnillinnlainininInWillinmannainliniummunionnilinnuminno muninimintimilmmillimilinimmmilinnowinnommininiunntuni: Unlininn ■ Ili ., I» 1 r..MP. 1,ninPanillii■uumminnIermujimmommumnfflammemannousimMe , . lininillinninninillioninlinill1111111111 MinimmomnininiiinommoiniluilmnonnimillmninnEnnniiillinninininnniiiiininnonill111111111aMill SAW 0):,,1:72 ! Van?: .. 150111 .:1111.41Mr.d:1 I! 11:11: •IMMILIM■IMMW■MILOMMMUMMUNIVOIMMUMMIMEMMINUMOONOMMIMIMMEMIIMM9. 1 nionanill millinilionninnillanillin*Mininillinnillinimillinnunlnininin illinilliallinnnnlinlinnniiiiiiininlinilininlinlinlillinn II, llinInnInn INIM■LIMMIIIIMIMINIMIMMInillninlinnillinninnW11111111111111MME 11•111111MMIMMUNIMMMIMMIBINIMInInM111111111111112 1 1111111111Panill IciM10:1.! :Mann !i , v :11111111illinninow ,v, • »;InillIlininfinillEN morning linlinininirlillinnillinniiiiinMillinnMninnininilnilliOil inr:067111Mr, A.?AfIr<strong>All</strong> Iiimm . 11,1f . 1.2,!: HUT ni I IIII BMW rill rIMMINIUMIIIIIMIM WIMMILEMOVYAORMIF,KTIVV.IPFKIn MOW t2 .<strong>All</strong>WM. • •11•MMENMMEMMIIMEMONIMMIIIIIMIMIIMMINIIMIIMMIIMIllIMMIIIMII DEIMMOWFAMEArAMMUIWOUIIVIT: MMIMV. NrAM11111111111111111111 ULIOW0OLMONEUtTIVIIOTTTTM OBOSJOOKINOIwinos I IIMITIMIIIIIIIIIMOMMIMIMOMOI9 Il Mi 111 MOOMMUMM MINIM MMOMIMMONNOOMMIUMMUMMMOMOMMONMINI111411111111111 IMIIIIME r MENIArY MINN. I. I, IT: 9IINIIIM IIIMIIIIMW V piriK am o numunimoon Moos000somooEU IN11111141111111111111 monwro, no wrir 111,1911 Ilt Of. F . r flr Mlifinninlin ■Imun■■orMismorr. Ni7OlinillninnomillillinlinlinillimininninillinilloinininnlinnnlinilimmininnilinionniNW Prilinc1/1171 21TIT: rim r: i IIIMIWTOmoomomoommooloo mu■ummiumnummum■mumniumminIIINIMIIIIIII EIMMEr.WAIMMUMWMIDEUMMIMMOWNWOMMIIMMOMIMMMOMO m IMMEMMEMOmmomMOMMEMMEEMMOMBOOMMEOMMEMENOMMIOMMOMMOOMMnignanin mosow Auvrlor:wvirvrv•v:nrinnnr in MOM mawr mix siormernummo IMMIIIIIIIIMMOIMMOommoolownwoommomoom1111114111111111 lino IIIMMIONOWlimosoolmoommoomooMIEMI Wu mgolOWN111111111anin ElininilinnnalminWinilliiiiiillillinninnlinnillinIlonolMIOMMOWNIIIIIIIIIWMOImmunoMIIIIImmuoi11•••• nuillonnino nniiiiillinnillumnUMIIINIIIIIIIIIIIMMIIIMMInnillinni111111111111111111111111 nIIInionanlin i■Einilinillininiimmomminsonnonmniniiino•milluillilliinnimilinliiiiillinlimilinini11111111111115mimillilininilioniEE111.11MInnElitlinnlinMINIIMIIIMIAM11111111111111111111111111111110111111nnnnn nalM11111111111MINIMMIMMI1111111111111111111n11111111MMEnnlininlinIMMINnlin EallinnnWIMI11111111111111MnnIUMIMINIMISMMIIIIINWINHInnnunnlInIMMUM11111111111111111nnninnnInnilinIMMInlinniIIIIIIIIIIIIIminimumEENowsoniumwmffliiminiinnonnimilinnin•Ennommummommennummummenimilluilimmuni1111111411011IIIMIIIIMIIIMlismimmonlinniiiiimmilmillinininsinuniniiiminininsiMEMMIIIIMOOMIIMMOONIONIIIIIIIIMISIMMOMOOMIJIIn minimENIIIIIIMIWIThillitrrillEnn111111111111111111111MIMMEllionsninfluirin nnwomninimmEmnin ■1 MinininnnWn1111111MIHMMEMMINENNISIMMInnillin1 mioninilinnomminiiiiiiiiiiiMilininownilinimonini71iniiiiEIMIIM6■74..10:11•111r,vAr, TA. Ilf: F . I.II, r . INIT . r. 1111M. ,' I: winNOIMIUIIIIII ElOWINIMMOIMMIIINSOMOMMIN.1EIIIIIMIIIIIIMMINIMIMMIummounilEmosnalFM I MO1111 IWO ionlinall11111 EtionlinnimiliminionimmillinitA■r011onoMMUOMMOMMIIIKUMMOWIIMIMIIIIO1 r II I V ■ II , oloomo1111111111,4111111111111 Easiiiiiinninni1111111111111nnMnillinillin NinnnWEI MuMinns=mg ME ogimemamoomoomommommoomoloolmomoiINV Non1111111111111111•111111111nlinlinillinnnnnilninnlinini–MIM--- ESIMMIll MM M EP M IOIMMIIIIIIMIDEillinim-- =!!INIMm■ni.-■MO■ ■■MMIIIIMM■MMIUOIROMMW■■MP-- - T-mill■MIUMUN■M■■IMM■r--71411IMMUMIIIII!!!!!!!!!01111MINIMMW11".----milminTv5,--—__.—---z.misimmium.!,-----7.1■MMIMOMMONW- -,OcnCDFigure 23.


<strong>IBM</strong>L INE DESCRIPT 0 FIELD HEADINGS/WORD MARKS 8 Lines Per InchINTERNATIONAL BUSINESS MACHINES CORPORATIONPRINTER SPACING CHART<strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :BM 1403 Models 1 8 4OOMOOROMMOOROMOOMMOOMOOMMOOOMOMOMOOMMOOMOOMOOMOOOMMOORMINOOMMO ■■■■■RO■■■■ ■■■■■■■■■■■■■■■■■■ ■OOS■■■■ ■■■■■■■■OM<strong>IBM</strong> 407, 408, 409, and 1403 Models 6 and 711111111111 MOOMOOMOOMOOMOOMMOMOOMOMOMOOMOMMOOMMO■■■■■ ■■■ BO MUM ■■■■■■■■■■■■OV■■■■■■■■■■■■■■■11mininImimmommummommanommommommmummimmommummilmnsummummumninimmon MOOMOOMOOMOMMOO ORO 01111111111■111111=11111111111111=11=111111111■11=mmmmmmmmmmmmmmmmmmmmmmmmimmmmmmmmmsmmmmmmummmmmmmmmmmmmmnmmmmmmmummmmmmmmmmmmmmmmmmmmsnmmmmmmmmmmmmmmmmmGL UE11•1121111•MIENIIMIEMIM]=MIMIIKommonommonommumanowommuummunnuouRIBILIMMEmonnannommennamommenononcomonomounammoommosonagnonm111101111111MOOMONOMOOMEMOOMOOMOOMOOMOOROOONOMONNOMOOMOMOONOMOMOONOOMOSOOMOOMOOMOOOMOOMODOOMOOMOOMOONOONOOMMOOMMMOOMMOOOM11111H111111 mommummummumummonmommummommummammummumummummummummummummummommammummumm111111■0111111MOOMOOMOOMOMOMOOMMOOMOOMOMOOMIXIMONMONIOOMMOOMOOMONOMOOSOMOKOONOOMMOOSOOMOOMMOOMOVEMOOMOMMOOMMOOMMOOMMMOOMOOMOMMOOL1111110.111111111 Inumumilimmumumnummumimmommummummminsnummommummummmenmom111111411111F - mmilinlinoontrmiNmplcumillummommininummmummommummmummommommummumumminnimmaimmommomminsm1111I1r111111MOSOOMOOMOMMOOMOMOOMOOMOOMOONOOMOOMIONNOOSOMONOMEMONOOMOROMOOMMOODONOOMMOOOMOBWOOMOOMOOSIOOMOOMOMOOMOOMOONOM111111114111111 mmix!v,m1m.a111,111wOMMIVRIVIWAVaIMUMOMMUNMOMMUMMIMMIMMUMMOOMMOMMIMIMMOIMMOMMIMOMMOMMINIIMMEMONNIMMOMMUNOM1111114111111 immomOOMMUMMOMMEMOMOMMUMMOnlammummommommommummummummummommusimmimmommomMOMISMOMMUMM11111M11111IIIIIIPailluMilvo‘uANOMMOOMMMT::OOMMEMIMMOMMW7,WIMMOOMMOmmommionsmoommummommumummummimmommummommummommummmI11111,1111111minm;wimir.W.mtrrPrTrILVIMMINW3m1VainimMOMMOMMINUMMOMMEMMOSIMMEIMMIUMMOMMMUMMOMMOXIMEMEMOMMUMMOMMOMMUMSOMOM1111111111111 ...05xlmuln:PuIrmiriqrwrvflrmummorKuimimummurromommommunuummummummom11111P1111111 MMOW;70MEMPOW,TinnVITITTIMMIONITrWilMOMMEMMEMMIMIOVIOO LIMMUMMUMMIUMEMOOMMEMEMMUMMOMMUMMOMMEMOMM1111114111111 MWOMOMITIT377,1T=UMTIMUMMECWOOKIMMIMENINUMOMMOIMM mmIUMMIIMOUNIONOMMEMMIMMIMISOMMOOMMONONOMMEMMOU1011D11111111r r, r.... r. r. I I wommerinzonro: ........Imsmnismummonwommumtummommommommommi1111114111111 MMIMMUMMUMMOMMISMENEMOMMEMOMMOMMENMEMSUmnImilimmUMMUMMUMMIMMIMMEMOMMOOmmimummiummonnini111■1)11■11■11OOMMOOMOMOUNIMIONOMMUMMIIMOOMMIMUNIMMIMINOSIOOMOIOIMEMMOMIUMMOOMOO IMMONNIMMIMMUNIMMOMIOMMIONMOBOOMMONIMUIMMINOM11111,4111111 OMOMIONOMMOODOOMOIONOOMMOONOOMOOMMOMOOMMMOOMMMOOMMOOODONOMONOPOOMMONOMOMMOOMOOMMOOMMOOMOON1111114111111 WOOMMOSOMOOONOMOOMOOONOOMOOOMOOMOOTIOOOMOSIONOOMOOMOMOOMMOOMOONNONOOOMMOOONOOMOONOMMISOMOOMOOMMOOMOOOMOOL1111111111111 NOONWOMOWN!,,V,VIII,WAIONSOWCI:4: :KOOMMOOMOOMOOMOONOOMOOMONOMOOMOOMOOMOOMOOMOOMOMOOOMOOONIOOMOOMOONOOMOOMOOM11111P1111111OOMMOOMONOOMOOOMOOMOOMMOOOMOONON MONSOMOOMMOOOMINOONOOMIONSIOOMOMEMOMONOMOONOMOSOMOOMOOSOMMONOMIONONOOMOOM1111114111111 MOMMOMMINIMMOUNIMIMMIMW:UANU IIIIMENUMMUMMIMMONOMMOOMMUNIMOIMMUMOMMOOMMEIMOMMOMMIUMMEMEMMIMOMMEMOOMM11111114111111 miummimmumummommummommiumum mummommomminummumummommummommommimmumminummommemmonnimum11110■1111111 mommummummummummummossummonimmummummommummummummummommummummummummonsmlllll 14111111----OOMOOMIOOMOOMOOMOOMOOMMOMOIONOMOOMONIONONONOOMOONSIONOOOMOONOONONOOMOOMMOONOMO ■■■■■■■■■■■■■■■■■■■■li■alBM"'--- FIVI■MO■MIMMI ḺWOm■olli■■uninnimp■m, zmompumummlipp_ ----'41OOMOMOOMOOM--=--==-VIOONOOOMOIOPMFigure 24,


carrC/3CDC)0▪GOCD<strong>IBM</strong>INE D ESCRIPTIONFigure 25.INTERNATIONAL BUSINESS MACHINES CORPORATIONPRINTER SPACING CHARTMELD HEADINGS /WORD MARKS 8 Lines Per Inch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :UMMEM MMEIONMENIIIMMOMEMMMEMMEMEMMEMAMMEMEMOMMEMMEEMMEMOSENOMITT.<strong>IBM</strong> 1403 Models 1 8 4In, , .7TTT I ■MI■■■ ■ MMOMMIIIMOMMUMNOMMEIMMEMMEMMEMmm 407,408,409, and /403 Modek 6 and 7IMO 1111011111•11 ■■ ■ EINIMEMI• ■MEE In 1111ENEW1 INIIIMM If.1 ! f , I 1 - no IIIIIMIIIINIMI111111111111•111112111111111•M•11111111111111 <strong>IBM</strong> 1403 Models 2, 3, 5, N/ and 1404 ;AN••••■• 1 IIMEM1121111111111111111■111■■■■■111111111111■■■• -r 17 ■I■■■MI■ ' I 7 T UM ■EM ■ ME 7' In ■ ■■I.......smammini ......a................... mmummimmesse amaimmimmummum....................................m&GL UE 0 1111111111 2 1111E11111 5 6 =E:=1111111111 ' 10 MIMEElE<strong>1130</strong>171EIEICIODEEIMCISOUCILIEIE141113 7 8 9 orisommicup 3 4 5 6 7 8 911112■3!4,5 6;7 8.901 2 314,5 . 617,819 of 112 145 aposaannuounnanongoomilEmonnanuommagenom1111111041111111111NOMMIIIIIIIIMIIIIIIINUIMMIEMMIEMIIIIIMMIIIIMMpli DM I I !j,LL 1 1 IIIIIMM•IIIM•••••111111100•01EINESMINIMEN•11111•111111111901111111111111•111111111MLIIMIIIIIIIMMEMENNIMMEMOMMEMINI NMI III MUM I i . • , • NM= 11111110•11E•IMMINEMINE112111111•1•MINUMESIMIIIIIMINI111111111111111MM 111.111•111••••••••••••••••••MIUMMINIMIIMI 111•••••••••••IMEMIEN I •••••••• •IM11•11111111•11MI•M••••••••••••••11111111111MINI nn IMMENN<strong>IBM</strong>ENNIMENEMINIIIIIIIIIIIIIIIIIIIIIIIIIIINEMUMMIIIINIMM1111,1111111111 OM IIII■IIII■■MB■I■■MIIIIII■MEINIEIHRIME■E1111111111/411111" 111111•Iff,z1 WO: • P./1 el 'I 11E: :MENEM:MEI NM UM MUNE II IIMMIMIIIIIIII111•110111111111•0•0••••1111•MENI•111EmIIIII■4111111111V0 MIMI 111111•1111111 MEM■ 0•110•••••111111111MINIIIIIMENIMIIIIIIIMMEBORIIIIIDIIIIIH MERL :,,I:A. IL,111■19;r1:1111:1101•11M1:11.11111!I:1 MN ...ZinniaEl• I ffillaiMMO11•11MBEIMBIMMIIIIMMIIM•111IIIIIMI11111•1111111111•1111•1111111•111111111W■MINIIIIIIIIIII•111•1121111111111 I INE•••••1111111•111111111111111111MIMIUMEMEMIII1III1111111110041111111111 9 111■11111111.11FIENZ■■11111.1BROMISIMINIME01 ; II II7 .117, ; vh in ■■IMIil•MOINNEM11••■■■MMEMillIMINIMM■•••4MIIIIIIIIMEL mu ••Ill r‘ ANIIIIIIII111,111111111111,17:6,,..■OMMINIMINIIIIInOMMIE 1 011•11111111111111•1110.1- 11111114111111 — ROMWOMMIIII.Fm.mr*OWNTI,Tmml V IORMINPOal11=111•1111—T . 1,_L_LL 1 ![ . pm 11111111111■NIMIN ■WIIIII■■■■MEN111111MID4111111 IIisin . .,-.1.wirlrv,IrlY:v: I, F:1 ,APTVITIPFP F: ■ olee.4,74,i.41,. ZO O FT • • 1 ] ■ =NOMMEN ,1111111111111111MMINII11111111101111111111111 011110nrONWITIPPITITIROVLIMMOO woNNIKNIN fr .1 . 11 1 .,4i,li H J ;NENIMIll 1 1 I■IIIII■IIIIII■IIIIIIIIMIIIIIII •OMM: ■■TIMPFITQWNWITIN■M ■st2teptom i i• % a.,11, .. , .._;I, I I inSIMENIN IIMINIENNIIIIMUMIll11110411111111 ammominprIntnirmrnmornAmmillwa.cormil insmom■ uj_;_ _, , 1 1 , ••••••••11••111111111.11N•11•••••111■110411111111 syrommunamormiummommumminnum... maim ! 1 , 1 momsH , ,-1 -: Immiumminnsummumummummisommillm111111111 MIffill•IIIMOUNIIIINIIIIIIIMINIIIIIMMINNIMMENNIIIIIIIIIIIIIIIENILI i I . -11111111■41111111•••111111111MEMIIIMMININIMMIIIIIIM••••••••1111••!•••• pill illiffnil111=1111=11119111111111111111NIIID411■1111MME103:11MMUIWIIIII,K L ,IUMUOM9TOMMEMBOKEINNKAMOMMONO 111111111111111111■111111411111111111tH0 UMIIIIIIIIIMMENIIIIIIIMIUMINIIIMIIIIIIMEllsimmumommumiumimminsmrsimmommmimmillumummommommumulingI m 0IMIIIIIIMIIIIMUMMOMMEN•11•111111111•111111111BIIII,411111111IIIIIIIIMINNItipl 'LI IIIMIl'Ar. ■0:0:47 19 ■IIIMIEIONIMINIMI■IMM■NI■ME■EMMEN••••IMIEMBIIIITIMEMENNIIMM■NIIIIIII•MUNII•1•111111■MOIME1m ImlnOOMMOIMMOOOMMOMMIUMNIMM MM Imminsimmommommummummumimm-ommommummummommiummummummompom - ,Tmlimmmommomm,MOMMEMBOOPP, - ----!!!Imminummum. - --.„---- , ------ 1 , , M■III—_ii........ong.so■morm■ssmuminnons..■.....■■.........mossai- _, _--rgrolrninlog.--- ---Tmummommommommmenommou-....,......----,.=r.-,---- -....'47..111111......11111.1115r-!—-- ---—IIloco cu,41, COCD<strong>IBM</strong>INTERNATIONAL BUSINESS MACHINES CORPORATIONPRINTER SPACING CHARTLINE DESCRIPTION FIELD HEADINGS/ WORD MARKS 8 Line Per Inch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :<strong>IBM</strong> 1403 Models 1 8 4I11111■11111MININIUMIZEMEMMEM•011111•111111111111111110111•EN ME 111•111111■1•MOI■NEM IIIIIIIIIMIEMEN•MUMMINIMME•MEMINEMERMENNEI I<strong>IBM</strong> 407,408,409, and 1403 Models6 and 7ZIUTII1111 I 1111 n'Ti 111•111•11I 11111U In W' I IT , 7 1 I I I • •MIIIIIIIIIIIII 1111111•0•111I111111111<strong>IBM</strong> 1403 Models 2, 3, 5, N1 and 1404mEINNIIIIIIIMII■MIENNIIIIIIMENEMONIIIIIIIIIIMM•111111 IIBIMMIONMIIIIIIIIMIUMMIll 1111111.11111111115 -1 ■ ■ IIMMINEM■NIIMMO MN III■■IMII MI1.1111MINIMMEMI<strong>IBM</strong> 1443 Models 1, NI, and 2203 WimmommoMMENIMMIMMEMMUPOMEMORMEMEMOMMUMMMOMEMESOOMMUMEINIMMS MIIIHN IIMMIIM MMEMINIMEMENNEMEMOMMEMEMMEMMWSMIMMEMMEMMEmGL UE 1111E11111111111111 2 3 4 5 6 7 INIIIIMINEMICIIIIIIIIIIIIIMINIIIMM II..— .A nomannum0onamanan00uno48u uolommummennwpaumonono67monem45.67.89002314.567ou BEUBOUCEICEIBEDO• 1100000 ECODECOOUBE01 • ECM1111041.1111 IMIIIIIMIIMMINNIIIIIIIIIIIIMIMIIIIIIIIIMENIIIIMINNISNOMMIIMEININIMMEMEMINNIMINIIIIIIIII , I MIMM11110111111MIN IMBIll IIIIIIIIMIIMINIIIN IIMMII111111411111111 IIIIIIIIMMINEMISIIIII111111111111.1111MENNEMMINI.11.111111111111•111MMO•111•11E11111111111111EIN•1111111MM0111IUMMENNEMBEINIIIIIIIIMEMILIMI■NNOOM<strong>IBM</strong>IONI1111111■411111111EMINEN•INEMENS1111111111111110111111111MMENNIIIIIIIIMMOINIIIIII•M•1111111111111111••••11•1111•111••••••••11M11111111•111111111•11111111111100•••••••••••••PIWINIUMMENNIIIIIIIIHNI11111.111MMEMBINIIIIIIIIMMENIIIMENNIMINIMIUMMINIIIMIIIIMMENW,••••••••••••••1101111111111M= I mrrigtir, 11/011111ENIWY5/11/14Prirl r 'MINION Iunneunr: 111r. 1. ■.,....4,4m/.0.11■. r.4,A,..1.11114.4M.1.11..A0.411). 1V.III...o.o. ■d, pp, .0,4,1L4,0.0(pp,o N•••1111•5•111 MIrimrfir,,w; 0 , ,, 71,1•7,ir?.'47.IFITY:01,./::!, e.e..r..••MMENIIMINIMMEll 1111•001111111111111111111111111•11111111111111110111MIIIIMEMMIMMINNIIIIMMESIMIHMIIMMINEM immomm nuarrimunr■mpournimmrArwrormrsommo■m1111111114111M11 ongswo: .7 oirjr, gr,e,4070K1101:111N,:o: r.4,:,/".111,: caws., r.,-. ■ IVAIIANIN,P1r.0:11111MMIll MEMMIMUIll INV !<strong>All</strong>!. e an.-1-Jstv77.rrn•Jr .■,:v/Lugging'mInfinIn mommommiumem..............mmuumomissomummommumummumi NIMIIIIIIIMIIIIIIII•INI r•dr11111,1•5•11M1/1111111•111•111111111111111W11111111111111111110 111111111 ff■st.0:4', :1■.47.4Fir.4.7. ■ff i'.■■•011174:40.". ■:4:9-fix•rioNcoy.o.,72.,1,Arg r,rKciirs: MIN NM ••••••••••••••••Prt,7-,77Arrirrrarmzsig.r72nammumoninMillu ion... Imo MIMI 11•0111111M NIMINIIIII•111111111111111111151111•11%1• ,,A•111111111110000111111111.1•11111141111 lll sounuommossmiummumiumnumnimuniurM•11011111111MMIIMMEENIIIIIMMIONIIIMNIIMMI IN In MEMNON BENUE OMB OHM IN IMIAIIIIIIIIBOd l MIMI •••••••••••1_- -EMMOOMIMMIONMEMMOMENSIMEMOMMIllgonmpppm_ff-!P OMSOMIONAMIRmommall4111111,,,,_..,, Mum 111 1.-- ------ !MOM MINIM mumommummminaMMOMmosim-----'–........M 4 OMMINIII1"-----i4, 2ouISOMOUIBITII!!!!-J....-nEMI_...,.----1111111MINIIIgulpw - --_, --__---"••=,.......---7-- -IIFigure 26.


Section Subsections Page35 20 10 35EMPLOYEE information recordstarting at 109 and continuingthru 156 is current information. .Ozf.,ac.)Name7.i .to .1-.0 Etn U zg«:Ico.0s .>--0 ' 9 'aa'06 - .olu-YZ .0 33K EX.A2 °'-n 6I'.Ex .,iiitn x avi.'g•0.IIIIIIIII i1 5 6 10 11 15 16 20 21Year-to-Date InformationII III II I I II25 26 30 31 35 36 40 41 45 46 50 51 55 56 60 61Quarter-to-DateInformationt00t 41 x6° « 3cc d —E • tx ..2RD gz a.'6' D aciti. t fcli«.e.ia> o . m 2 E 2 țla,U(..)u 71 u)U ...,_le.P_0I 1 I 1 i I t i i . I I 1 1 I I .I I I I i I I i i I I65 66 70 71 75 76 80 81 85 86 90 91 95 96 100 101 105 1069cnPrevious 13 weeksOvertimeRateEu...:Ec-2 D1gg–1,2'o-t8 •.0C3s(31cc›12 •?Q.r,ccI-0egi 's3ITcce8=i-oe3xIoma.gw3gccP'Esw1.-oP.a'ii,.c.coP.E3u.,..ḟ,e).Ec.)1->073xEc.130>Eg>riz


Section Subsections Page35 20 10 36Each record is composed of 1 word.The number of records in <strong>the</strong> file is<strong>the</strong> number of employees in <strong>the</strong>plant plus 25%. The last entry is<strong>the</strong> record number of <strong>the</strong> last clocknumber entered.0zOC.3Year-to-Date I nformationI I I I I I 1 1 I I I I I I I I I itaiIII 1 1 I25 26 30 31 35 36 40 41 45 46 50 51 55 56 60 61s'Ọ 'CI1?: 43, I6• 0.' cf.Quarter-to-Datec ci s2 .0 E 0 z2 =InformationO- 7, z0 o..:D ,°F Ḍ>- .- ,_,.- g -r,o—•tt t.. -6 o • g ,:Previous 13 weeksOvertime '2.... 05 z .co1:, •Rate,g- g 7,« u 71 (6Q 1=1 .EUs'.,la oU(73lilt Ili [III ... . I .I I I i ill 1 1 I ,65 66 70 71 75 76 80 81 85 86 90 91 95 96 100 101 105 106v.,LiE.■2'a.-E8 .°g2C9`2›ig cc• I—P 0-o..:0 -aIt0.c..9i'l,.,-gg-4.5Z


Section SubsectionsPage3 5 20 10 37This is <strong>the</strong> plant information record.Plant Name0z.2.cUP.u-dZ _,cei, i 1. I m I I , . 15 6 10 11 15 16r•1.Trade Association InformationGeneral LedgerAccount Numbersfor Posting.1 t0 ox • E ,g>I a 2.o'I–e' tc,zIg–OZ5ō72it, I ■ . 1 ■ I III 1 I t _.a_i 1 I ■ I ■ 1 I II 1 1 111 i 1 i I 1 i i I1 II i20 21 25 26 30 31 35 36 40 41 45 46 50 51 55 56 60 61Available for Expansion1 1111 1 111 1 1111 I III I I I II I I I I I I I I I I II I I I II I I65 66 70 71 75 76 80 81 85 86 90 91 95 96 100 101 105 106Figure 29,33


Section Subsections Page35 20 10 38PAYROLL PROGRAMSPAY01: PAYROLL FILECREATEVARIABLES <strong>IBM</strong> 1 <strong>1130</strong> COMPUTING SYSTEM1:1NAME . L q"02-c,ciz0_Lu 2 I--,L- ED-- 'ci- 0zMAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication p4 >.--;,ep , z ,5- y.5 - 77443y7 Date cgA6/67A--/iek–Program Name ,L-7/&) c-,,,,ea,4 Novei,'rr23/ ProgrammerFUNCTION OF VARIABLESCX-WAX R I/3 / /000100.0( /fia,r/;,-;‘,.77 c 4 ecz. .a,,,,,,,,,,, 7*,-, a 44.,Co/HP 12 /6 2;0 - - Comiaa. ,y 4,,,a-,---/e.,A2g Z'' Ac' 24 0 000 Or. aV ,p,i_ T a/ e. ass-ocia4a ,e? ra7",0,-1.5-..7 I / T (i-ced ,., Op /a„,,_IC I / W - - e--fe,/,..4a4=.77‘ 7,--o .Z7V12-c#c/e r / r ac ','- e.fr-7 ..e9eg.',,r7/,49 cAec.C. /744.")/ i)ey-e-, it/e",7 .a.,..-/74; /ii, c,4eces,2,-coz 1 r 2.570 .ie ,Pe.evrel enderge5ev• /;-7 .67,7,:p/tr ,5.,.149e ,,--,,Yes,, ,FE-. 74 cro Sy"'Lae?"'..r/f// 7 /06 /01/ 'rile ruernbe.-^ 0/'/.74814 PO"' el /0/47,v/t /Iv* -,./DoINDEX I 2..- T xxkx /1040 .7:1,/eie zi, /0/44/ /204f-1 6e,/:-,,g ,01^,C,Cd'S•rec/.2-/V2-7- I / 0 0 0 6.47/D.01 //2 / .1., Gibe, ■-) 1,5ee"WI 1 / r 2567 .1 PeCerV / /7 Gl P,46 0,-1 //2 Ye, dex es hErtp4yeeA.A._TA/ e I / A/ — 44-10.,...,a /e/p/ /.9 _rit/i1A/8 2 / /t/ - - eg,v/ 344,02/ 7‘a z/vi1 V4 i / A/ — — --- ipe./,'„-a/e,,,,74 42A&..TA/5 I / A/ — — Ehee,,,,,o/ew/ "0.2-/viz.t/a 1 / It/ Fea/Va/&'/?7` /e_r/t/.1..77".0 2. / 0 0 c2 .7;ki/e'v/es skilas eviitoconv6vi "vreee-ssieo,..9 cyc/e1:5?//)1:2 1- /3 0 0 0 ,5-2/,,,/c-,,,,,,,70/ 5-;,-.4. i24,1.Z7- 7- I // T /723 • Wecoe„,r/wene.4er. l0P770.511/03 /.0 4,2 Seoner0/44e,ffrvefx X/ T s- 1 /.,(7e',* of ,.e r /14,,,14,Mode: I = integer, R = real, D = decimal, A --, alphabetic34


Section SubsectionsPage35 20 10 39NAME İt 0VARIABLES <strong>IBM</strong> <strong>1130</strong> COMPUTING SYSTEMw---E' I I-° --- Df l-.6 IS Daz CL 0..MAX. 'VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication /34 Y/e4.9ZZ ,.`.:-Xf;-,--/W Date 4//,3767i\--//c.eProgram Name /6-//e .,•-e::,;.;,-4, No./ /Q/ ProgrammerFUNCTION OF VARIABLES.7-ii/1/,4 _Z 1 /V - - e-ta/r,e-1/.-:•/0/ ,71.0 1C-6Z/,-- 2- / r 9 0 z,-_,.--77,,,-„/ /PS/Z,457 Z / T XxX 0 Z,7,5-11 ,-,--c-o/-4 - 7 / .74/,-,-/66--. id-7 4/er.g, 2- / A/ - - _E-fa/i..e/e'',27/ 71, e 2 . l-C‘2/Z 87-/ 4/— — 2:fia/.1.,7/..---.7/ /a ...2-642ZZ 41C 2- / A/ - - .t-z//i/o/;--'',,-/ /=, _Za:2// 5-7" 1- / T 2..-V „5,-:',_.6-0/ Zast//-e-c-c2.-d/24/m.6.1?/- / c 2. ii/eZ YX:',17/R1- / 0co' This yevi ," ',..0 OcC a . , -7c., 4:7 /th,--, of h„,,,,,-,5. ai,,,-..e.e,/..77,-9,- frocovvo,-; pay/W % / TC./s&d //7 1.90 /00/,/1.1/4/ Z / 46 2 / /Way.//a / .57"94....s- - 0- ..5-.;,9/4.., Kv- ,,a,-,-...94/)/1i//i/C 7 / - - Ziwi,/0/9,,,z /e) _Z-C:OZ/1/Inv!/ -z- / o 0 y 4e/e/ -7././ 2 /20/ cf.) "Pli.> /ea/475 A "PA: vef/7 ///4/1//e- 42 9 01;e)- ..e//po.-//.7 ae-ero A a/4,4,4,-1 5/vac& /a,- ,70,,,e/1/0-/C& z- / O 0 Of CXec. /2‘..e,771e=• e.,,sc-/ K,/ 7 .;/,E. e,,,,,/ely.ec/1./GL/ r / Ifr-e) XX•XX 0( co-o///: tie,/ e >14.-Je-/-i---•c //;:, ,-*24/ce/2),5/ / D 0 /go-9/A y ceedw a/1/i2 r; dove- /ions (/';1E s)A/DVES .I- / 1;0 )06)0(e/4/Del dves ,,/,..4"a,--)4/on/17/445- 7 / .1;6 XX.A9C ft 7.2sang/2ce dee-kei/or,/1/0/52 7 / 0 0 41/-sr'e/47,-/eveis e/e.,k.tc- 7‘;‘,...-n-A/DP/7 I/ 7- 6 / PAP,'" /7 ,....) .6e,"---"Mode: I = integer, R = real, D = decimal, A = alphabetic35


Section Subsections Page35 20 10 40NAME .La'oVARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEM1245dzcLL., I–L– 215 15°- , °MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication ,e4 )%eDL Z .--5-Y-5-7-Z:V Date e//5-/a 7, . - - - ,•-./cProgram Name ,4->/e Creo/e NO./17,4)1:2/ ProgrammerFUNCTION OF VARIABLES4//e47E 1 / .4.6, .3011 /23- z---,?,/,/,,ye, "oay , k--,/.'44!,-,e-..>


Section SubsectionsPage35 20 10 41StartI nitializeVariablesReadPlant No.Week No.Check No.SetupNameFieldRetrieveCompanyNameRead <strong>All</strong>I nformationfor OneEmployeeYesI nitializeTradeAssociationI nformation0SetupQuarterto-DateI nformationWrite toDisk <strong>the</strong>Index ofEmployeesCheck <strong>the</strong><strong>Data</strong> forReasonablenessWrite <strong>the</strong>Record toDisk forThis PlantWrite DiskRecord of<strong>All</strong> InformationforEmployeeStop37


Section Subsections Page35 20 10 42// FOR* IOCS(CARD.** PAY01 PROGRAM• * NAME PAY01* ONE WORD INTEGERS* EXTENDED PRECISION• * LIST ALLC JOB NAMEJOB NUMBER --•C PROGRAMMER --C DATE CODEDDATE UPDATED --C41C INPUT FILES - — NONECID C OUTPUT FILESCCIP••PAY01KEYBOARD PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01C.R.KLICKPAY0112/23/67 PAY01PAY01PAYROLL SYSTEM FILE CREATIONPAY01PAY01FILE RECORD NO. OF RECORDS PAY01NUMBER LENGTH RECORDS PER SECTORPAY01PAY01PAY011 160 250 2 PAY012 160 90 2 PAY013 160 200 2 PAY014 160 50 2 PAY015 160 150 2 PAY016 160 30 2 PAY0125 106 6 3 PAY01101 1 250 320 PAY01102 1 90 320 PAY01103 1 200 320 PAY01104 1 50 320 PAY01105 1 150 320 PAY01106 1 30 320 PAY01PAY01CPAY01IV C ALLOCATE ARRAY STORAGEPAY01CPAY01INTEGER COMP(16)PAY01II DIMENSICN FIBRE(8), INDEX(250)11 ISUPP(13)# ITOT(11)+ NAME(9), PAY011 NSSAN(3), ORTD(6)+ YTD(14) PAY01CPAY01II C DEFINE THE FILES FOR THIS PROGRAM AS DESCRIBED ABOVE, AND PAY01C EQUIVALENCE THE VARIABLES FOR NEXT RECORD NUMBER PAY01CPAY01• DEFINE FILE 1(250.160,U.ICOL), 2(909160,U9IWVA). PAY011 3(2001116011UsMUNC), 4(50,160pU,LB0), PAY012 5(150,160,U,LBT), 6(30•160,U,LMC), 25(6,106 g UrIC). PAY01• 3 101(250.1,UtIN1)1 102(90.1,U,IN2). 103(200s1oUsIN3),PAY014 104(50.1sUoIN4), 105(150$1.UPIN5). 106(30,10U,IN6) PAY01EQUIVALENCE (ICOL,IWVAIIMUNC.LBO,LBT,LMC),PAY01• 1 (IN1IDIN2,IN3,IN4IIN5,IN6) PAY01CC•FILENAME— 1. COLFP2. WVAFP3. MNCFP4. LBOFP5. LBTFP6. LMCFP7. PINFO8. INDX19. INDX210. INDX311. INDX412. INDXS13. INDX6PAY01PAY0138


Section SubsectionsPage35 20 10 43C INITIALIZE VARIABLESII CCKMAX=25000.IC•1• ICOLmlINITm0INlmlIP IPD■0DO 68 Im1,1368 ISUPP(I)=0•ITOTI1I=111ITOT(2).620ITOTI3/=620•ITOTI51.625ITOT)6)-626'T01171=627•PAY01 PROGRAMITOT(8)=628ITOT(9)•01101(11)■635• LYRHRm0NADWH=0NCHCK=0• NCUDD=0NMISC=0NSTKO=0• NWKMPm0NWKPD=OORTD(5).0.• ORTD(6)=0.DO 69 M=1,1469 YTD(M)m0.• CCC READ PLANT NUMBER, WEEK NUMBER, AND CHECK NUMBER• CREAD(6,4) NOPLTREAD(6.4) IWEEK• READ(6,5) ICHCK4 FORMAT(I1)5 FORMAT(I2)• C .CC CALCULATE THE FILE NUMBER OF THE INDEX FOR THE CURRENT PLANT.• C FINISH INITIALIZING VARIABLES .- ITOT(4). ITOTI10/, LSTCINDm100 + NOPLT• GO TO IC1.52,53.54.55,56/0NOPLT51 LST=250GO TO 57PAGE 02PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01\\1/39


Section Subsections Page35 20 10 44PAY01 PROGRAM PAGE 0352 LST=90• 1TOT(10)=0GO TO 5853 LST=200• 1707(10)=172358 ITOT(4)=621GO TO 60• 54 LST=50GO TO 5755 LST=150• ITOT(4)=0GO TO 5956 LST=3057 ITOT(4)=62259 ITOT(10)=011•C SETUP THE AAME FIELD AND RETRIEVE THE COMPANY NAME.C60 READ(64) NAME3 FORMAT(9A2)READ(601) COMP•1 FORMAT(16A2)CC•CPAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01PAY01READ ALL INFORMATION FOR ONE EMPLOYEE AND CHECK FOR LAST CARD. PAY01PAY01500 READ(2.2) NUM. NRATE, NSEX, NSSAN, NXMPF, YTD(1), YTD(2), YTD(3), PAY01• 1 YTD(8), NCU, NINS, NSTCK, NUA, NDUES, MAR, K PAY012 FORMAT(1X.14,13.11,13.12.14,1X,12,F7.0,3F5.0,15,214,13,14.6Xt12, PAY011 8X,I1) PAY01CPAY0111C IS THIS THE LAST CARDPAY01C YES - GO TO 600PAY01• NO - GO TO 10 PAY01CPAY011F(K ..1) 10,600,10PAY0111 c PAY01cPAY01C SETUP EMPLOYEE STATUS CODE. STATE EXEMPTIONS, AND Q-T-D INFORMATNPAY0111 c PAY0110 NSTAS=1 PAY01PAY01NXMPS=NXMPF• ORTD(1)=YTD(1) PAY01ORTD(2)=YTD(3)PAY01QRTD(3)=YTD(2)PAY01•QRTD(4)=YTD(8)PAY01CPAY01CPAY0140


Section SubsectionsPage35 20 10 45PAY01 PROGRAM PAGE 04C EDIT MARITAL STATUS, UNION DUES DEDUCTION, SEX CODE. AND IF PAY01• C NECESSARY. MODIFY EMPLOYEE STATUS CODE. PAY01CPAY01IF(MAR) 101.101.100PAY01• 100 IF(MAR-2) 102,102+101 PAY01101 MAR=1 PAY01CALL STACKPAY01• 102 IFINDUES) 103.104.106 PAY01103 NDUES=0 PAY01CALL STACKPAY01• 104 NSTAS=3 PAY01106 IF(NOPLT .. 31 120.115.120 PAY01115 NDUES=0 PAY01•120 IF(NSEX) 109,109,107 PAY01107 IF(NSEX-3) 110.108.109 PAY01108 NSTAS=2 PAY01II NSEX=2PAY01GO TO 110PAY01109 NSEX=2 PAY01•CALL STACKPAY01CPAY01CPAY01• C CREATE THE INDEX ENTRY FOR THIS EMPLOYEE AND WRITE HIS RECORD PAY01C ONTO THE DISK. THEN GO BACK TO THE READ STATEMENT TO GET PAY01C INFORMATION ON THE NEXT EMPLOYEE.PAY0141 C PAY01110 INDEX(ICOL)=NUM PAY01CPAY01• WRITE TO THE DISK. PAY01CPAY01WRITE(NOPLT'ICOL) NUM. NAME. NSSAN, NSTAS+ NDUES, NWKMP, NWKPD, PAY01• 1 MAR. NXMPF. NXMPS, NSEX, NRATE, YTD, ORTD, PAY012 LYRHR, NCU. NCUDD. NCHCK, NADWH, NSTCK+ NINS, PAY013 NMISC, NUA, NSTKDo ISUPP. INIT, IPD PAY01• C PAY01C GO BACK FOR ANOTHER EMPLOYEE'S INFORMATIONPAY01CPAY01•GO TO 500PAY01CPAY01CPAY01• C LAST CARD HAS BEEN READ. PAY01C INITIALIZE THE TRADE ASSOCIATION INFORMATION.PAY01CPAY01• 600 DO 650 1=1.8 PAY01650 FIBRE(I)=0. PAY01CPAY01• C PAY01C WRITE THE INDEX OF EMPLOYEES FOR THIS PLANT TO DISK. PAY01CPAY014141


Section Subsections Page35 20 10 46PAY01 PROGRAM PAGE 05LAST • ICOL . 1PAY0111 WRITECIND.1) IINDEX(11.1.11pLAST) PAY01C----- - - - - - - - -------------------- PAY01CPAY0140 C WRITE iiE RECORD FOR THIS PLANT TO DISK, THE NUMBER OF EMPLOYEES PAY01C IN THE PLANT TO THE INDEX AND STOP.PAY01CPAY0111 WRITE125'NOPLT) COMP, ICHCK. (WEEK. FIBRE. ITOTo CKMAX PAY01PAY01WRITEIINWLST) LASTPAY0140 C PAY01PAY01C STOPPAY014p CPAY01CALL EXITPAY01ENDPAY01VARIABLE ALLOCATIONSICOL .0058 IWVA .0058 MUNC .0058 LBO .0058 LBT .0058 LMC .0058 INS =005C• INS .005C IN6 .005C FIRRE.0072 ORTD .0084 YTD .00AE CKMAX.001111 INDEX.01ADNSSAN.01D1 COMP .01E1 IC .01E2 INIT • 01E3 IPD .01E4 I .01E5 LYRHR.01E6NMISC.01EA NSTXD.01EB NWKMP.01EC NWKPD•01ED M NOPLT.01EF IWEEK.01F0▪ NUM .01F4 NRATE=01F5 NSEX •01F6 NXMPF*01F7 NCU .01F8 NINS .01F9 NSTCK.O1FAK .01FE NSTAS.01FF NSMPS.0200 LAST .0201182 .005C IN3 .0050 IN4 .005CISUPP•01BA ITOT .0105 NAME .010ENADWH.01E7 NCHCK.01E8 NCUDD=01E9ICHCK.01F1 IND .01F2 LST *01F3NUA .01FB NDUE5.01FC MAR .01FD• STATEMENT ALLOCATIONS4 .022F 5 .0231 3 .0233 1 .0236 2 .0239 68 .0280 69 •02F758 .0343 54 =0348 55 .0351 56 .0350 57 •0361 59 .0367 60 .036011 101 .0308 102 •09E1 103 =03E7 104 .03ED 106 =03F1 115 .03F7 120 .03F8110 =0417 600 =0461 650 .046540 FEATURES SUPPORTEDONE WORD INTEGERSEXTENDED PRECISION• IOCSCALLED SUBPROGRAMSSTACK ELD ELDX ESTO ESTOX TYPEZ SRED SFIO SIOAI SIOFX 5101 SUBSC CARDZ SDFIO SDWNTSOCOM SDAI SDAF SDIX SOF SDI• REAL CONSTANTS.250000000E 05.020E .000000000E 00.021151 .0327 52 =032D 53 .0339500 .0379 10 .03A8 10G .0305107 =03FF 108 •0407 109 .041111 INTEGER CONSTOITS1.0214 0.021514.021E 6.021F• 30.0228 622.022913=0216 111.0217100.0220 250=02212.022A 9.0228620.0218 625.0219 626.02/A 627.0218 628.021C 635.021D90.0222 200.0223 1723=0224 621.0225 50.0226 150.02273.022C 8.022D 25.022ECORE REQUIREMENTS FOR PAY0111 COMMON 0 VARIABLES 526 PROGRAM 672END OF COMPILATION•42


Section SubsectionsPage35 20 10 47•// JOB// XE0 PAY01 3• *FILES(1.COLFP)11(2,WVAFP)*(3,MNCFP),(4,LBOFP)1(5,LBTFP)11(6oLMCFP),*FILES(25,PINFO)s*FILE5(10101NOX1),(10211INDX2)+1103t1NOX3).(104,INDX4)1(105oINDX5),(1060INDX6)• 10012142013323060 0210022613083284339 0210032142712982119 01• 1004261303224,378 0210053722614638734 0210162801541032308 01• 11072613213710014 0212182142782927112 0113471711194511234 01• 16033722822445678 02Listing of input cards1• 101THE CONTAINER CORP.• THE CONTAINER CORP.THE CONTAINER CORP.Console Printer input and output43


Section Subsections Page35 20 10 48// JOB// XEQ PAY01 3*FILES(111COLFP).(2oWVAFP),(3,MNCFP),(4oLBOFP),(5,LBTFP)o(6,LMCFP).•*FILES(25.PIN))),*FILE5(101,INDX1)9(102+INDX2),(103,INDX3),(104,INDX4).1105,INDX5)0(106,INDX6)Output on printer44


Section SubsectionsPage35 20 10 49<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAMNAME:PROGRAMDESCRIPTION:PROGRAMNUMBER:APPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPEPRINTERDRIVE NUMBER: 0 1 2 3 4DISKSCARTRIDGEID:SWITCHSETTINGSSWITCHUPDOWNSWITCHUPDOWNSWITCHUPDOWNINPUTCARDSSOURCE OFINPUT:DISPOSITION OF OUTPUT:FOR PAUSES AND ERROR MESSAGES SEE ERROR RECOVERY SHEETS45


Section Subsections Page35 20 10 50<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAM pile 6...iv:we PROGRAMNAME:NUMBER:le704,Y0/PROGRAMDESCRIPTION:APPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPEPRINTERSy4R/Age07ti../ 571010414i'dDISKSSWITCHSETTINGSDRIVE NUMBER: 0 1 2. 3 4CARTRIDGEID:SWITCH NO/!4UPDOWN/tiro&SWITCHUPDOWN...SWITCHUPDOWNINPUTCARDSi , „ 2: / .„, xe /PETAIL CARD5/// XECt R,Y01///1402)SOURCE OF INPUT:DISPOSITION OF OUTPUT:/ Ca,a14.74.,‘ Aram a sacceSsieed laAY:26 ed/ti/2,..72.0is* rfraris7 he yzay,,e// disk e‘idA .:7,-,z7.c. AI"each /Or,, 0//aca744/. .1,..2,4274/./ cords ore /4./.....d.:7 717.- A.2../ks-A- i be used "ii fl.10


Section SubsectionsPage35 20 10 51PAY02: ADD NAMES TO THE FILEVARIABLES <strong>IBM</strong> <strong>1130</strong> COMPUTING SYSTEMVARIABLE SUMMARY SHEETNAMEẇo022°-.6c;z1 l—----i-- — EDI— 50 - 0?..AX.VALUEMIN.VALUEApplication PAYROLL Date 8/22/67Chic.


Section Subsections Page35 20 10 52NAME .i-VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMt i z,6z1 ,_F---- °-15 5,°- 0=MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication PAYROLL. Date 8/22/67CKProgram Name Add 'James No.pAy 02 L ICProgra mmerFUNCTION OF VARIABLESLsT I I T 250 30 Last record number in cz -PileLYRI-IR I I 7- 3000 ÀrThis year's . accumolation 01 hOvr5 WOrKed-for 3a.cap/0/7 payMAR I / 7 2 / Marita/ status -(/- 5/09/e), (2-married)MUNG Z I A/ — — EquiVak fir r0 ICOLA/A0W14 I / T XZX>e 0 Additional withholdihg amountNAME A2 9 T — — &Dummy area to allocated space ,tor nameAICHCK I / T X600( 0 ChecKed number used for this employeeA/CU r I T )000( 0 Credit union deduction amountA/cup° r / T x>c.>0( 0 Monthly credit union deductions (incimies)A/O(/E5 X I T xxXX 0 Union dues deduction amount/./INS I / T koex 0 insurance deduction amountAIA425C I I T XX•XX 0 Miscellaneous deductions amount'NOPLT I I I 6 I Plant* ?lumberA/RATE 1 / 7 3.00 1.25 Emp/oyee pay rateNSEX I I 7 3 1 5eX-(2- Female) ) (2-Male), (3-Truc. Kee)NSSAV L 3 r /ways 9d/fits Social Security numberEmployee status -(2- cm10/)),TrucKer) ,IV5TA s I 1 7 5 ,0-4en-u41;21)7e1d/ time) 1 0-w-union, tIme);(5-terirmardb)AISTCK I / 7 xx.XX 0 stock deduction amountNS TKO I / 7 )0(.)0( 13 Month ly stoo< deductions/VOA I / T XX.)0< 0 United appeal deduction amount'Mode: I = integer, R = real, D = decimal, A = alphabetic48


Section SubsectionsPage35 20 10 53NAMEVARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMȯLU0°.66za.i- eLnI—15 Di-- 0MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication PAy'ROLL Date 8/22/67Program Name Add NamesNo.pAyoz ProgrammerFUNCTION OF VARIABLESMJM 1 I ZO >(xX )( / 000 Cicn< number in disK recordAl ciA46 A2 , 7 — – Ery,/oyee. oez3ne 7 t-tvin cardAAV0( 0 ,I\/ Ur r ; be 1^ DI: w e eir2p/oyedt3 vt/KPo T I T 50 $ Numb e,-c* we e les ?aidAl>;MPir r 1 T 17 0 Federal exemptionsA'x'm '=' ;', I / T 17 0 State exemptionsOR 7-C R % T )0(4


Section Subsections Page35 20 10 54StartInitializeiVariablesReadPlantNo.\lr i /ReadThisPlant /YESSWStopNOLocateEmployeeRecord No.in IndexRead EmployeeRecord fromDisk /Insert Namein EmployeeRecordWrite EmployeeRecord Backto Disk /50


Section SubsectionsPage35 20 10 55// FOR PAY02* IOCS(CARD,TYPEWRITER,KEYBOARD 'DISK) PAY02** PAY02 PROGPAM PAY02* NAME PAY02 PAY02* ONE WORD INTEGERS PAY02* EXTENDED PRECISION PAY02II * LIST ALLPAY02C JOB NAME -- PAYROLL SYSTEM .• ADD NAMES TO FILE PAY02C JOB NUMBER -- PAY02PAY02IP CPAY02C PROGRAMMER -- C.R.KLICKPAY02C DATE CODED -- 12/30/67PAY02ID C DATE UPDATED --PAY02CPAY02CFILE FILE RECORD NO. OF RECORDS PAY02II CNAME NUMBER LENGTH RECORDS PER SECTORPAY02C INPUT FILES -- 1. INDX1 101 1 250 320 PAY02C2. INDX2 102 1 90 320 PAY02IP C3. INDX3 103 1 200 320 PAY02C4. INDX4 104 1 50 320 PAY02C5. INDX5 105 1 150 320 PAY02II C6. INDX6 106 1 30 320 PAY02C7. COLFP 1 160 250 2 PAY02C8. WVAFP 2 160 90 2 PAY02• C 9. MNCFP 3 160 200 2 PAY02C10. LBOFP 4 160 50 2 PAY02C11. LBTFP 5 160 150 2 PAY02ID C12. LMCFP 6 160 30 2 PAY02CPAY02C OUTPUT FILES '-. 1. COLFP 1 160 250 2 PAY02ID C2. WVAFP 2 160 90 2 PAY02C3. MNCFP 3 160 200 2 PAY02C4. LBOFP 4 160 50 2 PAY02• C 5. LBTFP 5 160 150 2 PAY02C6. LMCFP 6 160 30 2 PAY02CPAY02• C PAY02C ALLOCATE ARRAY STORAGEPAY02CPAY02DIMENSION INDEX(250). ISUPP(13). NAME(9), NSSANt3), NUMB(9), PAY02•1 ORTD(6), YTD(14) PAY02CPAY02•C DEFINE THE FILES FOR THIS PROGRAM AS DESCRIBED ABOVE, AND PAY02C EQUIVALENCE THE VARIABLES FOR THE NEXT RECORD NUMBER. PAY02CPAY02•DEFINE FILE 1(250,160,UtICOL), 2(90,1600U,IWVA), PAY021 3(200,160,U,MUNC), 4(50,16011U,LB0). PAY022 5(150,160.U.LBT). 6(30,160.U.LMC). 101(25001o0IN1),PAY02• 3 102(90.1oUtIN2). 103(200,1,U,IN3), 104(50,10U,IN4), PAY024 105(150.111U.IN5), 106(30.1,U,IN6) PAY02EQUIVALENCE (ICOL,IWVAIIMUNC.LBOILBT.LMC).PAY0251


Section Subsections Page35 20 10 56PAY02 PROGRAM PAGE 021 (IN1rIN2.IN3.IN4tIN5.IN5) PAY02CPAY0241 CPAY02C INITIALIZE VARIABLESPAY0240 CPAY02ICOL=1PAY02IN1=1PAY0240 CPAY02CPAY02C READ PLANT NUMBERS CALCULATE THE FILE NUMBER OF THE INDEX FOR PAY02• C THE CURRENT PLANT. FINISH INITIALIZING VARIABLES. PAY02CPAY02READ(60) NOPLTPAY02•1 FORMAT(11) PAY02CPAY02INDX=100 + NOPLTPAY0241 C PAY02GO TO (80.81.82,83.84,85),NOPLIPAY0280 LST=250 PAY02•GO TO 90PAY0281 LST=90 PAY02GO TO 90PAY02• 82 LST=200 PAY02GO TO 90PAY0283 LST=50 PAY02• GO TO 90 PAY0284 LST=150 PAY02GO TO 90PAY02• 65 LST=30 PAY02CPAY02CPAY02• C READ THE EMPLOYEE INDEX FOR THIS PLANT PAY02CPAY0290 READ(INDX'LST) LAST PAY02• READ(INDX11) (INDEX(I),I=1.LAST) PAY02C - - .. .• ... - -. '" .. - - - -------------------- PAY02CPAY02• C READ EMPLOYEE CLOCK NUMBER AND NAME AND CHECK FOR LAST CARD. PAY02CPAY02100 READ(2,2) ICLCK, NUMB. K PAY02• 2 FORMAT(I4,9A2.57X,I1) PAY02CPAY02C IS THIS LAST CARDPAY02• C YES -. GO TO 99 PAY02C NO •• GO TO 120PAY02CPAY02•IF(K9) 120.99,120PAY02CPAY02cPAY02•52


Section SubsectionsPage35 20 10 57PAY02 PROGRAM PAGE 03C SEARCH INDEX FOR EMPLOYEE NUMBERPAY02• C PAY02120 DO 125 I=1.LA5T PAY02IF(INDEX(I) -, ICLCK/ 125,130.125PAY02• 125 CONTINUE PAY02CPAY02C IF THE PROGRAM COMES THRU HERE, THE CLOCK NO. IS NOT IN THE INDEXPAY02• C PAY02WRITE(1.4) ICLCKPAY024 FORMAT('CLOCK NO '14' NOT IN FILE') PAY02•GO TO 100PAY02CPAY02CPAY02• READ EMPLOYEE RECORD FROM DISK AND VALIDATE CLOCK NUMBERS PAY02CPAY02130 1ND=I PAY02• READ(NOPLT'IND) NUM, NAME. NSSAN. NSTAS. MOUES. NWKMP, NWKPD, MAR,PAY021 NXMPF, NXMPS, NSEX, NRATE. Mt ORTDo LYRHR. NCU. PAY022 NCUDD, NCHCK, NADWH. NSTCK. NINS, NMISCII NUA. PAY02• 3 NSTKD. ISUPP, INIT PAY02CPAY02C VALIDATEPAY02• C MATCH — 140 PAY02C NO MATCH — 135PAY02CPAY02• IF(NUM • ICLCK) 135.140.135 PAY02135 WRITE(1,5) NUM. ICLCK PAY025 FORMAT('CLOCK NO '14' IN FILE DOES NOT AGREE WITH CLOCK NUMBER '14PAY02• 1 ' IN CARD') PAY02GO TO 100PAY02CPAY02• C PAY02C UPDATE THE EMPLOYEE NAME FIELD. WRITE HIS RECORD BACK TO THE DISKPAY02C AND THEN GO BACK TO THE READ STATEMENT TO GET THE NAME OF THE PAY02• C NEXT EMPLOYEE. PAY02CPAY02140 WRITE(NOPLT'IND) NUM. NUMB. NSSAN, NSTAS, NDUES. NWKMP, NWKPD, PAY02• 1 MAR. NAMPF, NXMPS. NSEX. NRATE, YID. ORTD, LYRHRipPAY022 NCO NCUDD, NCHCK. NADWH. NSTCK. NINS. NMISC, PAY023 NUA, NSTKD. ISUPP, INIT PAY02• C PAY02C GO BACK FOR ANOTHER EMPLOYEE'S NAME.PAY02CPAY02•GO TO 100PAY02C PAY02•CPAY02• C LAST CARD HAS BEEN READ. STOP. PAY02CPAY0299 CALL EXIT PAY02•53


Section Subsections Page35 20 10 58PAY02 PROGRAI PAGE 04C• ENDVARIABLE ALLOCATIONS•/COL .0054 IWVA .0054 MUNC .0054 LBO .0054 LBT =0054 LMC .0054 INS .0055 IN2 .0055 IN3 .0055 184 .0055INS .0055 INS =0055 ORTD .0065 YTD .008F INDEX.018B ISUPP.0198 NAME .0/A/ NSSAN.01A4 NUMB •01AD NOPLT.01AEINDX =O1AF LST =0180 LAST .0181 I .0182 ICLCK.0183 K .0184 IND .0185 NUM .0186 NSTAS.01B7 NDUES.0188• NWKMP.0189 NwKPD=01BA MAR .0108 NXMPF.01BC NxMPS.0<strong>1130</strong> NSEX ..018E NRATE•0113F LYFIHR•01C0 NCU .01C1 NCUDD.01C2NCMCK.01C3 NADWm.01C4 NSTCK.01C5 NINS .0106 NM/SC.01C7 NUA .01C8 NSTKD.01C9 INIT .01CA• STATEMENT ALLOCATIONS1 =0107 2 =0109 4 .010F 5 .01EE 8090 =0266 100 =0281 120 =0291 125 ..02A0 130•FEATURES SUPPORTEDONE WORD INTEGERS• EXTENDED PRECISIONIOCS0 CALLED SUBPROGRAMSELD ESTO TYPEZ SRED SWRT SCOMP SF10SDAI SDAF SDIX SDICORE REQUIREMENTS FOR PAY02• COMMON 0 VARIABLES 460 PROGRAM 372END OF COMPILATIONPAY02PAY02•0244 81 .024A 82 .0250 83 .0256 84 .025C 85 .0262=0280 135 .02F6 140 .0300 99 .033FSIOAI 5101 SUBSC CAROZ SDFIO GORED SDWRT SDCOMINTEGER CONSTANTS1=01CC 6.0/C0 100.O10E 250.01CF 90=0100 200.0101 50.0102 150.0103 30.0104 2.0105•9.010654


Section Subsections Page35 20 10 59// JOB// XEO PAY02 2*FILES(1,COLFP/.1211WVAFP).(30MNCFP).t4,LBOFP/.15,LBTFP/s(60LMCFP1,40 *FILES(101tINDX1)9(102.INDX2).(103,INDX3/.(104.INDX4).(1050INDX5),(106,INDX6/•013 32 3060 ROBT 8 BADEN 1831.01 1831.01083 28 4339 JOHN A HORN 2202.84 2202.84II 712 98 2119 ROBT L SHORES 1906.65 1906.65032 24 4378 JOHN W CUSSEN 2286.25 2286.25614 63 8734 JOSEPH MONTANO 3176.73 3176.73IP 541 03 2308 DONALD MILLER 1342.00 1346.00213 71 0014 A E TAYLOR 2233.03 2241.03782 92 7112 DAVID A HLBBARD 1923.58 1923.58II 194 51 1234 FRANK T DOLEN 1475.89 1475.89822 44 5678 AL REYNOLDS 3142.25 3142.25•Printer output// JOB• // XEO PAY02 2*FILES(11COLFP),(2,WVAFP)11(3,MNCFF),(40LBOFP).(5.LBTFP),(61oLMCFP),*FILES(101,INDX1)11(102.INDX2),(103,INDX3),(104+INDX4)11(105.INDX5)*(106.INDX6)40 1001ROBT B BADEN1002JOHN A HORN1003ROBT L SHORES1004JOHN W CUSSEN1005JOSEPH MONTANO1009THISISA MISTAKE1016D0NALD MILLER1107A E TAYLOR1218DAVID A HUBBARD1347FRANK I DOLEN1603AL REYNOLDS9Input cards•1CLOCK NO 1009 NOT IN FILE• CLOCK NO 1017 NOT IN FILE•Console Printer output55


Section Subsections Page35 20 10 60PROGRAM ,4 de I /2,0wyes 74,2 Me ,erNAME:PROGRAMDESCRIPTION:<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAM /3.4 y.02NUMBER:APPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPEPRINTER6.-/amia.,,a• / SA0',/aara/DISKSDRIVE NUMBER:CARTRIDGEID:Pay/^0//SWITCHSETTINGSSWITCH //OA/EUPDOWNSWITCHUPDOWN4/0./1/--SWITCHUPDOWNNONEINPUTCARDS/pop .o.,,e0/0,MNA MIN.A E ?CLOCKNO. CARD /rx EQ PAY02/// J o a• /SOURCE OF INPUT:/ G—OP:e//i7pei, fa r- a .s-access/u/ PA Y/6 6, d// rum,2. .0/...5 'A- /m.es/ e 2 e 7 // disk 1k9,-,-, P4 Y-0//?..5,■-•::DISPOSITION OF OUTPUT:/ /1,/a,,)d-- ‘9,-2,1 C/o c 4 NO. cav-a5 are ,e,/ek://;2 lik n.2 .a:..s.; 7€0 6e ,r-s-e,e/ 47 A4V03, 4,,h/ch .5*,,,.//a'69 ..--,,,-, ,-- , e ,efi.FOR PAUSES AND ERROR MESSAGES SEE ERROR RECOVERY SHEETS56


Section Subsections Page35 20 10 61PAY03: CHANGES TO THE FILE3 FuNAME . §.ō6, ,....Lu00VARIABLES <strong>IBM</strong> <strong>1130</strong> COMPUTING SYSTEMi– LI/–D D0- 0zMAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETI I / r 250 / f/sed 1/7 DO /oopICHNG I / I /6 / Chonge code.Application PAYROLL Date 8/2 5/6 7, 2 C.R.I(//cAProgram Name Chonges /o /he ./47/e. No. PAY i,... ProgrammerFUNCTION OF VARIABLESZCLCK I / I 6 / fr'7,-5 71 06:5 > / , ol. c/ock numberICOL Z / T 250 / Record number In a mp/oyee Ci/es,se7 1 a, 6y,o/o/77`IND I / 7 250 / Record number 0( on 1/7d/video/ employ e.INDEX I ?5C 7 XXXX /000 Index /a p/oS /70 al being processedINIT I / T /6 0 0 Union //7/7‘io/ion 7tee.INOX I I T / 6 / 0 / Index 'Ci/e number (plan?' no. 4./oo)ZNI I / 7 250 / Record number in indexes /0 emlo/oyee Ci/esIN 2 Z I N - - £g•uivoien71. 7to IN/1N3 I I N - - Egu/fro/en/ 7lo IN/I Nil. I / N - - fui vale/7/ fo IN/IN5 I I N - - 4-gait/a/er' /o IN/IN6 I / N - - Egaiva/er/74 /o IN/ZPO Z / 7 0 In dico/es .s7477‘us 07( record, pocessiny cyc/a2:5 3PP .1 /3 T 0 5a/op/eine/I/a/ sick flayZWVA I / N - LL-e.//./o/e/77' /0 ICOLK I / 7 0 Los/- cord lee/LA57 I / T 0 Los" record/ number /i7 (de.LBO I / N - 4 aivo/e/17‘ 740 ICOL* Mode: I = integer, R = real, D = decimal, A = alphabetic57


Section Subsections Page35 20 10 62NAMVARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEM72 0.,1! -60 O 2 z0_2 W Dl-t a-15 IS,°- °=MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication ,,,l4 Y R 0 L Z. Date 8/25/a7Program Name C/70/785S Ao 7C4e 7.(V e No. PAYS Programmer CRFUNCTION OF VARIABLESLEST X / N -- Eg ai veilen1 740 _IC OZ.Z -4 4 C 2" / N - - Egei/ 3o/e.7/ r`o ZCOZ.L ST I/ 7 250 3 0 Max./mum mi/n6er al records / ./7 a yf•leZYR#A? 1 1 T 3000 This fears occu.nv/o/ior, of hours worked for %V coNor, PaykfAk I / 7 2 / Mar/ /a/ 57Iolas — Ci- 5/i79k), ( 2- mar"; eq')/1/11/NC I / N - - Egaivoien, 7‘c, ICOZ.NADWN I / r xxxx 0 Add/II/or/a/ wiTho/e///7.9 arnouns'NAME AZ 9 T - - E-inio/oyee /tevveNC.A/CK I / T XXXXX 0 Chec/- )/umber used (or /his e/n/o/oyee/I/CV I / T xx,xx 0 Cred/ 74 Union deduc//a /7 0/7700/771NCl/DU I / y XXX.XX 0 MornWy cred/7` unior, cleduc7 4/o/7s (in dimes)Nours I / T XX ,XX 0 (/)/ion does dea/aS/0/7s c7/7704/"74NEW I / I XXX.XX 0 New ;,.7 forme:7 ,4 ion used M change s,oecified by code(ICHN6)NI/VS I / T XX.XX 0 Insurance cieduclior, adnou.7/A/4415C I / T XX X X 0 3 isce/foi7eous oie a/ao lions ovnoe.m7n/opzr 1 / 1 6 / /a/a/771 fiei/776e/-NA'Arz- I I j 3,040 1.25 Ern/o/oye a ,00y r-SeN5EX I / T 3 / Sex— (/--femcie), (2- mak) ; (3 - /packer)NSSAN I 3 T Alevays S dig;/715 Soc/a/ Sec4,,,-/ly n.urr/be/-NSTAS I / T 5 i /Emeil°Pee -5A1'''"-s,(1- anion ) ) (2- 7`rac,k eP), (3-000- (//7/0/ 7 )7a//// 7‘/* /rte.), (4-0on-w7i0,7,,oep-1 ,,ime), (5- 7‘errnirlo,,,ed)"Mode: I = integer, R = real, D = decimal, A = alphabetic58


Section Subsections Page35 20 10 63VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMNAME .11_°ciZct_LTJ ,I--I—-- /5 b°- °MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication PAYROLL Date 6/2567ickProgram Name Cho/79es /o // c, A-//e No. PAY,,., C ,2 Kl Prog rammerFUNCTION OF VARIABLESN57CK 2- / 7 XX.x)! 96 Stock deduclicw a/770 C//77'NSTKD I T )(X.XX 0 Mo/r/h/y 57lock dedeic/i'oilsNUA I / T XX , XX 0 C/r/i/ed °filo e o/ deduction amountNUM I / 7- Xx.XX i 0 0 C/ock /7 vo76e,- i/7 disk recordNumb I 1 7 XXX Y XX Zosi Mree diji/s of c/ock naririerNPI/KMP I / 7 XXXX 0 gam6er of ai ee,f-s ern/ /Dyed4/100 2.0 I / T 50 0 A/umber of a.,eeks fioiciNXMPA- I / 7 /7 0 /eciero/ exe/77/074;o/7sAl X A / 1 ,4 0 5 Z / 7 / 7 0 SAn'e e X e /77101/ 0 fi 56, Quor7'er- to - dote //77cormc774ion. (I) .voss, (2 ) A.--rC,,r,1;rD i.R. ,7 7 XXXX.XX AO (3) FICA,(4)/oc.7`c7x, (5) FICA uiages, (6) sick ',ayYTD R p /4 7 *XV .X.Ỵ. 0 . 0 Year- 7' 0 . c/a 71e //77corrY7a7ilo/7 — (/) g,-oss,(2) "icA,(3) FIT, (4) PICA wages ) (5) sick Pay, (6) spec. A,(7) spec. B, (8) /oc. ihox y (9) reg. hoeri-5,(/o) orhoard, (N) boiuis hou/-s, (/2) reg. eri75 ) (is) orerr' s , (/4) Gnus erns,* Mode: I = integer, R = real, D = decimal, A = alphabetic59


Section Subsections Page35 20 10 64Write toDisk EmployeeIndex forThisPlantWriteEmployeeRecordBack toDisk


Section SubsectionsPage35 20 10 65// FOR PAY03• IOCS(CARD.TYPEWRITER.KEYBOARD +DISK) PAY03NAME PAY03 PAY03* ONE WORD INTEGERS PAY03* EXTENDED PRECISION PAY03* LIST ALL PAY03• C JOB NAME -- PAYROLL SYSTEM CHANGES TO THE FILE PAY03C JOB NUMBER -- PAY03PAY03CPAY03• C PROGRAMMER -- C.R.KLICK PAY03C DATE CODED -- 01/06/68PAY03C DATE UPDATED ■■PAY03• C PAY03CFILE FILE RECORD NO. OF RECORDS PAY03CNAME NUMBER LENGTH RECORDS PER SECTORPAY03• C INPUT FILES -- 1. COLFP 1 160 250 2 PAY03C2. WVAFP 2 160 90 2 PAY03C3. MNCFP 3 160 200 2 PAY03• C 4. LBOFP 4 160 50 2 PAY03C5. LBTFP 5 160 150 2 PAY03C6. LMCFP 6 160 30 2 PAY03• C 7. INDX1 101 1 250 320 PAY03C8. INDX2 102 1 90 320 PAY03C9. INDX3 103 1 200 320 PAY03• C 10. INDX4 104 1 50 320 PAY03C11. INDX5 105 1 150 320 PAY03C12. INDX6 106 1 30 320 PAY03• C PAY03C OUTPUT FILES -- 1. COLFP 1 160 250 2 PAY03C2. WVAFP 2 160 90 2 PAY03• C 3. MNCFP 3 160 200 2 PAY03C4. LBOFP 4 160 50 2 PAY03C5. LBTFP 5 160 150 2 PAY03• C 6. LMCFP 6 160 30 2 PAY03C7. INDX1 101 1 250 320 PAY03C8. INDX2 102 1 90 320 PAY03• C 9. INDX3 103 1 200 320 PAY03C10. INDX4 104 1 50 320 PAY03C11. INDX5 105 1 150 320 PAY03• C 12. INDX6 106 1 30 320 PAY03PAY03CPAY03• ALLOCATE ARRAY STORAGE PAY03CPAY03DIMENSION INDEX(250)10 ISUPP(13). NAME(9)0 NSSAN(3). QRTD(6). PAY03• 1 YTD(14) PAY03CPAY03C DEFINE THE FILES FOR THIS PROGRAM AS DESCRIBED ABOVE, AND PAY03• C EQUIVALENCE THE VARIABLES FOR THE NEXT RECORD NUMBER. PAY03CPAY03DEFINE FILE 1(250,160W.ICOL), 2(90.160.U,IWVA), PAY03/61


Section Subsections Page35 20 10 66PAGE 021 3(200,160,U,MUNC), 4(50,1160.U.LB0). PAY032 5(150.160.U.LBT). 6(30.160,UoLMC), 101(250,1,U,IN1),PAY033 102(90.1.01N2). 103(200.1.11111N3), 104(50,1,0IN4), PAY034 105(150.1.U.IN5). 106(30.11,U,IN6) PAY0310 EQUIVALENCE (ICOL,IWVA.MUNC.LBO.LBT.LMC). PAY031 (IN1IIIN2,IN3,1N4.IN511IN6) PAY03CPAY0340 C PAY03C INITIALIZE VARIABLESPAY03CPAY03II1000 ICOL=1PAY03IN1=1PAY03CPAY0340 C PAY03C READ PLANT NUMBER. CALCULATE THE FILE NUMBER OF THE INDEX FOR PAY03C THE CURRENT PLANT. FINISH INITIALIZING VARIABLES. PAY03CIIPAY03READ(2,1) NOPLTPAY031 FORMAT(I1)PAY0340 C PAY03INDX=100 + NOPLTPAY03CPAY03GO TO (80.81,82,83.84.85),NOPLTPAY0380 LST=250 PAY03GO TO 90PAY0340 81 L5T*90 PAY03GO TO 90PAY0382 LST=200 PAY0340 GO TO 90 PAY0383 LST=50 PAY03GO TO 90PAY0340 84 LST=150 PAY03GO TO 90PAY0385 LST=30 PAY0340 C PAY03C-----PAY03C READ THE EMPLOYEE INDEX FOR THIS PLANT. READ A CHANGE CARD. PAY0340 C CHECK FOR LAST CHANGE CARD. AND VALIDATE PLANT NUMBERS. CHANGE PAY03C CODE AND FIND CLOCK NUMBER IN INDEX.PAY03CPAY0340 90 READ(INDX I LST) LAST PAY03READ(INDX 1 1) (INDEX(1),I=1,LAST) PAY03CPAY0340 100 READ(202) ICLCK. NUMB. ICHNG. NEW. K PAY032 FORMAT(11,I3,12,15,68X,I1) PAY03CPAY0340 C IS THII LAST CARD PAY03C YES — GO TO 99PAY03C NO -• GO TO 101PAY03•62


Section SubsectionsPage35 20 10 67PAGE 03CPAY03II IF(K -9) 101,990101PAY03CPAY03C DO PLANT NUMBERS AGREEPAY03• C YES - GO TO Ins PAY03C ...... NO .• GO TO 95PAY03CPAY03ID 101 IF(NOPLTICLCK) 951105,95PAY03CPAY03C IF THE PROGRAM COMES THRU HERE. THE PLANT NUMBERS DO NOT AGREE. PAY03• C PAY0395 WRITE(1.3) ICLCK. NUMB PAY033 FORMATI'PLANT NOS DISAGREE FOR CLOCK NUMBER '11.131 PAY03•CALL STACKPAY03GO TO 100PAY03CPAY03• C PUT PARTS OF CLOCK NUMBER TOGETHER AND CHECK CHANGE CODE PAY03CPAY03105 ICLCK■ICLCK • 1000 + NUMB PAY03• C PAY03C ICHNG MUST BE BETWEEN 1 AND 16.PAY03C IF NOT GO TO 104PAY03• C IF O.K. GO TO APPROPRIATE CHANGE ROUTINE. PAY03CPAY03IFIICHNG) 104.104,106PAY03II106 IF(ICHNG 16) 110,1201104PAY03CPAY03C CODE 14 INDICATES NEW EMPLOYEE. IF SO, GO TO 500. PAY03• C PAY03110 IFIICHNG14) 120.500,120 PAY03CPAY03• IF THE PROGRAM COMES THRU HERE, THE CHANGE CODE IS INVALID. PAY03CPAY03104 WRITE(1.8) ICLCK PAY03•8 FORMAWINVALID CHANGE CODE FOR '14) PAY03CALL STACKPAY03GO TO 100PAY03• C PAY03C LOCATE CLOCK NUMBER IN INDEX.PAY03CPAY03• 120 DO 125 I*1,LAST PAY03IFCINDEX(I) .q CLCK) 125,130,125PAY03CPAY03• GO TO 125 IF MO MATCH, 130 IF FOUND. PAY03CPAY03125 CONTINUE PAY03• C PAY03IF THE PROGRAM COMES THRU HERE. THE CLOCK NO. IS NOT IN THE INDEXPAY03CPAY03•■63


Section Subsections Page35 20 10 68PAGE 04WRITE(1.41 ICLCKPAY03• 4 FORMATI I CLOCK NO 'II.' NOT IN FILE') PAY03GO TO 100PAY03CPAY0340 cPAY03C READ EMPLOYEE RECORD FROM DISK AND VALIDATE CLOCK NUMBERS. PAY03CPAY03• 130 IND=1 PAY03READ(NOPLT'IND) NUM. NAME. NSSAN. NSTAS. NDUES, NWKMP, NWKPD. MAR.PAY031 NXMPF. NXMPS. NSEX, NRATEr MI GRID. LYRHR, NCU, PAY03• 2 NCUDD. NCHCK. NADWH, NSTCK, NINS, NMISC, NUA, PAY033 NSTKD. ISUPP. INIT PAY03CPAY03• C VALIDATE PAY03C MATCH - 140PAY03C NO MATCH - 135PAY0340 C PAY03IFINUM - ICLCK) 135.140,135PAY03135 WRITE(1.5) ICLCK PAY03• 5 FORMAT('CLOCK NUMBERS DO NOT AGREE FOR '14) PAY03CALL STACKPAY03GO TO 100PAY0341C PAY03C GO TO THE APPROPIATE CHANGE ROUTINE.PAY03C NRATE - 141 NXMPF - 146 NSTCK - 150 NSSAN - 156 PAY03• C NCU .• 142 NXMPS - 146 NINS - 151 NEW EMPLOYEE - 500 PAY03C NDUES - 143 NXMPS - 147 NMISC - 152PAY03C NSTAS - 144 NSEX - 148 NUA - 153PAY03• C MAR - 145 NADWH - 149 INIT - 155 PAY03CPAY03140 GO TO (141.142,143,144►145,146.147.148.149.150.151.152.153.104 . PAY03• 1 :55.156).ICHNG PAY03141 NRATE=NEW PAY03GO TO 550PAY03• 142 NCU=NEW PAY03GO TO 550PAY03143 NDUES=NEW PAY03• GO TO 550 PAY03144 NSTAS=NEW PAY03GO TO 550PAY03• 145 MAR=NEW PAY03GO TO 550PAY03146 NXMPF=NEW PAY03• 147 NXMPS=NEW PAY03GO TO 550PAY03148 NSEX=NEW PAY03• GO TO 550 PAY03.....1.-,149 NADWH=NEW PAY03GO TO 550PAY0364


Section SubsectionsPage35 20 10 69150 NSTCK=NEWGO TO 550151 NINS=NEWGO TO 550• 152 NMISC=NI4GO TO 550153 NUA=NEW•GO TO 550155 INIT=NEW•NSTAS=1GO TO 550156 WRITE(1.11) NUM11 FORMAT('ENTER SSAN FOR '14)IP READ(6.10) NSSAN10 FORMAT) 13,12,14)GO TO 550•PAGE 05PAY03PAY03PAY03PAY03PAY03PAY03PAY03PAY03PAY03PAY03PAY03PAY03PAY03PAY03PAY03PAY03500 READ(2.6) NUM. NAME. NSSAN. NSTAS. MAR. NXMPF. NXMPS. NSEXt NRATE.PAYO31 NCU. NADWH, NSTCK, NINS. NMISCr NUA PAY036 FORMATI140A2.13.12.14.511.13.514,13) PAY0340 CPAY03C IS THIS NUMBER. NUM. ALREADY IN INDEXPAY03C YES - 513PAY03•C NO •• SET UP DISK RECORDPAY03CPAY03DO 504 1=1.LASTPAY03IF(INDEXIIINUM) 504.513.504PAY03•513 WRITE(1.7) NUM PAY037 FORMATI'CLOCK NUMBER '14' IS DUPLICATED') PAY03•CALL STACKPAY03GO TO 100PAY03504 CONTINUE PAY03CPAY0340C O.K. SET UP DISK RECORD AND CREATE INDEX ENTRY. PAY03CPAY0340 IPD=0PAY03NSTKD=0PAY03INIT=0PAY03•NDUES=0PAY03NWKMP=0PAY03NWKPD=0PAY03PAY03•DO 501 1=1.14PAY03501 YTDII)=0.PAY03DO 502 1=1.6PAY03502 'ORTD11/1).PAY03DO 503 1=1.13PAY03503 ISUPPII)=0PAY03ID LYRHR=0PAY03NCUDD=0NCHCK=0PAY0365


Section Subsections Page35 20 10 70PAGE 06LAST.LAST • 1PAYO3• IND.LAST PAY03INDEX(LAST).NUMPAYO3CPAY03• PAY03WRITE THE EMPLOYEE RECORD TO THE DISK.PAY03GO BACK TO THE READ STATEMENT TO GET ANOTHER CHANGE FOR THIS PAY03• PLANT. PAY03CPAY03550 WRITEINOPLPIND) NUM. NAME, NSSAN. NSTAS. NDUES. NWKMP. NWKPD. PAY03• 1 MAR, NXMPF. NXMPS. NSEX, NRATE, YTD. ORTD. LYRHR,PAY032 NCU, NCUDD. NCHCK, NADWHo NSTCK. NINS. NMISC. PAY033 NSA, NSTKDo ISUPP, INIT. IPDPAY03•CPAY03GO BACK TO READPAY03CPAY03•GO TO 1( 7PAY03PAY03CPAY03• WRITE BACK TO DISK THE EMPLOYEE INDEX FOR THIS PLANT. PAYO3CPAY0399 WRITEIINDX)LSTI LAST PAYO3• WRITE)IND!)1) .. (INDE!(!):1:1:LAST) Mg:CPAY03• C READ A CARD. IF K IS NOT 9 THERE ARE CHANGES TO ANOTHER PLANT. Mg:READ(2.9) KPAY03• 9 FORMAT(79)011)PAY03CPAY03K NOT 9 MEANS MORE CHANGES. GO TO 1000.PAYO3• K EQUAL TO 9 MEANS END OF RUN. GO TO 1001. P0703CPAY03IFIK - 9) 1000,1001,1000P0703• C PAY03THIS IS END OF RUN. STOP.PAY03CPAY03• 1001 CALL EXIT PAY03CPAY03ENDPAY03•VARIABLE ALLOCATIONSICOL .0054 IWVA =0054 MUNC =0054 LBO .0054 LBT .0054 LMC .0054 151 =0055 IN2 =0055 153 =0055 IN4 =0055• INS =0055 INS .0055 ORTD .0065 YTD .008F INDEX=0188 ISUPP.0198 NAME .01A1 NSSAN.01A4 NOPLT.01A5 INDX .0106LOT .01A7 LAST .01A8 I .0309 ICLCK.01AA NUMB =01AB ICHNG.01AC NEW .01AD K =01AE IND .U1AF NUM =01E10NSTAS.0181 NDUES.0182 NWKMP.011:13 NWKPD=0184 MAR =0185 NXMPF.0186 NXMPS.0187 NSEX .0188 NRATE.0189 LYRHR=01BA• NCU .0188 NCUDD.01BC NCHCK.01BD NADWH=01BE NSTCK=018F SINS .01C0 NMISC.01C1 NUA .01C2 NSTI(D.U1C3 INIT .01C4IPD .0105• STATEMENT ALLOCATIONS1 .01DB 2 .0100 3 .01E4 8 .01FA 4 =0209 5 =0218 11 .02213 10 =0236 6 =0230 7 .02479 .0259 1000 .0271 80 .028E 81 =0294 82 .029A 83 =0200 84 =02A6 85 .02AC 90 .6280 106 .62CB101 . 020E 95 =02E4 105 .02F0 106 =02FD 110 .0305 104 .0300 120 =0317 125 .0326 130 .U336 135 =0370140 .0386 141 .039A 142 =03A0 143 =03A6 144 =035C 145 =0382 146 =0388 147 .038C 140 -03C2 149 =03C=150 .03CE 151 =03D4 152 •0300 153 =03E0 155 .03E6 156 .03F0 500 =03FE 513 .0430 504 .043A 501 =045E502 •0473 503 =0488 550 =04E18 99 =04F9 1001 .0521FEATURES SUPPORTEDONE WORD INTEGERS• EXTENDED PRECISIONIOCS• CALLED SUBPROGRAMSSTACK ELD ESTO ESTOX TYPEZ SRED SWRT SCOMP SFIO 5I001 5101 SUBSC CAROL SDFIO SOREDSOWRT SDCOM SDAI SDAF SDI% SDI41REAL CONSTANTS.000000000E 00..01C8IDINTEGER CONSTANTS1.01CB 2.01CC 100.01CD 250=010E 90.01CF 200.0100 50.0101 150=0102 30.0103 9.0104• 1000.0105 16.0106 14.0107 6.0108 0.0109 13.01DACORE REQUIREMENTS FOR PAY03• COMMON 0 VARIABLES 456 PROGRAM 858END OF COMPILATION•66


Section SubsectionsPage35 20 10 71/1 JOB// XEQ PAY03 2*F/LE5(1+COLFP)1.(214VAFP),,(31,MNCFPJ,(4.LBOFP)$(59LBTFP),(6•LMCFP),IP*FILES(101,INDX1).(102eINDX21,(10391NDX3),(104,INDX4),(105,INDX5),(106,INDX6/100101002611004060000410160500002101701002619Input cards67


Section Subsections Page35 20 10 72// JOB// XE0 PAY03 2*PILEB(loCOLFP),(201VAPPI0(31MNCFP)o(AILBOFP)9(5,LBTFP)*(6.LMCFP)I0 *FILES(101,INDX1),(102tINDX2).(10311INDX3),(1041INDX41.1105,INDX5),(1066INDX6).---------Printer output68


Section Subsections Page35 20 10 73PROGRAM 6-4,7/7, ,,tNAME: ..7— /hePROGRAMDESCRIPTION:<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEET/e,PROGRAMNUMBER: "t7AYe7,3APPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPEPRINTER6-iiareAd4,-,,21 / .5)147,2 d4,-q/DISKSDRIVE NUMBER: 0 1 2 3 4CARTRIDGEID:pa y,.ev# Pil Fr. 4 F r I . I r -SWITCHSETTINGSSWITCHUPDOWN/t/oweSWITCHUPDOWNA/.0,07 eSWITCHUPDOWNA/o/9eINPUTCARDS(MORE/4-4." c'ach /1:7/A,27‘4.///h cAir7,3e.s-(For n4.CHANGECARDSq/=-0,-- op., e /%7■774/CHANGECARDS(# X EQ PAY° 3/ii J 015/_SOURCE OF INPUT:/ CA.-4/ / ./9/7/114 .4.0..r2 A . Ceire"eSSAii RA y/a eA/71 run.2. 2)/sk "1 7 usf-ee /cat7.,,,^0// 4://:5-4. A-o,2.-2 "'A.'s .DISPOSITION OF OUTPUT:/Chore .00/4 ai-e ///e. = I / /2 I/. /e' (7.e "Dzs.t• .s ,e/c., i .', fee, .s-/or-•.#90.• 740/s /ISE' Ge.//146/CM Y.,ofFOR PAUSES AND ERROR MESSAGES SEE ERROR RECOVERY SHEETS6 9


<strong>IBM</strong>LINE DESCRIPTIONGL UEI gINTERNATIONAL BUSINESS MACHINES CORPORATIONPRINTER SPACING CHARTFIELD HEADINGS/WORD MARKS 8 Li nes Per Inch <strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203Print Span :<strong>IBM</strong> 1403 Models 1 & 4••■••■■•1 Um mu ■in■ MUM 1-Ti MNTrl Tr NM - T- ■■ 1 MO MO NM E<strong>IBM</strong> 407408, 409, and 1403 Models 6 and 7ME MilliEll IMN Ennui SU En 111111111 I- I IIT- - 1 T T -Min BM I Iilm <strong>IBM</strong> 1403 Models 2, 3, 5, N1 and 1404=MUM 111101111151110111 MI5 -7 I I l I MMIMMIEI11111111111111111111 ylitA 1443 Models 1, NI, and 2203MEMIUMEMOMMEMMEREMMUMMOMERERMOMMEMMUM MUM KM F. TT-T1 11=1111111111111 mu mu ■ ■ommum■ommommummt1111E11111 56 7 8 9Eirmmumegrommism 151 li£1112emm mum ©Q au • 01234517 0/24561-789CIDIir45 l:678401:i5 1 4547812107/34511107120 noc EIEUMNIODDM■MUIll IIIMEMMIIII■WIIII■MEIMME■ • ■ MIIIIMMEI■Ill F i : I i ..M. : r r I_ 1 Tr- r- r- 7 t_111111•1111111■1111•■■111111111111111111111111MWEIMINIMI• MI5M11151111•I MII IIIMMIIIIII111155 BMIIIIIIIHM11111 IIIIIIIIIIMME5M•1111•ElammilanlirEWININNIMEM MIIIMWMINNI ■........IM 11115MIL. M111•111111•1511•11•14111151 pallin 1211515MMIMMINNIIIMIMMIEMMIN 511111115O11111MEMEll191•111W•M ai1111110MINENiMIIMMINE•MIN• M 0 IMIMINIIIII ONIIIIMEN∎EIREN11•1111 ••••11•11111111111v ,T.srzivaiiNt::ci IMMO Ks' 7,ILTINdt; ,,Iy,i .:4 111 14ju••••••lisur4ark:MVAat MN WINCLIel M. [er:0111111111Thillill ■1:111511111111111•0 NIIIMM 0 IN 111•MINOWINI•1111111111111••••• MU OHMIIIIIIIMIIIIIIIII11111•11111111111•1111•••• IIMUD MI 11511111111'1•1•II ;W. 111511111 ■IMMI11111:43 et nizin•IIN:i:,',t1;:` :=S:1:4I ' 12't *V; 0191111!.:;.: ;1!,::11m:.:;ft....:1 .• AliN :LC t■Rump_ ■•50-51-pirliiiiM7A M18003 .1•1 iiiiiIITIVE5tarAisin 1:ti onviirv,0 . rift !IIMI,:11*K.ORIM:,!e:c:111MIDI IriiiiiiiII■IIZWEIIIII■ISIIII■IIIM■ 11111511■1■111101MM■I minrni ■■inimiliaininii■r1111111)011 I ummithninsommummumuommumunommummiummuniimmmommo ■■nummommu■memiMINKIOXIIII :MIDI/,711,. . 1.2/4,1h1/10 FMOrY:11fNI:ONNKIKINEK 0:10:0:41111FIKIqPIINEINWAIIMINEV.bAlp.41:4■W4011111,:11:41.1111i0111YEEM■ANNEIEWAPov4PW0101100:41110:1MMITINVONIIKKCIPE4.1.1W<strong>IBM</strong>."0111111NCV.47.4W4rnwmroircircargwr, IIIIIII olummimmummormilW111111 MgrwAL'447117■074TKTMVA411111111111•111011•MEN•11•ON trill OPITIMINIMIll1111115MINNIMMIIIIMEIlligiligilIMIMMINUIIIMOMMONOW51IOW ,r IMEMEIIIMIIIIIIMMUMNIIINIIMMIMMIll7,3 ll •-.4s.nn.zio!,4;■A cil. Dna.; mia liA,' ,,INC.mitcp[om k ove : 1" 'AlumM11511111c Imielit• to Milliell e. earn • IIE•IM IBIWGIUMOI:C•111111•10'Ne.+.4IIMIDUIllKIs iiiii•Millimommulmmgm•mialinillinimimmlummilimmimmilimmanumwilimmufflimmIlliMmiii•iiimmalimuilniallillnommwrommigAlip:Ino ■millimillitantemitimmOom m gums ummummummuummmommummummumwIIIIIIIIII I 16 1,.7 .,:ill ibYl1Y111111UNIV7,1WIIMMIll e.iAn =I III::• Wirt pirt.".11111;! eilK• NM II EWA INIV:IRt%1111111n1U1s1:1111•••• 41141:11•111I/APIIIrAMeni:*1=11• N C• 1111'441 in .1 IIMIPIIII II 111WHI:..,:CET:111 0 Ilir-..lpilgly: .:AMIll'ellillAMIII411111111•INI. MU ,:Ilinleinffi mommommormiumnowniummumummummu E mmiummommommummommummummunnummummilmommommommumI•WIIMEMINUMMUOMBIMUMMEMONIUMMIMOMMIIIIIIIIIIIIII IECIEIVIIKAW11111•101111r.41AI:LIMPINI1 7.4/101:4,:4riPINAIII.C4/14171,:117tIVONNI:6711:0:4■70:011/071/K4a74t,INtnt/411w4,1,70■:4U1K1:40,:41VAt:(0:4No:owy.4//:U4417AAID7<strong>All</strong>:7.0:4wAI:o:c0:4■:(owi,:■111M111UIninguini11111104111FrilirilimffilinuillifiniillingmlEll•WIMINIIIIIIIII•IEMIIIMIIIIIIMMIIIMMINIUftMimM•••••1111111111151111.1111111111ililmThimminifilliIONMEIIIIIINIEUMNIMIIIII MM IIIIII1121111M MIIII11110111111111II1 immIIIIIII amism•ams••••••••mimimomilli•IUMIlliommiiii••••••••••••••••••••••=•mmilinniinimmomENMEMMILEaMIMMM5MMNII•MMMWIIMMMIIIMIHMMIMIM•MMMIMIEIIIIIn•Ir111EIIIINIMMIIIIIMMIIM 5M1M5MMIMIIINIH'llimmumm •■•••3••••••MMUMBIBIOMMINIMIUNIMMIONIEMEMMMUMMININIMIUMIENIMIIMIUMINMIMMUNIMMEMMNIMO•1111111_1111::!: EEMENTIMU ■11111101111111111111II•MIIMMM•EMIII•IMIMIIIMIMIMNIII•EMIMMIIIIII•1l••IUHUIIIM•EMMIWUIIIMMIIIMIIIII•MM•Z•M•MMMIMIII•W2011OMM ■MO MMEM 11NW IUMMOMMINIMMINIMMIMMMIIIIMIMIIMIIIMMUMMIIMMIIIMENIMINIMMIIIMIMINIIINIMII•• HINIMINIO•••••=11111111111111111MIIIIMUMMMONNUMMIMINIIIIM--' --"-41.1111MINEM111111111M111111•1•11'.--s.0111E13•1•11•M .eF-Tr-'-- ----ROMMEMEMIMOROMmilmillOMEMOMOMOMMEMOMMOPPr--=.7TMOROMMOMMEORTr----7-111141rum,- --- -- ,T,Iliummilimm., -Co5CJ10/—■O-aInCD057100O<strong>IBM</strong>INTERNATIONAL BUSINESS MACHINES CORPORATIONPRINTER SPACING CHART<strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203 Print Span :<strong>IBM</strong> 1403 Models1 & 4Amu Ism I sumnummo■mse■••••ffi■ ■111111111■■ 1 •11111•1111111•■■■■■1111■ ■ 7■M■■■■■11111■•11■■■■MI■■■11■■■■■11 111111,11•■■•1111alNo•••mlillainillirmililialliEllin MIIIMIMMIIIIIIM IMII MON MIMIIIIIMNIMM •• ••• • • MII•••••••••••••••••••11mWMINIMINIIIM•11•111111111••••••••••MW•••••••••••••••1111111•11111111MMEW•IIIM•••••11•11WINM•11 = C=UMBEIEIC11115RIIILIGHEICONIEICICIE 0 EIFICEI aIIIIIIEMMIMEMIIMIIIIIEIIIEIIMIIIIIIIHG<strong>IBM</strong>IEF:"EMINIE151111M1111111111111111UMEMMIIIIIIIITIMINI101913-VIC EEIIMMMIUMUMMMIIMMISMIIIIMMEINIIMIIIIIIIMMEMMI111811[WMCICIBEIEKIIMIKICICHIEMECEECICIIIEWIDIZIORIXICIIMREIMMIOCIOUEIELIKEICIDDI•IMMNIIIIIIIIMMINIMIIIIIMBEHIMIII•INEN••••111111MWMIIIII•ummilmillin 51111•11IIIMMIMEIMMIIIMMIIMENIMMIThommIllimm•Milini••••11111mannilliniIIIIIM••• ••••••••••••••••••••••NOMMIMINNIMNIIIIIIIIMMINIMMIIIIIII•MM511111111•0151101111111110MMIIIIM1111111.111111WIIMMMUNIMIIIIMNIMmINIMMUMMIIIIIIMMIUMIIMEMINIIMMIIIIIII5MMINIIIIIIIIIIIIIIV•••••••11115Milamou VilEC: 611 WIVilYs IIIIMEM•10 ! VI ■ Ira l'.!!Tall11-11.1:•11:11:011:11,:, lIl OW.TIlis:*:■:zeo:•••••5•51511!.`e.411*.11•11MIIIMMIIIIIMIIIUMNIIIIIMMIWII•MIELIMMINIMMEINNINKIMINIMEIMI 1111111•15MIIMMIIIIIMMIIIIM11110125111IMIlinisn1,0monalliall<strong>IBM</strong>INIIIIMINIMIIIIIIIIMMINOMMINIM1111111111MMIMIMM••••••••••11•11•1111111MMUIMMIIIIMINUMMIIMIMMUNI1••••••••111155111•151•1101°.,0:411W00:4070:4WWILINIOMIMMOOMMININIIMIWIIMMMEENNIM•115•11•Wini•51111Miliiimu•IMMINIMINIIIII1105151111111MNIMMIIIMMIMIIMMINIMMINIIITIIIMMIMMNITIMMIMMIIIIIIMIMMMUMEMINSIIIIMMINIUMMO11514••••••••MIM5111111110:0:o711M5NO:4.:0w0:4Ing1115111111115IUMMINIMMEM11101111111IIMEIMUM1111Ingsgsmin•IIIIIMMIII....--.-•MEMEINM•mmaimiiimilmummilillillinin5•11111ThEIOMNIIIMInlnim•551111MEM<strong>IBM</strong>IIIIIMIIIIIMMEMMIIMIIIIIIIIMIUMMIMMUMIO:0:4,:111111!:00:Kkql.:0:455511. IIII IIIIIIIIMMIEWEINIMIIIIMEM•511MMMINIMIIIIIIMINIMIIIIIIIIMII• MMIIIIMMIIIIIMMTMIIIIMINIIMIN• MU Eli 511115MIMMOWIIIIIIIMIIIIIIIIMMIUMNIIIIIIIIIINNO51MEMIONIMMENIIMEOCCI••••••immoliMME••11111,:i0:1IIMMISIMmuillnimmu••••••••swommiiiiimmmllimmilim•••m•••••••••••••mommilinii,3 ,:4■AVOn55110IM En IN 11 MIIMINIMMOINOMMUMMIUMEIMIIIIMMENNINIMIIMIni••••••••••1111MINIM:470Aillimr.40:40:~11111ENINIMIMM•••••••••••21.•••••milmininimmilimmilimilIMMEM•••••11181•11111111MIN11•511•111111MMUM•••••••••••••1•10111MBOOMMINIIIMMIMMIMMMIIMMUMMIUMIUMMIMMWHIM•IMIliim••••••••••■yomill00:9: q: *won UlligNIMEWINEIMEM•••••••••••••••••••••••11M•0•51111111115•M••••••15•11111154EimmilifilliMIMIIIIIK0:4•11MIIIcli:■:0:919:1MIIIIMMIIIIIIIMIMMIIINEMIIIIIIIII<strong>IBM</strong>IIMISIIMInimilMIN•••••••••••••••111111MMIIIIIIBEINNIMIIMMENNIMIIIMME5115•111111salliMMOIThilmainilmonlIMMIIMMNIIMIIIIMIMMONSMIMMIIIMMIIMEMOIMNIMMIIIIIIIIIIIMMUMIIIIIMIEMMINSIMMEIMBEIMI•immi•millimilniuMMEWNIMIWIIIIMIMOMILIMIIMM5111511IMM•immin••••).orsilln11110:4:0:41:4WOMINIIMINUM•••••••111NMENIIIIIIIIIIIMM5111151WOOMEINIIIIIMIIIIIMBIOMMIINO51LINE DESCRIPTION SD HEA DINGS 0 D 8 Lines Per InchGL UE;.a..IIIIDOIIIuIIIIIHiIIIII111111,1111111111111111D411111IIII111m■mmin1111111111111'minnfillnu111110111•111111111191111111111111111■41•111ftMIDUIIIM1111150•11111111111111PU1IM111111111141111MIMPUIEMIIIIIIIIIIIIIIIIIIIIIIIIII104HIIII1111111/011114mammmmkmmmmmmummsmmnmmmuapmmmnsm•mmmmmmmmmmmmmmmmmmmmmmmmmmmmnmnmm.mmmsmmmmmssmmmmmmmmmmmmmmmmmmmlummulammunvorxmlumpormummummunimmummmummommommummommummumumummummiumm••••1111111111111MMWMIMIIIIMISMIEWINIMEMMUMMEIMINIMIIIMMEM•••••••OMMOINNIMEIMIIMMEMEMIIIIN liNIMMIIMmum•••••vr2■A5151c1:9; b:c 4ove455111=111111111111MOMININUIMMIMMIZIMMMIIIMMIIIIIMIIMIMMONOINMEN RImmommuummummilmommummummusummummummumummommummumummumummumummummummumommRENNEMIMMIIIIIIIIIINOWIlligOiCiWo•IIIIIIIMWMINEMMOIMINMONIIIIMINIEW•MMIll•IIMININEMMIE1•11111MIONIMMINIMIIMENNEMIIIIMEIMMIIIIIIIIIIIMEMOIM 1111•1111111111111§W•M•MMIIIIIIIIIMMIIMMEWOMMEMWM•1101111111M1111111111111111101MMBIll11111111111111111111110MMIMIMMIWINI•mommummuomme.mummummummiIMMINWHIIIMIMIIIMMOMMIIIIIIMINOMMIWN1111111111•111111111MIIIMMINIIIIIIIIIIIIMIImommimmommommommomummummommommommosmammilmm.-- ----ttligi..... -t, ....Immummongs mmmmm m--.4,11monsmusumm ====== muummonumprr-----,Lquommomm.-----.:•_. MMMMMM I!, --,----- -.141:t41110....


Section SubsectionsPage35 20 10 75NAME • 180VARIABLES <strong>IBM</strong> 1 <strong>1130</strong> COMPUTING SYSTEM.1,2,§.66Za-2LUI–„._ 1 . - E15 b,°- °=MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication PArAoLL S YS rem Date 8/29/67Program Nameeernuket,..04.4. p/RNo. pAyo4prOggrfintrFUNCTION OF VARIABLESA R 3 a 0.00 0.00 Wei for zero 6d/once cXeckAD it 3 T xxx.xx 0.10 Used to cd/cadte overtime retteADRea R 3 T xxx 04'O Ured to cd/cu/ole cwer-time rdY-eATAX R 3 T xxxx.0 O. 00 A eter-tetx incept-leB R 3 r $.00 0.00 Used Afr. zero -c A t, / 4i/we check40VERN R 3 0 XXX.XX 040 Bonus ectrainoseAIHRZ R 3 40 xxx,v); 0.00 emu.r, .50(irs(' k 3 0 04(0040 Use,/ A r- zero-bat /cince checkClrAIAX k i 7 00000,00 hictximunt c4ack chnotmt for d ,f,iecN6- 7- R 3 0 xxxx.xx 0 . 0 0 it/e 7` a ttlomt e;174 14cilvidtddl checkceiteP A2/61,0 - - Co #41' 04 r f '#Vep R 3 0 0.00 0.00 Used/ lot- zero-.6a Mice checki'RIAIS R 3 7 xxx. xx 0-00 Acd 7Lex(14/e wdfes/98 R g R 0 xxxxvo. 0 , 00 Te, j'd at' cis-roc id Y.; On rerortS'ROSS 1:i 3 0 XXX.4(0.001 Gross dreounr 074 t'nellvio iod l ceckH(74 a Y R 3 0 XX.YX 0. 00 InaliVic/vd/ 14- 40/1.1dy Pd yI .7 I 7" Used In DO /00/,Ire .1" I N — — ErvivellenD 7'-o .ZW1ICHCI•C .Z. I— ;V.-4 ;..ẹ'tirn ge514?,7,,,I, c Aeci. nv,),Ave w,46,4 cyriti;i9, decks-ICLC/C 1 / r 6 / Fe;^,r1" 0/19-.7` 0. 1 c lock Aciolher."Mode: I = integer, R = real, D = decimal, A = alphabetic71


Section Subsections Page35 20 10 76NAMEVARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMȮ02i3.'D*06z2 I--t 6—2DI —a-, °—MAX.VALUEMIN.VALUEI eNr 1 / 0 wx" 0ICOL 1 1 7 Ie50VARIABLE SUMMARY SHEETApplication PAYROLL SYSTEM„., , s , e wil Date gg/2 07Program Name h. 4, ht 71; ,a /1 j. 4 f://f No. "Rip; Peggiirtaer.serl s-ILE' C 0; .04;:;1.1•11FUNCTION OF VARIABLES47focve/or (7,4-tr-ei;;;I::.00/1.;-:/-1,/#)*umber /;•7 40 41/./oyee •01' Apr j sey- viz,lc V I / 0 KY XXX 0 rnaliviciv di( crecilt V41.0/7 c/eciucti.n.7-0,4m- 13 1,0 Aor 0/citeIDED .7 I 0 XXXXX 0 7o,1/ of /■.'"Ij i toviY"4 / 4 fved^ ce „ S * to , i : , cA or 1 tydud en/Sc . e.gcr ions, j ,Ø4y periodIFIcA I / 0 xXXXX Ge 2.74vieitid4S- 70;c4 td,c'FILL I I T 7 0 2-41;cd7`es deltiction '707' inddeTINS I / o xx 0 inell'i,;(11/ 116- /4. S vr d nce iechic'i-ionILGT I / r z50 c La's-- recoi-d ,nimber. indIC;leIWTSC I/ 0 xxx xx 0 Ini;viducil's /n.'sc. decit,ctionIA/ 40 I / I /14 /0/ irWe "'amber oie 4dex Ar d ihmt:PY.looINDEX I 210 T xxxx /of 00 Index to f id 47‘ how Ae,',79, poresreiI/1/OX 1 / T "/4 /C01 7",ciek Ale 4andei- (/74'47`40.4-1640)2-Ayr / 7- /00 # VtI;OPI III% t' /47. 7ioey fee1N1 1 I 1r -0 1 Record . v (in, be r in26iiiderres ),.. eAle/o/ed,.INZ I / N - - h-re,:vok47.- 7-0 IN1IN3 f / N - - e-f",„.,,t/ent 7'o z/vi?NO I / N – – Efe,;-vd /en?' to py.2IA/5 / N - ere'ivalent to Z/Y IZN 6 .1. I N - - (r•ied /e4t 7 j-/Vi* Mode: I = integer, R = real, D = decimal, A = alphabetic72


Section SubsectionsPage35 20 10 77VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMNAME*Laio.'2.66zaI-F- Ili 21.- ,- -. IS0- 0zMAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication pAYR 01... 1... sys TE Al Date8/2ils 7Program Name6 0,, , 4 7,40,4 s J, ,,e7A N o . M 1.. e 2 rogrammerFUNCTION OF VARIABLESrorRT I I T 5400 0 Ove,-/-yrne /0 c e r ev-teZP4GE" I 1 0 20 / /qty.? nv,,,,66.,—I PO 1 1 0 0 02i )11cci7"es srd V' vs c:$4" record /.7process/01f ././eis7eik- 7 / 0 2 000 0 .1.,.,v,..4,2/1, s to c A' ciecAic 74/aelZsupp I /30 xxxxx St/ pp id erf en 711 i / S ■C ik /04:i y1707 I II T /723 0 IAC,,°1:1-//7`;';'!";.-;,_.74,- iPds r /of 7`o ii!PM 7 I 0 300 0 1,71,.y/itid/1 exa.-7 . 7,- cf:?,/uct/onIUD j / 0 1500 0 .7;1 / v i e/cd ti/'s Vili 0 4 Clae S Cleckc,71-; o r711//RAT 7 0 500 0 Averdft pd y /^ d terld/5E1( I r 5 2 h/eek ,,, monlAIWVA I 1 N - - Z),Adie el /c.-... ' 4 7" 74-e, 1C 01.-X I I T 9 0 z ds-t- Cdr' -e 4-7'KARD / 7 9 0 re. 8; 4- tdLi-7= c,i/^2 re. s7`i< 0 AI 1 0 5 0 ,r;pec,d/ :. ci,-,7/ nie 1 C 6 c/e,1(0i.E- 13 I 9 0 Si;o:..c/c,/ (901,-.4/4,,vs c cd Vic:KPLNT I I I a 0 r//r7" 41/miei-LAsT 1 1 T xxx 0 / (est /-eceri 17uinAlet. /:,7 7rde/ SO I i N- - Zko/kce /e A.7 . 7.0 ,1"coL43r T I N - - Eive./k4/eAl 71- 7"' .7004I- IN E 7 1 T 50 0 Z/4e couh7"` Mode: I = integer, R = real, D = decimal, A = alphabetic73


Section Subsections Page35 20 10 78VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMVARIABLE SUMMARY SHEETNAME-P_ii 1-,15, '..6I, I– etIS 150zMAX.VALUEMIN.VALUEApplication PAYROLL SYSTEM Date 8/29/6 7, *VickProgram Name 644,/c , ietiodli d ly,te No./7474ProgrammerFUNCTION OF VARIABLESh/VC I / N - - i-Fee,/i/ ct itt 4 74 7` cp %C Oh..4.0CAIL : / 0 X XXX 9 Loco/ 7`c4 YRNR I / 0 0 071ils yeo-'..s- d cc://,-; y/d7";o,-.. ..,74' Avars workeCor y 4,c q t.: .:,..., payMAR 1 I 40 2 / Addtv.fdl StirtilS-(1-6- 1 .115//e), (2 - /7, dry- I ed )MWVC 7 I Al — —.,Eiecii.v


Section SubsectionsPage35 20 10 79NAME +.LLI0VARIABLES <strong>IBM</strong> 1 <strong>1130</strong> COMPUTING SYSTEM"El4"0 dz° I-I-- W---. EL/-o_ vD RMAX.'VALUEMIN 'VALUEVARIABLE SUMMARY SHEET-2 Application PA y'R 0 1.. 5 Y S 74-4,7 Date8/2 9/4 7Program Name C4/c, cdpft/0,94. ,,: /Y No.IFUNCTION OF VARIABLESit"// cke pAregProgrammerNS 7./C Z.) I / 0 XX•Xx CI:1 MontA/y stock deduct/04s.NUA 1 / 1,0 xX.xx 0 Unite,/ 4 /9pcz)/ cleicict100.7NUM 1 / 1,0xxxx 1000 C/ock ntio-nAerNWKMP I / 0 x x Number if,'' oceks ‹..1?9/e/e/NWK?D I/ 0 xx 0 /1/://nber 0-1. weeks- /74;c/NxMPF I / 1,0 /7 0 Feclerci/ cc,xenytionsA/X/VPS I / 0 /7 0 51-47te ,:?..veo rriPtia,-, s-07:FR /V0 xxx.xx 0. 00 Overt>eie edrni 49'sOTHER R 3 0 xxx.xx 0. 00 Spec #'a / ecirm . 4 cisOTHRS R 3 1,0 xx.xx 0. 0 0 Over-74;'ene 400,-L-0 ,R740 R 1,;,8 xxxu, xx 0, 00 0 tid /or. c Y'e./.0-4-4to -cd;;;7,,c-4/9,007 ct (.( ysireokrs,(24,2- .7; (3) ric,t,wager,R.; RN R 3 0 xxxooe 0.00 Rtvivicie edr-#7;47sRGI-IRS R 3 1,0 xxx.:rx 0.00 Regula r Aoars$7:::k R 3 0 XXY.Xk Of. 0 0 Sirḳiver$ PA R 3 T „c.c. 0410 Spec // ea./..);4gs occvnit 1,c),-. ;nci,SPB R 3 7 )ft x ,x)4Q21(1 5ftecieli edrninfs dccum/ ,e/" //id,sp.Fc.t, R f I XXX.Vf 0.001 Sfiec/ci/ err7 R 3 0 'mxxxxx O.10 (iSei fe 7 4i 0 71" ci , / j'ec/d/ dc;)/-4/.4fsTAX 1 1 0 xxxxx 0.950 /cd ,/e r a / /1/4. 7`4$0///49, 74,1%yrAXAIL R 3 T xxx.xx 0.00 7—„,. ect 44,/e e dr4;e; 515"Mode: I = integer, R = real, D = decimal, A = alphabetic75


Section Subsections Page35 20 10 80VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMNAME. 3i!I §15o 6 2 zaLo2..t E_,1–—j°- °ZMAX.VALUEMIN.VALUVARIABLE SUMMARY SHEETApplication RA KR 0 i _ 1._ s y 5 re. 0 Date 6/2 0 7,e/ic kProgram Name (W4) 74/04 _ ce /26? No./52,04 ProgrammerFUNCTION OF VARIABLESr 4R.S" R 3 7- 1,, (Kx‘"' 0(, 0 re' t d /1 .5*-0 sSs7-"NET M 3 Ḳ,e)CxX x"xk.T 0. 00 7.07,,v/ 4,7,-Toy- R 21 Ta 0 Yx7-0-0.05 r,1"d / drrdroreN k 3 I '''. 0•0 0v ‘904 PS X0eie t 0 744 / 4'0 114 sourc e cloc •Toro T P 3 I "" wew ,O. (t e or X oar fota / /ro.r. orr, SO ti r C e caṙ...70TR 61' R .? . 1 xxxxv,y , 0, 0 0 Re f, Aoufr. tord/ :0/rent ,:evrre ,/,,c,rors p R 3 r xxx,exim 0,00 .5pecid / eart7/6y.s 746, e/ 7r-o~ source loc.VA CA A 3 0 XXX.XX Of. 0 0 Icie. 7:0)1 , 4 7eki 6 N A 3 0 XXX.XX 0,00 goneis /c)c)rs error- 742, 742 /A'0 7- k 3 Q xxx.xx 0.00 Over 7`■/-7... e k; uP S Error 7i-orci /kRE‘ K 3 0 xxx.xx 0.00 Rey', Ao 3rs- &,-,-,, fo III /),' S P R a 0 xxx.xx CM 0 Siaec4/ ectrm'nfry r D f ../ 3.„.s..2,0 xxxicx.xx *4cor/.77a r/04. ( /)f' °SS be; f (3)P/C A0' Rr–il*Co4-dci:yee i i ) sick ( ) j Ca A• es, .5 pdy, 6 s'ec. e4 2) /(7) spec, 8; (8) /cc. y-4,,, (9)■-ei. A,s,(/o) OT 4,--s,(a) ,:bon 3i Xr.r,


Section Subsections Page35 20 10 81Initialize Calculate CalculatePlant Any NetStart Variables SpecialEarningsEarningsRead <strong>the</strong>Initialize Employee Calculate Check NetVariables Index for Overtime Against Max.This Plant Earnings Check Amt.ReadPlant No.,Date andControlTotalsRead aWeeklyEmployeeRecordOSum Regular,OT and BonusEarnings toEarningsUpdateYear-to-DateInformation0InitializeIndividualVariablesUpdate PastQuarter'sEarningsUpdate Quarterto-DateInformationYesWrite <strong>the</strong>PayrollRegisterCalculateFICAUpdatePlantTotals'11!LocateEmployeein IndexCalculateFederalIncomeTax\End en d<strong>the</strong>WeeklyCardRead <strong>the</strong>EmployeeRecordfromDiskCalculateLocal Tax,If AnySetupControlInformation\Read Max./CheckAmountCalculateRegularEarningsCalculateNetEarningsWrite UpdatedEmployeeRecord Backto DiskReadWeekNo.CalculateBonusEarningsIf applicable,calculatevoluntarydeductions77


Section Subsections Page35 20 10 82// FOR PAYO4* IOCSICARD.TYPEWRITERtKEYBOARD,1132 PRINTER.DISK) PAY04* LIST ALL PAY04• ** PAY04 PROGRAM PAY04* NAME PAY04 PAY04* ONE WORD INTEGERS PAY04• * EXTENDED PRECISION PAY04C JOB NAME .--. PAYROLL SYSTEM CALCULATIONS + PAYROLL REGISTER PAY04JOB NUMBER -- PAY04PAY04• C PAY04C PROGRAMMER --. C.R.KLICKPAY04C DATE CODED -- 01/13/68PAY04• DATE UPDATED .... PAYO4CPAY04CFILE FILE RECORD NO. OF RECORDS PAY04• C NAME NUMBER LENGTH RECORDS PER SECTORPAY04C INPUT FILES 1. COLFP 1 160 250 2 PAY04C2. WVAFP 2 160 90 2 PAY04• C 3. MNCFP 3 160 200 2 PAY04C4. LBOFP 4 160 50 2 PAY04C5. LBTFP 5 160 150 2 PAY04• C 6. LMCFP 6 160 30 2 PAY04C7. PINFO 25 106 6 3 PAY04C8. INDX1 101 1 250 320 PAY04• C 9. INDX2 102 1 90 320 PAY04C10. INDX3 103 1 200 320 PAY04C11. INDX4 104 1 50 320 PAY04• C 12. INDXS 105 1 150 320 PAY04C13. INDX6 106 1 30 320 PAY04CPAY04• C OUTPUT FILES 1. COLFP 1 160 250 2 PAY04C2. WVAFP 2 160 90 2 PAY04C3. MNCFP 3 160 200 2 PAY04• C 4. LBOFP 4 160 50 2 PAY04C5. LBTFP 5 160 150 2 PAY04C6. LMCFP 6 160 30 2 PAY04• C 7. PINFO 25 106 6 3 PAY04PAY04CPAY04• C ALLOCATE ARRAY STORAGE. PAY04CPAY04INTEGER COMP(16), TAXPAY04• DIMENSION FIBRE(8), IDATE(3), INDEX(250). ISUPP(13), ITOT(11), PAY04• C1 KODE(3), NAME(9), NDWK(3), NSSAN(3), QRTD(6), SPECL(3), PAY042 TOT(21), YTD(14) PAY04PAY04C DEFINE THE FILES FOR THIS PROGRAM AS DESCRIBED ABOVE, AND PAY04• EQUIVALENCE THE VARIABLES FOR NEXT RECORD NUMBER. PAY04C PAY04DEFINE FILE 1(250.160,UtICOL), 2(90,160,U,IWVA). PAY041 3(200,1601U,MUNC), 4C50,160,U,LB0), PAY0478


Section SubsectionsPage35 20 10 83PAY04 PROGRAM PAGE 022 5(150,160.U.LBT). 6(30.160tUILMC). 25(6,106,UtIC). PAY043 101(250t1tUtIN1). 102(90t1tUoIN2). 103(200.1tUtIN3),PAY044 104(50.1tUtIN4). 105(150.1.U.IN5). 106(30.1sUtIN6) PAY04EQUIVALENCE (ICOL.IWVA.MUNC.LBOILBT.LMC).PAY041 (IN1tIN2tIN3tIN4tIN5tIN61 PAY04•PAY04CCPAY04• C DEFINE 4N ARITHMETIC STATEMENT FOR HALF ADJUSTING. PAY04CPAY04PHIL(BET)=WHOLE( (BET + 5.) / 100.1PAY0440 C — — -• — — — — ————— — — ••• —————————————————— PAY04CPAY04C INITIALIZE VARIABLESPAY0440 CPAY04ICOL=1PAY04IN1=1PAY04• T=0. PAY04XTOT=0.PAY04XBN=0.PAY04• XREG=0. PAY04XSP=0.PAY04DO 50 1=1.21PAY04• 50 TOT(I)=0. PAY04IPAGE=0PAY04L/NE=50PAY04• C PAY04CPAY04C READ PLANT NUMBER. DATE. AND CONTROL TOTALSPAY0440 C PAY0499999 READ(2,1) NOPLT. IDATE. NOWK. TOTRG. TOTOT. TOTBN. TOTSP, KARD PAY041 FORMATII1t6A20)(1.4F7.0.31X.I13 PAY04CPAY04f0C VALIDATE KARD AND NOPLT.PAY04C IF VALID — 60PAY04• C IF INVALID — 55 PAY04CPAY04IFIKARDI 55.51.55PAY04• 51 IF(NOPLT) 55.55.52 PAY0452 IF(NOPLT-6) 60060.55 PAY04PAY04• FIRST CARD IS INVALID. PAY04CPAY0455 WRITE(1.2) PAY04• 2 FORMAT('CHECK CC 1 AND 80 ON FIRST CARD') PAY04PAUSE 1PAY04GO TO 99999PAY04• C - - - • PAY04CC READ THE PLANT INFORMATION RECORD FROM DISK.•______-------PAY04PAY04\79


Section Subsections Page35 20 10 84PAY04 PROGRAM PAGE 03CPAY0411 60 READ(25'NOPLT) COMP* ICHCK. IWEEK. FIBRE, ITOTt CKMAX PAY04C - - - - - - ----- - - - - - - - - - - - ... - --------- PAY04CPAY0411 C WRITE THE PLANT INFORMATION FOR CONTROL PURPOSES AND ACCEPT ANY PAY04C CHANGES TO IT THRU DATA SWITCH SETTINGS.PAY04CPAY0411 62 WRITEI1.3) COMP. IDATE. ICHCK. IWEEK. NDWK. CKMAX PAY043 FORMAT(//16A2.3A2/'CHECK NO 'I5/'WEEK NO 'Il/'W/E '3A2/'NET MAX' PAY041 F6.0//'MAXIMUM CHECK AMOUNT MAY BE CHANGED BY SWITCH 14. 'PAY0441 2 / 'SWITCH 15 WILL CHANGE THE CHECK NO AND THE WEEK NO. SET ' PAY043 'SWITCHES'/'REQUESTED AND PRESS START') PAY04PAUSE 1111PAY0411 CALL DATSW(15.I) PAY04GO TO (70.71).IPAY0470 WRITE(1041 PAY0411 4 FORMAT('ENTER CHECK NO. FIVE DIGITS') PAY04READ(6.22) ICHCKPAY0422 FORMAT(75) PAY0411 WRITE(1$23) PAY0423 FORMAT('ENTER WEEK NO. ONE DIGIT') PAY04READ(6t24) IWEEKPAY0411 24 FORMAT(I1) PAY04GO TO 62PAY0471 CALL DATSW(14tI) PAY0411 GO TO (72.75)1I PAY0472 WRITE(1,25) PAY0425 FORMAT('ENTER MAXIMUM CHECK AMOUNT. FIVE DIGITS') PAY0411 READ(6.21) CKMAX PAY0421 FORMAT(F5.0) PAY04GO TO 62PAY0441 C PAY04CPAY04C INITIALIZE PLANT VARIABLESPAY0411 C PAY0475 INDX.NOPLT + 100 PAY04GO TO (76.77.78079.80.81).NOPLTPAY0411 76 ILST=250 PAY04GO TO 83PAY0477 ILST=90 PAY0441 GO TO 83 PAY0478 ILST . 200 PAY04GO TO 83PAY0411 79 ILST . 50 PAY04GO TO 83PAY0480 ILST=150 PAY0411 GO TO 83 PAY0481 ILST.30 PAY04C•PAY0480


Section SubsectionsPage35 20 10 85PAY04 PROGRAM PAGE 04C• C READ THE EMPLOYEE INDEX FOR THIS PLANT.CPAY0483 READ(INDPILST) LAST PAY04• READ(INDX11) (INDEX(I).I 0 1.LAST) PAY04c----- — .. .. .. — — — .. — — — — ———————————————————— PAY04CPAY04• C READ A WEEKLY EMPLOYEE RECORD. PAY04CPAY04PAY04PAY0490 READ(2.5) KPLNT. ICLCK, RGHRS. OTHRS. BNHRS. (KODEII/oSPECLI/), PAY04• 1 I=113). KARD PAY045 FORMAT(11,130F5.3,F4.01F5.0.11,F6.0.2(I1,F5.0).42X.11) PAY04C — — — — -• — — — — -• — — — — — — — — — — — — — — ————————— PAY04• C PAY04C INITIALIZE INDIVIDUAL VARIABLESPAY04CPAY04•ADREG=0.PAY04AD=0.PAY04HOLDY=0.PAY04•IFILL=0PAY04KO=16448PAY04OTHER=0.PAY04•SICK=0.PAY04SPA=0.PAY04SPB=0.PAY04•TAX=0.PAY04VACA=0.PAY04CPAY0440 CPAY04C LAST CARD CHECK AND VALIDATE PLANT NUMBERPAY04C IF KARD EQUALS 6, PROCESS IT.PAY04• C IF KARI EQUALS 9. LAST CARD PAY04C OTHERWISE. ERRORPAY04PAY04CIFIKARD — 6) 100,110.103PAY04•103 IFIKARD — 9) 1001500.100PAY04CPAY04• PLANT NUMBERPAY04CPAY04110 IFIKPLNT — NOPLT) 100,105.100PAY04100 WRITE(1,6) KPLNT. ICLCKPAY04•6 FORMAT('CHECK CARD WITH CLOCK NUMBER '11.13) PAY04PAY04PAUSE 100PAY04GO TO 90C PAY04--PAY04CPAY04• C LOCATE EMPLOYEE IN INDEXPAY04C105 ICLCK=ICLCK + KPLNT * 1000 PAY04--------_..---------81


Section Subsections Page35 20 10 86PAY04 PROGRAMPAGE 05DO 115 IND=1,LASTPAY04•IFIINDEX(IND) — ICLCK) 115.125.115PAY04115 CONTINUEPAY04CPAY04PROGRAt COMES THRU HERE ONLY WHEN NO MATCH FOUND.PAY04• CPAY04WRITE(1.7) ICLCKPAY04•7 FORMAT('CLOCK NO 'I4' IS NOT IN THE FILE') PAY04PAY04cC UPDATE ERROR TOTALSPAY04PAY041, c120 XREG=XREG + RGHRSPAY04XTOT.XTOT + OTHRSPAY04•XBN.XBN + BNHRSPAY04XSP.XSP + SPECL(1) + SPECL(2) + SPECL(3)PAY04CALL STACKPAY04•GO TO 90PAY04CPAY04CPAY04• READ THE EMPLOYEE RECORD FROM DISK AND VALIDATE CLOCK NUMBER. PAY04CPAY04125 READ(NOPLT'IND) NUM, NAME. NSSANt NSTAS. NDUES, NWKMPt NWKPD. MARtPAY04• 1 NXMPF. NXMPS. NSEX, NRATE. YID. ORTDt LYRHR. NCU. PAY042 NCUDDt NCHCK. NADWH. NSTCK. NINS. NMISC, NUAt PAY043 NSTKDo ISUPP. INIT PAY04• C PAY04C VALIDATE CLOCK NUMBERPAY04C VALID — 136PAY04• C INVALID .. 135 PAY04CPAY04IF(NUM .. ICLCK) 135.1361135PAY04ID 135 WRITE1118) NUM. ICLCKPAY048 FORMAT('FILE NO '14' AND INDEX NO 'I4' DO NOT AGREE') PAY04GO TO 120PAY04• c PAY04cPAY04C CALCULATE REGULAR EARNINGS AND HALF ADJUSTPAY04• C PAY04136 RGERN=PHILIRGHRS * NRATE) PAY04CPAY04• C PAY04C CALCULATE BONUS EARNINGS AND HALF ADJUSTPAY04C--`..■PAY04• BNERN.P1IL1BNHRS * NRATE) PAY04cPAY04CPAY04• C CALCULATE ANY SPECIAL EARNINGS. USE CODE TO DETERMINE TYPE OF PAY04C EARNINGS. KODE TYPE KODE TYPE PAY04C1 SPA 5 SPB*NRATE PAY04•82


Section SubsectionsPage35 20 10 87PAY04 PROGRAM PAGE 06C2 SPB 6 VACA PAY04• C 3 SPB*NRATE 7 SICK PAY04C4 SPB*NRATE 8 HOLD? PAY04C9 HOLDY * 2 PAY04•CPAY04DO 139 1=1.3PAY04K=KODE(I)PAY04IF(K) 100.139,600PAY04600 GO TO (601,602.603.604,605.606.607.608.609),K PAY04601 AD=SPECL(I) PAY04OTHER=OTHER + ADPAY04•SPA=SPA + ADPAY04K0=-3776PAY04GO TO 139PAY04602 OTHER=OTHER + SPECL(I) PAY04SPB=SPA + SPECL(I)PAY04K0=-352(PAY04GO TO 139PAY04603 K0=-3264 PAY04• 610 OTHER=PHIL(SPECL(I) * NRATE) PAY04SPB=SPB + SPECL(I)PAY04GO TO 139PAY04• 604 KO...3008 PAY04GO TO 610PAY04605 K0=-2752 PAY04• GO TO 610 PAY04606 VACA=SPECL(I) PAY04SPB=SPB + VACAPAY04• GO TO 139 PAY04607 SICK=SPECL(I) PAY04GO TO 139PAY04608 HOLDY=8. * NRATE PAY04AD=AD + HOLD?PAY04611 SPB=SPB + MOLDY PAY04• ADREG=800. PAY04GO TO 139PAY04609 HOLDY=16. * NRATE PAY04• AD=AD + MOLDY / 2. PAY04GO TO 611PAY04139 CONTINUE PAY04• c PAY04CPAY04C CALCULATE OVERTIME EARNINGS IF APPLICABLE. USE STATUS AND HOURS PAY04• C TO DETERMINE APPLICABILITY. PAY04CPAY04IF(NSTAS-2) 141,137.141PAY04• C PAY04C NOT APPLICABLE. USE STANDARD RATE.PAY04CPAY04II83


Section Subsections Page35 20 10 88PAY04 PROGRAM PAGE 07137 IOTRT=NRATE PAY04GO TO 150PAY04CPAY04141 IFIRGHRS1 1370137,142PAY04• C PAY04.C OVERTIME APPLIES. CALCULATE OVERTIME RATE.PAY04CPAY04• 142 IOTRT=(RGERN + BNERN + AD) * 100. / (RGHRS + ADREG) + 0.5 PAY04CPAY04C CALCULATE OVERTIME PAYPAY04• c PAY04150 OTERN=PHIL(OTHRS * IOTRT)PAY04cPAY04• C PAY04C SUM REGULAR, O.T., AND BONUS EARNINGSPAY04CPAY04• ERNGS=RGERN + BNERN + OTERN PAY04C - •• - - •• - - - - - - ---------------------- PAY04CPAY04• C CALCULATE AVERAGE RATE AND UPDATE LAST QUARTER AVERAGES. PAY04CPAY04IFIRGHRS1 143,143,144PAY04•143 IVRAT=NRATE PAY04GO TO 160PAY04PAY04144 IVRAT=ERNGS * 100. / RGHRS•160 DO 165 1=1,12 PAY04165 ISUPP(I)=ISUPP(I+1) PAY04ISUPP(13)=IOTRTPAY04• CCPAY04C CALCULATE FICA TAXABLE EARNINGSPAY04• C PAY04PAY04ERNGS=ERNGS + VACA + HOLDY + OTHERPAY04CPAY04• C PAY04C CALCULATE FICA AND GROSS PAY AND TAXABLE PAYPAY04CPAY04•IFICA=0.044 * ERNGS + 0.5PAY04IF(IFICA + YTD(2) - 29040.)18501800180PAY04180 IFICA=29040. .• YTD(2) PAY04• C PAY04185 GROSS=ERNGS + SICK PAY04CPAY04• TAXBL=GROS5 .• NXMPF * 1350. PAY04c - - - - - - - - - - - ----------------------PAY04CPAY04• C CALCULATE FEDERAL INCOME TAX PAY04CPAY04CALL IT(TAX8L,MAR,TAX)PAY0484


Section Subsections Page35 20 10 89PAY04 PROGRAM PAGE 0TAX=TAX + NADWHPAY04• c----- PAY04CC COMPUTE LOCAL TAX BY PLANT LOCATIONPAY04PAY04• c PAY04GO TO (230.235,240.230.246,230),NOPLTPAY04230 LOCAL=PHIL(GROSS) PAY04GO TO 250PAY04•235 I=1280. * NXMPS + O..5 PAY04LOCAL=0.0108 * (GROSS-I)PAY04GO TO 250PAY04240 IF(NXMPS) 241,241.242 PAY04241 LOCAL=0.02 * GROSS PAY04GO TO 250PAY04•242 I=NXMPS * 1538.5 + 961.5 PAY04LOCAL=(GROSS - I) * 0.02PAY04• 250 IF(LOCAL) 246,2471247 PAY04246 LOCAL=0 PAY04PAY04• C PAY04C CALCULATE NET EARNINGSPAY04CPAY04•247 ATAX=GROSS -. TAX .- LOCAL IFICA PAY04CPAY04CPAY04• C CALCULATE VOLUNTARY DEDUCTIONS. PAY04C INITIALIZE.PAY04CPAY04• IUD=0 PAY04IUA=0PAY0415%00 PAY04• !INS.° PAY04ICU=0PAY04IMISC=0PAY04• C PAY04C IF THE EMPLOYEE RECEIVES SICK PAY, VOLUNTARY DEDUCTIONS ARE NOT PAY04C TAKEN.PAY04• C PAY04IF(SICK) 2520253,252PAY04252 CNET=ATAX PAY04GO TO 3(5PAY04CPAY04C OTHERWISE. DEDUCTIONS NECESSARY ARE TAKEN.PAY04• C TAKE UNION DUES ACCORDING TO PLANT PAY04CPAY04253 IF(IWEEK - 3) 255.255.251 PAY04251 IF(NOPLT •• 3) 280.255,280 PAY04•255 IF(NSTAS •. 2) 260.260,282 PAY04260 IF(GROSS VACA) 261.2951261 PAY0485


Section Subsections Page35 20 10 90•••PAY04 PROGRAM PAGE 09261 GO TO (265►265►275,265►26510280),NOPLT PAY04265 IF(NDUES - 10000) 270.270,280 PAY04270 IUD=NDUES + INIT PAY04NDUES=NDUES + INIT + 10000PAY04INIT=0PAY04GO TO 290PAY04275 IUD=PHIL(GROSS - VACA) + INIT PAY04NDUES=NDUES + IUDPAY04INIT=0PAY04GO TO 282PAY04280 IUD=0 PAY04CPAY04C CHARITABLE CONTRIBUTIONSPAY04• C PAY04282 IF(.WEEK - 2) 290,285.285 PAY04285 IF(NUA - 10000) 286,290.290 PAY04• 286 IUA=NUA PAY04NUA=NUA + 10000PAY04GO TO 295PAY04II 290 lUA=0PAY04CPAY04C TAKE STOCK. INSURANCE. CREDIT UNION. AND MISCELLANEOUS DEDUCTIONSPAY04ID CPAY04295 ISTCK=NSTCK PAY04IINS=NINSPAY04• ICU=NCU PAY04IMISC=NMISCPAY04CPAY04• C PAY04C CALCULATE NET. AT ALL TIMES CHECKING THAT NET IS NOT NEGATIVE. PAY04CPAY04II IF(ATAX - IUD) 300,310,310PAY04300 IF(NOPLT - 3) 305.301,305 PAY04301 NDUES= NDUES - IUD PAY04• GO TO 309 PAY04305 NDUES=NDUES - 10000 PAY04309 IUD=0 PAY04• IFILL=1 PAY04310 CNET=ATAX - IUD PAY04IF(CNET - IINS) 320025,325PAY04• 320 1INS=0 PAY04IFILL=2PAY04325 CNET=CNET IINS PAY04• IF(CNET -. ISTCK) 330.335.335 PAY04330 ISTCK=0 PAY04IFILL=3PAY04• 335 CNET=CNET - ISTCK PAY04NSTKD=NSTKD + ISTCKPAY04IF(CNET - ICU) 3400345,345PAY0486


Section SubsectionsPage35 20 10 91PAY04 PROGRAM PAGE 10340 ICU.° PAY04• IFILL=4 PAY04345 CNET=CNET -, ICU PAY04NCUDD=NCUDD + (ICU / 10)PAY04• IF(CNET - IUA) 35093559355 PAY04350 IUAs0 PAY04IFILL=5PAY04•NUA=NUA .. 10000PAY04355 CNET=CNET - IUA PAY04IF(CNET -. IMISC) 360.365.365PAY04• 360 IMISC00 PAY04IFILL=6PAY04365 CNET=CNET • IMISC PAY04• C PAY04CPAY04C CHECK NET AGAINST MAXIMUM CHECK AMOUNT AND AGAINST A MINIMUM OF PAY04• C ONE DOLLAR PAY04CPAY04366 IFtCKMAX - CNET) 367,368,368 PAY04• 367 WRITE(1912) CNET. ICLCK PAY0412 FORMAT('NET OF ' F7.0' FOR CLOCK NO '14) PAY04GO TO 120PAY04• 368 IF(CNET - 100) 37093759375 PAY04370 TAX=TAX + CNET PAY04CNET=0PAY04IFILL=7PAY04•CPAY04CPAY04• UPDATE YEAR-TO-DATE INFORMATION PAY04CPAY04375 YTD(1)=YTD(1) + GROSSPAY04•YTD(2)=YTD(2) + IFICAPAY04YTD(3)=YTD(3) + TAXPAY04YTD(4)=YTD(4) + ERNGSPAY04•YTD(5)=YTD(5) + SICKPAY04YTD(6)=YTO(6) + SPAPAY04YTD(7)=YTD(7) + SPBPAY04•YTD(8)=YTD(8) + LOCALPAY04YTD(9)=YTD(9) + RGHRSPAY04YTD(10)=YTD(10) + OTHRSPAY04• YTD(11)=YTD(11) + BNHRS• PAY04YTD(12)=YTD(12) + RGERNPAY04YTD(13)=YTD(13) + OTERNPAY04• YTD(14)=YTD(14) + BNERN-C -----CPAY04• C UPDATE OUARTER .-70 .-DATE INFORMATION PAY04GRTD(1)=ORTD(1) + GROSSPAY04GRTD(2)=ORTD(2) + TAXPAY0487


Section Subsections Page35 20 10 92PAY04 PROGRAf PAGE 11••ORTDI3f . ORTDI3f + (FICAORTD(41 . ORTDI4) + LOCALORTD(5)=ORTD(51 + ERNGSORTD(6)=ORTD(6) + SICKC UPDATE PLANT TOTALS40TOTI1)=TOTI1f + RGHRST0TI2).TOTI2f + RGERN• TOT(3) = TOT(3) + OTHRSTOT(4)=TOT(4) + OTERNTOT(5)=TOT(5) + BNHRS•TOT(61.TOT(6) + BNERNTOT(7)=TOT(7) + OTHERTOT(8)..TOTI8I + MOLDY•TOT(9).TOTt9) + VACATOT(10)=TOT(10) + SICKT0T(11)=T0Tf11f + CNET•TOT(12)=TOT(12) + TAXTOTI13f.T0T(13) + IFICATOTI144=TOT(14) + LOCAL•T01(151=707(151 + ICUTOT(16)=TOT(16) + IUDTOT(17)=TOT(17) + IUA•TOT(181..TOTI1ef + ISTCKTOT(19).TOT(191 + IMISCTOTI20)■TOT(20) + IINSPAY04•TOT(21).TOTI211 + GROSS PAY04C----- - - - - - - - - - ------------------------ PAY04CPAY04• C SUM SPECIAL EARNINGS, SUM DEDUCTIONS, AND EXTEND THE EMPLOYEE PAY04CC WEEKLY CARDPAY04PAY04•T.T + SPECLIlf + SPECLf2f + SPECL(3)PAY04IDED.IINS + (SICK + IUA + IMISCPAY04WRITE(299) NRATE. GROSS. CNET, TAX, (FICA. LOCAL, ICU. IUD. IDED PAY04•9 FORMAT(17X,I3,2F6.0,15,414,I5) PAY04C - - - - - .. - - - - ..- - --------------------- PAY04cPAY04• C SETUP CONTROL INFORMATION. AND WRITE UPDATED EMPLOYEE RECORD BACKPAY04C TO THE DISK.PAY04CPAY04•LYRHR=LYRMR + RGHRSPAY04NWKPD.NWKPD + 1PAY04IPD.1PAY04• C PAY04•PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04WRITEINOPLT 1 INDf NUM, NAME, NSSAN, NSTAS. NDUES, NWKMP. NWKPD, PAY041 MAR. NXMPF, NXMPS. NSEX. NRATE, YID. GRID. LYRHR, NCUr NCUDD. PAY0488


Section35Subsections20 1 10Page93PAY04 PROGRAM PAGE 122 NCHCK. NADWH. NSTCK. NINS. NMISC. NUA, NSTKD. ISUPP. INIT. PAY04• 3 IPD. IFILL. GROSS. IVRAT. IOTRT. RGHRS. OTHRS. BNHRS. RGERN, PAY044 OTERN. BNERN. OTHER. KO. HOLDY. VACA. SICK. (NET. IFICAs TAX. PAY045 LOCAL. ICU. IUAt IUD. IINS. ISTCK. IMISC PAY04• PAY04GO BACK FOR ANOTHER WEEKLY EMPLOYEE CHECK. PAY04CPAY04•GO TO 90PAY04CPAY04CPAY04• C WRITE 1-IE PAYROLL REGISTER.PAY04CPAY04500 ICNT=ICHCK PAY04• DO 510 I=1.LASTPAY04READ(NOPLT'I) NUM. NAME. NSSAN. NSTAS. NDUESt NWKMP. NWKPD. MAR. PAY041 NXMPF. NXMPS. NSEX. NRATE. YID. GRID. LYRHR. NCU. NCUDD. PAY04• 2 NCHCK. NADWH. NSTCK. NINS. NMISC. NUA. NSTKD. ISUPP. INIT. PAY043 IPD. IFILL. GROSS. IVRAT. IOTRT. RGHRS. OTHRS. BNHRS. RGERN. PAY044 OTERN. BNERN. OTHER. KO. HCLDY. VACA. SICK. CNET. IFICA. TAX. PAY04• C5 LOCAL. ICU. lUA► IUD. IINS. ISTCK. IMISC PAY04PAY04C CHECK PAID INDICATOR TO SEE IF COMPUTATIONS WERE PERFORMED. PAY04• CPAY04IF(IPD -, 1) 510.515.510PAY04515 ROHRS=WHOLE(RGHRS + (RGHRS / ABS(RGHRS)) * 0.5) / 100. PAY04•OTHRS=WHOLE(OTHRS + (OTHRS / ABS(OTHRS)) * 0.5) / 100.PAY04BNHRS=WHOLE(BNHRS + (BNHRS / ABS(BNHRS)1 • 0.5) / 100.PAY04RGERN=WHOLE(RGERN + (RGERN / ABS(RGERN)) • 0.5) / 100.PAY04•OTERN=WHCLE(OTERN + (OTERN / ABS(OTERN)) * 0.5) / 100.PAY04BNERN=WHCLE(RNERN + (BNERN / ABS(BNERN)) • 0.5) / 100.PAY04OTHER=WHOLE(OTHER + (OTHER / ABS(OTHER)) • 0.5) / 100.PAY04•HOLDY=WHOLE(HOLDY + (HOLDY / ABS(HOLDY)) * 0.5) / 100.PAY04VACA=WHOLE(VACA + (VACA / ABS(VACA)) • 0.51 / 100.PAY04SICK=WHOLE(SICK + (SICK / ABS(SICK)) • 0.5) / 100.PAY04•GROSS=WHOLE(GR(1SS + (GROSS / ABS(GROSS1) * 0.51 / 100.PAY04CNET=WHOLE(CNET + (CNET / ABS(CNET)) • 0.51 / 100.PAY04IF(LINE — 50) 385.380.380PAY04• 380 IPAGE=IPAGE + 1PAY04WRITE(3.19) COMP. NDWK. !PAGEPAY0419 FORMAT(11120X0FACTORY PAYROLL I OX.16A2.5X0W/E loA2.2("".A2). PAY04•1 10X0PAGE NO '012/1PAY04WRITE(3.10)PAY0410 FORMAT(' NUMBR'5XONAME 1 17X0REG HRS OT HRS BNS HRS REG ERN OT PAY04• 1ERN BNS ERN SPECIAL HOLDAY VACATION SICK GROSS')PAY04WRITE(3.201PAY0420 FORMAT(' FICA FWT LOCAL C.U. U/D U/A INS STCK MISC NET') PAY04• LINE=0PAY04385 WRITE(3.11) NUM. NAME. ICNT► RGHRS. OTHRS. BNHRS. RGERN. OTERN. PAY041 BNERN. KO. OTHER. HOLDY. VACA. SICK. GROSS. IFICAs PAY0489


Section SubsectionsPage35 20 10 94PAY04 PROGRAMPAGE 132 TAX, LOCAL, ICU. IUD. IUA, IINS, ISTCK, MSC, CNET PAY0411 FORMAT(/01X.I4,2X19A2,I506(2X,F6.2),1X,A1,5(2X,F6.2)/1X,I5,2X18I5oPAY04• 1 F8.2)PAY04FIBRE(NSEX)=FIBRE(NSEX) +PAY04PAY04• LINE=LINE + 3ICNT=ICNT + 1PAY04510 CONTINUEPAY04PAY04CPAY04C WRITE CONTROL TOTALSPAY04CPAY04•TGRS=TOT(21)PAY04TNET=TOT(11)PAY04WRITE(1.151 TOTRG, TOTOTt TOTBN, TOTSPPAY04•15 FORMAT('INPUT TOTALS ',4(3X,F8.0)) PAY04WRITE(1,16) TOT(1), TOT(3). TOT(5), TPAY0416 FORMAT('PROCESSED TOTALS ',4(F8.0,3X)) PAY04•WRITE(1,17) XREG, XTOT,X8No XSPPAY0417 FORMAT('ERROR TOTALS 1,4(3X,F8.01) PAY04A=TOTRG - TOT( 1) -. XREGPAY04•8=TOTOT .• T0T(3) -. XTOTPAY04C=TOTBN - TOT(5) -• XBNPAY04D=TOTSP .• T .. XSPPAY04•WRITE(1,18) At B, C, DPAY0418 FORMAT('THE DIFFERENCES's4(3X,F8.0)) PAY04C 4* - ■ • w' - ". - - ... .. - - .. ------------------ PAY04•CPAY04C WRITE THE PLANT GENERAL LEDGER INFORMATION AFTER THE TOTAL LINE PAY04CPAY04•FIBRE(3)=FIBRE(3) + TOT(1)PAY04FIBRE(4)=FIBRE(4) + TOT(2)PAY04FIBRE(5)=FIBRE(5) + TOT(3)PAY04•FIBRE(6)=FIBRE(6) + TOT(4)PAY04FIBRE(7)=FIBRE(7) + T0T(9)PAY04FIBRE(8)=FIBRE(8) + TOT(8)PAY04•DO 520 1=1,10PAY04520 TOT(I)=WHOLE(TOT(I) + (TOT(I) / A8S(TOT(I))) * 0.5) / 100. PAY04WRITE(3,13) (TOT(I)II-1.10)PAY04•13 FORMAT(/0 '.'FST LINE TOTAL',10F10.2) PAY04TOT(21)=..707(21)PAY04IPAGE=IPAGE + 1PAY04•WRITE(3,19) COMP, NDWK, IPAGEPAY04DO 550 1=1,11PAY04TOT(I+10)=-WHCLEITOT(I+10) + (TOT(I+10)/A8S(TOT(I+10)))*0.5)/100. PAY04•550 WRITE(3,14) IT0T(1). TOT(I+10) PAY0414 FORMAT(/020X,I4,5X,F9.2) PAY04C----- - - - -. .- - - - - ------------------------ PAY04•CPAY04C WRITE THE PLANT' INFORMATION BACK TO DISK.PAY0490


SectionSubsectionsPage35201095PAY04 PROGRAMPAGE 14CKRITE125 1 NOPLT/ COMP, 1CHCK, IWEEK. FIBRE. !TOT. CKMAX. TGRSs1 TNET. ICNTC• CC STOPC• CALL EXITEND41VARIABLE ALLOCATIONSICCL .0058 IWVA =0058 MUNC =0058 LBO . 0058 LBT .0058 LMC =00513• 165 .005C INA . 005C FIBRE=0072 GRID . 0084 SPECL=0080 TOT =00CCXREG =0102 XSP =0105 TOTRG=0108 TOTOT . 0108 TOTBN=010E TOTSP.0111ADREG=0120 AO =0123 HOLDY=0126 OTHER=0129 SICK . 012C SPA .012F• OTERN=013E ERNGS=0141 GROSS=0144 TAXBL.0147 ATAX =014A CNET .0140C =015C D =015F /DATE=0160 INDEX=0267 I5UPP.0274 ITOT =027FCOMP =02A1 TAX =02A2 IC =02A3 I .02044 IPAGE.02A5 LINE .02A6• INOX =02A8 ILST =01AC LAST =02AD KPLNT=02AE /CLCK=02AF IF/LL.0280ADUES=0285 NWKMP=0286 NWKP0 . 0287 MAR =0288 NXMPF=02139 NXMPS.02BANCUDD=028F NCHCK=02C0 NADWH=02C1 NSTCK=02C2 NINA =02C3 NMISC.02C4• IOTRT=02C9 IVRAT=02C A IFICA=02C111 LOCAL=02CC IUD =02CD IUA .02CEIDED =0203 1PD .0204 ICNT =0205• STATEMENT ALLOCATIONSPHIL =0338 1 .034A 2 =0353 3 .0365 4 .0308 22 =03E85 .0412 6 .0420 7 .0433 8 =0446 12 .045E 9 .046E15 =0507 16 .0515 17 =0524 18 .0532 13 =0540 14 .054E55 .0505 60 =05CD 62 =05DF 70 =05FE 71 =0612 72 .061C79 .0649 80 =064F 81 =0655 83 =0659 90 .0674 103 =0602120 . 0712 125 =0738 135 =077A 136 =0784 600 . 07AF 601 =078C605 =0819 606 =0820 607 =0831 608 . 0830 611 =0849 609 =0855150 =0894 :43 =08AD 144 =0883 160 =0813C 165 =08C0 180 =08F5•241 =094C 142 =0955 250 =0969 246 =0960 247 =0971 252 =09A3261 =09(2 265 =09CC 270 =0902 275 =09E6 280 =0A05 282 =0A09300 =0A3D 301 =0543 305 =0A48 309 =OAS' 310 .0859 320 .0568• 345 =0AA4 350 =0A80 355 =OACA 360 . 0A09 365 =0AE1 366 =0AE8500 =001E 515 =0D9C 380 =0E7A 385 =0E98 510 =0EE7 520 . 0F9F• FEATURES SUPPORTEDONE WORD INTEGERSEXTENDED PRECISION• IOCSPAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04PAY04IN' ..0050 IN2 =005C 163 . 005C 154 .005CYTD .00F6 I =00F9 XTOT . 00FC XBN =DOFFCKMAX=0114 RGHRS.0117 OTHRS . 011A BNHRS=0110SPB .0132 VACA =0135 RGERN.0138 BNENN=0138TGRS .0150 TNET .0153 A .0156 8 =0159KODE =0282 NAME =0288 NDWK =028E ASSAN=0291NOPLT=02A7 KARD =02A8 ICHCK . 02A9 IWEEK=02AAKO =0281 IND =0282 NUM =0283 NSTAS.0284NSEX =02BB NRATE=02BC LYRHR=0280 NCU .02131NUA =02C5 NSTKD=02C6 INIT =02C7 K .02C8ISTCK.02CF TINS . 0200 ICU .0201 IMISC=020223 .03EA 24 .03F8 25 .03FA 21 .041019 =0477 10 =0499 20 =0400 11 =04EE50 •0589 99999.0562 51 .0588 52 .058F75 =0627 76 =0637 77 .0630 78 .0643110 =060A 100 =06E0 105 =06E0 115 =0704602 =0708 603 . 07F2 610 •07F7 604 .0812139 =0866 137 =0874 141 =087A 142 •087F185 =0906 230 . 092A 235 . 0932 240 =0948253 • 09A9 251 =09AF 255 . 0985 260 =09138285 =0AOF 286 =0A15 290 =00421 295 .0A25325 .0A70 330 . 0A7F 335 =0A87 340 =0A90367 =OAEF 368 =0AF9 370 =0801 375 =0812550 2103ECALLED SUBPROGRAMSWHOLE DATSW STACK IT EABS EADD EADDX ESUB ESUBX EMPY EMPYX EDIV ELD ELDX ESTOESTOX ESBR EDVR EDVRX IFIX FLOAT TYPEZ SRED SWRT SCOMP SF10 SIOAI SIOFX SIOIX 5/OF5101 SUBSC PAUSE SNR SUBIN CARDZ PRNTZ 5DF10 SDRED SDWRT SDCOM SDAI SDAF SDIX SOF•SDIREAL CONSTANTS.500000000E 01=02E6 .100000000E 03.02E9 .000000000E 00.02EC .8000000001 01=02EF .800000000E 03=02F2.160000000E 02=02F5 .200000000E 01.02F8 .500000000E 00=02F8 .440000000E-01=02FE .290400000E 05=0301• .135000000E 04=0304 .128000000E 04.0307 .108000000E.-01=030A 02000000001.01=0300 .153850000E 04=0310.961500000E 03.0313INTEGER CONST,4751=0316 21=0317 0=0318 50=0319 2.031A 6=03113 25=0310 1111=0310 15.0311 14=031F100=0320 250=0321 90=0322 200=0323 150=0324 30=0325 3=0326 16448=0327 9.0328 1000=0329• 3776.032A 3520=0328 3264=0320 3008=0320 2752=032E 12=032F 10000=0330 4=0331 10=0332 5=03337=0334 11=0335 4369=0336 256=0337• CORE REQUIREMENTS FOR PAY04COMMON 0 VARIABLES 742 PROGRAM 3466• END OF COMPILATION91


Section Subsections Page35 20 10 96// JOB// XEQ PAY04 3*FILES 101,INDX1 102,INDX2 t 103tINDX3 t 104.INDX4 t 105.INDX5 o 106tINDX6*FILES(25oPINFO).*FILES(101*INDX1)0(102tINDX2),(103,INDX3),(104tINDX4)t(105tINDX5),(106tINDX6)1022168021568 00440000001650000105000139001001040000000001001000800200400 61002040000000000002000800300400 61003040000250000003000800400400 61005040000300002005000800600300 61004040000000000004000800500400 61006040000000000004000800500400 81016040000500000006001600700400 61107040000000002507000800800500 6• 1218040000500000008000800900600 61347040000000003009000800100700 61603040000100002001000400200200 69Input cardsTHE CONTAINER CORP. 022168CHECK NO 1WEEK NO 110 W/E 021568NET MAX 25000.II MAXIMUM CHECK AMOUNT MAY BE CHANGED BY SWITCH 14.SWITCH 15 WILL CHANGE THE CHECK NO AND THE WEEK NO. SET SWITCHESREQUESTED AND PRESS START• i CHECK CARD WITHINPUT TOTALSPROCESSED TOTALS• ERROR TOTALSTHE DIFFERENCES••CLOCK NUMBER44000.40000.0.4000.1 61650.1650.0.0.1050. 13900.1050. 12700.0. 0.0. 1200.Console Printer output92


Section SubsectionsPage35 20 10 97• i/ XE0 PAY04 3*FILE3(1.COLFP),(214VAPPio(3,MNCFP),(4,LBOFP10(51LBTFP).(61ILMCFP)e•FILES(2511PINFO).*FILES(101,INDX1)0(10211INDX2),(1030INDX3).(1041PINDX4),(105.1NDA5),(106,INDX6)Test outputFACTORY PAYROLLTHE CONTAINER CORP.NUMBR NAME REG HRS OT HRS BNS MRS REG ERN40 FICA FWT LOCAL C.U. U/D U/A INS STCK MISC NETW/E 02-15-68 PAGE NOOT ERN BNS ERN SPECIAL HOLDAY VACATION1001 ROOT 8 BADEN 1 40.00 0.00 1.00 104.40 0.00 2.61 2 12.00 0.00 0.00 0.00 119.01II 524 1774 119 0 600 0 276 0 0 86.081002 JOHN A HORN 2 40.00 0.00 0.00 104.40 0.00 0.00 3 10.44 0.00 0.00 0.00 114.84II 505 1473 114 0 625 0 412 0 0 83.551003 ROBT L SNORES 3 40.00 2.50 0.00 85.60 5.35 0.00 4 8.56 0.00 0.00 0.00 99.51• 438 658 99 1000 600 0 1012 0 0 61.441004 JOHN W CUSSES 4 40.00 0.00 0.00 104.40 0.00 0.00 5 10.44 0.00 0.00 0.00 114.84• 505 833 114 0 625 0 581 200 0 86.261005 JOSEPH MONTANO 5 40.00 3.00 2.00 148.80 11.73 7.44 5 29.76 0.00 3.00 0.00 200.73• 883 3258 200 750 0 0 724 0 0 142.581016 DONALD MILLER 6 40.00 5.00 0.00 112.00 14.00 0.00 0.00 0.00 16.00 4.00 146.00625 896 146 0 0 0 0 0 0 129.331107 A E TAYLOR 7 40.00 0.00 2.50 104.40 0.00 6.52 0.00 20.88 0.00 8.00 139.80580 1898 139 0 0 0 0 0 0 113.631218 DAVID A HUBBARD B 40.00 5.00 0.00 85.60 12.50 0.00 0.00 34.24 0.00 0.00 132.34• 582 2276 132 500 600 0 296 0 0 88.481347 FRANK T DOLES 9 40.00 0.00 3.00 68.40 0.00 5.13 1 7.00 27.36 0.00 0.00 107.89• 475 1030 107 0 400 0 624 0 0 81.531603 AL REYNOLDS 30 40.00 1.00 2.00 148.80 4.01 7.44 2 6.00 0.00 0.00 0.00 166.25ID 732 1888 166 0 0 0 1142 300 0 123.97SFST LINE TOTAL 400.00 1066.80 16.50 47.59 10.50 29.14 84.20 82.48 19.00 12.001SICKGROSSPrinter output, part 193


Section Subsections Page35 20 10 98FACTORY PAYROLL THE CONTAINER CORP. W/E 02-15-68 PAGE NO 2111 ..996.85••••••620 -159.84620 -58.49622 -13.36625 -22.50626 -34.50627 0.00628 -5.000 0.000 -50.67635 1341.21Printer output, part 294


Section SubsectionsPage35 20 10 99<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAM , , ._NAME: 4/c-a/c•-.1.5frdAt9rv// 412'..94:17&PPROGRAMDESCRIPTION:PROGRAM _. ANUMBER: ,`A 1 ' "APPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPEPRINTER...5-40,1 ,7/ 47 ,,, 4,,// SY.0.7,0/4.-41DISKSSWITCHSETTINGSDRIVE NUMBER: 0 1 2 3 4CARTRIDGEID:SWITCH /4UP 0--DOWN/Cbfew//SWITCHUPDOWNAk•AL...AC SWITCH /i/Dr/e&--- UPDOWNINPUT 5-ce■ifid-h /4 fCARDSofle)-744,./ch /6–(4,/,/ Auer; elk')cAave 4-7.ax,:m.,,-", e-Ae..e.A. a.,,,oe....i4 l'-',-74/14...-.7ii, cha,,fie c4ec% e7a-.0-,46 ,' 474d es.■dy e.14.. enersiber"For ogr/WO/71'/WEEKLYEMpa)YEE__/r:AR DS/CONTROLTOTALSrX EQ PA.Y041// J o 5SOURCE OF INPUT:DISPOSITION OF OUTPUT:/ Gifele://i/pe,741110epi A Szare-ig,•c.cre,./ PAY/e: e,,,y ,,,,„ .e ,(2i...c4 ,,,,,,,(4.5-.7‘ df e• /(7,1),,-,/"26:5..4 24%1.~ /:::/...c../.L2),;,71/1c/ ,1474.ois Ai /../e Z?. .21.0y/s- /, Ah• 0..,3.2)...rA yi, Stn/ :aye4. Rey /'o// // /'SfASY t 70 l'w AO payr-o/Arec,:oel.FOR PAUSES AND ERROR MESSAGES SEE ERROR RECOVERY SHEETS95-


cr,t'D07<strong>IBM</strong>tNF DESCRNHONFIELD' HEADINGS/WORD MARKS B Lines Per InchINTERNATIONAL ROSINESS MACHINES CORPORATIONPRINTER - SPACING CHART<strong>IBM</strong> 407, 408, 409, 1403 .; 1404, 1443, and 2203 Print Span :<strong>IBM</strong> 1403 Modals 1 P. 4LV0crID11111111111<strong>IBM</strong> 407, 408. 409, and 1403 Models 6 and 71-100GL UEIIIIIIOI111[111111 lllllllI 2:II /IIIINIIIIII124 ODIOSP lllllll21; MM C1=11:11E1M■I■MJIMMEN11111110111111110111IMMEINEM 111112111111117M11110111=113MIIIMINEINIIIMILEIIIINBOBEIBOUDOEUBBOODOBODUEECOMMOUOMMUDGEMBOUU UCIODUOB000 MODOOMMOODOODEMODUOMMEEDEMODOMEOCOMOODUEOUBMODEUEDDEUE0051ILIIEsMOO ,♦AryAry1 "Y VI. I., .71110:4'. ICA 'A 'A ;COPSI1]KA:41:; ■41: I A <strong>All</strong> 'A 'AA A It 'A A '1 1111_ ;Ai:416N Ai11,'A-1:, M y. 111111 , f 11 ACUl11:111):C4 'AL A ALIA 4O .4.AICAUNE'l 111,1 1 .1111MEA: .4'A.4•1.4:4:111111111i.C1.1.1:1;14 l'Ar.A:■ A Al 3;1///////////// /////LIEllIiCEI 111111111111111111 lllllllll ION lllllllllll111111.1 I CP ■ IE 1■ MI • IjmI II •EUICE1 AEI ElMOON. lllll 11111111B 3J,3E13Ea=MEM'AY/ ► bur &Ir.IN AC HT 1111ElIi11CD ▪ CO▪ CD1■11111E.I1 MEn MEC1 MED MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 11111111111111111111111O1O11111115111511111IIIISIOISIIOORIIIIIIIIIIIIIIIIMIBIOVIONOMIIIIIIII MMMMM"B!!! EaMM M 111111111111ME:0EC] M MM MMMMMM 1111111,--!11II


Section SubsectionsPage35 20 10 101NAMṫ02VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEM46 c;z1 14__ I— te—Isa 0MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication/2"i yyptyz ...5-5.-37yAr, Date 9/6/67_„„ klik..Program Name 6-7/4e,4...4... je.4.,,,,Xe;,..2.57 No.,,e4ya.5 Progra c mmerFUNCTION OF VARIABLESA /2 3 „ef ,of eis-taiizo'r• zero A7/a,-7c. cAd-cA2 19 3 7- 044( 140( 4/seal 4” -zero a',/,17.0ew' ‘="hec,4.1/4/v/i7w.5. 84 /1/I9/ / f .3 67 )904X.Are..0; 80,,,,,- elovw:75,s-x OW g,04as A'aa''s,g,) 2 .......2xyx.xxC/'%111X 6 7- -1,40/b00 ,,,,d,r4„z//7, Ai* ,-, C'e,c...e .4wek....774 42/7 a ,e/e.Z■VeI 3 0 MA 4f;Oc /1/e/d/770z//7/ a P /:za:i>/:,a,a/ cylec,ea4(4„i /1-9/'/;7/e1Q/a/',/zadr,,,07e.i,y7 C'e-,4- " 4erzeue*I4.04,fi° 42/6.4 - - Co.,73/0aiye 19 a 19-7 e1-45/Pt %is Q 400(XX.00 Tr-waie- as-soc_ /---/°o/-/s-GiePs'S' ,.< 3 0 XXXXXOAW Gross amoe,,,/ 6.7 ..)62';ride/o/ce.c,e.//ozz)y ,Q 3 o x)(xx 0- 0 0 (ff-,x>/d1./a/.'s Aa4Ygy joe7y1 X / T - - C/Sed/,-2 067 /oe9,,e,.2- :',-7 r / /V — – L-7u/v.algjaWC A' / 7-/5-874edcl'o,^/"U/7Seq/%7,2/,7./ fo -ZVIq CXec.- ",e.//7716,/^ z4./Ae,7 4,i.,,,iiiini dedt.2- /v7-- I Am ii •-.f,gzljg."7.b'6c7;61;,)/°'''''°/Kr5-A°41/a/..z-coZ I / r gir y )Pe' ibye 'vl'o°/6Yee 74./ey se 7A-efICU .2- / .,= XIX/A/ 0 .Z.,7a%;'/:0E/.1/5'. cre,/ u/0/7 aita'ae-6,0/7.27)gre 42 % 2:0 - - .6kci darkI- D 1 . 2 - / 0 &XXX 03 _/-cf cec, 17 40 /11 a e i''''102 I / 0 XXXX 0 P? ' c/ocA ,-)6,,,vie"Mode: I = integer, R = real, D = decimal, A = alphabetic97


Section Subsections Page35 20 10 102VARIABLES <strong>IBM</strong> ( <strong>1130</strong> COMPUTING SYSTEMVARIABLE SUMMARY SHEETNAME• ii,s,12-66z0.2 I-iliLj 0. °IS 5c1- , °=MAX.VALUEMIN.VALUEApplication ,,,e240.y/e z2/ 45i,....5-r,4,,,k, Date Va/67Program Name 6--,4ec 4. /4,/,,,,A.-7,5 No./30/05-FgerAerFUNCTION OF VARIABLES.2-C.IC/9 I / D A/MX 0 _Z;.-2,641./z/d/S ic.1";9 1,fxZ/JZL Z / 7- 7 -z-;y7k-z7/e-s 47Z-,--/4-4;,-, /2 e-'11 ,;-?./G_ZIA/5 Z / C XX 0 Z/24//i/a4/..s= ,;754,/ra/26 .e ek//ac-74ziw?L ST r / T 250 .50 Las/ fr.eco,-4,/.9,/,-,6e,-, ,;9,a, ' X/eTA,Z5C I / C VW 0 1.:2d/17/wZ.5 riv/Se. /,t='e/C7'/ 7i7 5TA/2X 2 I r 466 0/ Z/2, li4 A-,a,),I,r/-,.,p,/,,...,,‘,7,2. ,L1.X/t/IT ..2- 0 va.xx 0 (/rile,„, //-7/7,,,,6,,, 76.7e,„f-A/.1 2- / T 250 f /46-6./w/fiar6,,.-/;2 /dexes7, ‘ e9,1104-e- /4-1,v2 x / 4/ – – Eiaii/d4v,74 /0 1/1/.iZA/..3 1 / A/ - - E9a/a/eF,7/ 14:1i1/11Nd I / 4/ - - _eii3a/&°,27 ‘ 7o _r/v_i.z-A/J Z / A/ - - z-f&J/,/9/).7 1 /o ,f/v.11 /1/a Z / A/ - - 11/4/Z-', 4 AZ-47.1ZO7/e7" Z / T s:00 Dve,://iyie,/,,,,,a7le.Z. '0 I / D 2 0 2.4e-44.5. Szb/a5 d/Lat".0M//4'poeel /).g cyc4,7/04/7-- r / T 2 / .5ē/y4,50,4‘.-,,ednApziwasesk,4een ,-,i.2--57- Z/ 9 2//'i 0 7iv4,/,/a/. sifve..4 d6w/ae.71.%.,).2:?//7.4? _I /3 o x0.4( >0 s t/h9/e/w/i/la/ ..5.-/-,e ray17:07- 2" // 7- /723 /1&/7/1 afiiii,/. 74./aAsk, 710, 4;pietd/kfr f'r.2-(1,4 ..2" / C Sao 4 ' . A a // .///, '0, df ‘ 47 r?P" de fe '1G1%/7'Mode: I = integer, R = real, D = decimal, A = alphabetic98


Section SubsectionsPage35 20 10 103VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMNAME2 LIJ '- D0_. z, 1-- a.02z6I-.- ES0-°MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication p yea//z 5/5724-4, Date 9M/62Program Name e.--4,e,4 irk,-,/,;-,,g. No/90/dC fgi/ar.;terFUNCTION OF VARIABLES_la° I / D /50 # "Ads//d/ an/o.> Wye. 5 /4v/eio-ri/1/g 1T .I / D 4X1 ilerg 47 y■-a4.7-11/ZZA' I / 7- -5- I if4;:eA .d.7.,-z,..,./.ZR/1/A f / 4/ - - zpfoviv/e/i/i6 zeZ1/ 1 / a now if .%•:;


Section ' Subsections Page35 20 10 104VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMNAMEȯ 02137*8 c;za.2 I-t a.Lu mDi-LI-MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication /0/4/yea/ _5-s/.5744"/W Date ,4SA7Program Name 6.--j, ,, .44/4:, No.E.405 PitigeerFUNCTION OF VARIABLESLe, .1 A/ - - tifedithwil 137 feaIn' Z/4/ - - 4vakilevio' * /e2'lie z / 4/ - rea/ko/emi 4 TeDI&Kw/ 1 / 0 AV 0( A-a/ /axaezzhe I / o XXVX 0 zzerizezfr ee, 0, Body'sill, z / 4a 2 / 0,;ḥ.`,/ do/as- (/-.5-..:9946), (z- '/''14,15. il/ 7 T - - i-/ rixis:‘ sf.) .x1,45,e2 41/ 7 T - - E-7,7 /w.a (zer, sioa,-,5-..5-)iiaw- ,z- / - - t-ed/iwzo.774 /0 Zz4/42g/,9 I / o xxxx 51 ii.xxo;,74,/ ‘„,;01.0/4, d47.ago/44/Pie & 9 4a - - Tito/gee .9.4we-/1/e/./ae r / O )O(Y)O( 0 ad• //z/x6e,".se,14,. 7/-is e,/,/,4,3we,(/6' T / ZO XXXX G/.-40;/an4i/7 a/ev/z/4-1/7.4/cf/D Z 0 ,YXX•X iiin/1# cliiaai/C/n/e a4/1,GXg5K;7d/;fe.V.da/i5 i / 40 )(a)( f/4/4;c4 legs 9/401e/ek4/1/0it/e 92 3 1,-D - - /0,' 7,,r/;,. , a/i/e/1/ 7 4/ 7 0 lizAvat/ ,,aa e-,,/,o, e'/4/Er I I/ 7 0 lale -E;%'/v/ gi.1A/572 /I/ 7 0 OM( - . E. aii.e., geiiOr i 4/ 7 MOW ° 11,,g, ire/* Mode: I = integer, R = real, D = decimal, A = alphabetic100


Section SubsectionsPage35 20 10 105NAMEVARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEM. Lc:LI/2':'.6 ciz0.1-it ' F:0 nc‘. 0MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication )„,0/1)ZZ .556-7Z7r, Date . A7Program Name 6.----jecz ii,/,,,,,,,, No/0;75 ProgrammerFUNCTION OF VARIABLES4//4/5 Z / 40 X)(11 I Acura/lee ./6-1.0/7x/Wor 2" / o xxar , 0:s‘-e//,/,z/5 de:a1J6--h;e2,x,--/f/40/- z / 7- 0 1 ew/ fleirnder-////0917 2. / 1549 ,3,,, 4 2.5- e/7/Lae/a4y ,-,,i,4/.07-," Z / 17 400( ic, i7e/,97de. ,- 4y- .--glo..aoi,a,7),/5:99A/sex r / 0 ,y / 5&A/--&-4,,,,-)z--,,,a/e,-.0_,z,-‘,‘-,e,,,..),V551 t 1 3 1)Veidays94/1s ..S;c/W..5,:-Ge..7/// .lu,6Pv/1/575. -1 / 5 i 2217:;),51- LILIVV1,1-CZerr:;;,.4f,,, (8,-.4,:tweZnWsre:e .r / /,-D xxxX X j-/o,e, .44,,//-4;4&7-' ,


Section Subsections Page35 20 I 10 106NAMEVARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEM• Laio20"E04-0 ciz0-2 Lu I- ni– –--- Enl– 2–O. VEMAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETA pplication Aixeozz ,5x5-7--eAe Date 9/6 )6 7Ali cProgram Name 6---"Aec•Z if /./1/7. 1.9 No. /J ProgrammerFUNCTION OF VARIABLES/iric:P/V i'V 3 AUKx 11/ Perk tod,w/;ysCOWies P 3 40xrxxx4:10( "eep/of, A,e/.:5-5, ,f s o xv(0/19( ,_5-//40,4.974 2 0 Algioty 40 76,--/a/yre.s.- iy co,77p.ii/TAX Z / 0 Km( 1,or0 ,-,,,-aig,a//e/10,40/' 7°*,,r723 W 3 0 VW 9 sli 7074/ .e'll 6y 6,,,-)pyi‘,.s /eJ T Wow gi.di 774.a/ 9/-Tossriver if3 r vegooexoo 72'i7/ /s70725x/ ii 3 1 010(4 410( Jox/crioars44/Ao./7 5,0a/re o/c,Tre,7-- R 3 Z )0000. OW Orhodrx 44/ /1.o../7 avapeew.6c.7--‘i-/e6 R 3 .Z. 4004-i-421 44 kz/45- 44/Aer,7 -1v,/v, lae.707-5.0 .Q g 1 MX 40(,)010/ ..,


Section SubsectionsPage35 20 10 107InitializeVariables\ReadanEmployeeRecordfromDiskRead Plant No.Date andControlTotalsLast EmployeeNoYesArecc 80and PlantNo. ValidCalculateControlTotalsWrite AnySpecialChecksYesRead <strong>the</strong>Plant Info,Recordto EmployeeUpdateRecordWriteControlTotalsWriteControlInformation\Write First/Line ofCheckWrite Updateto PlantRecordReadCheckNumber\Write SecondLine ofCheckRead MaxCheckAmt.\Write Third/Line ofCheck103


Section Subsections Page35 20 10 10811 // FOR* 10CSICARD,TYPEWRITER.KEYBOARD,1132 PRINTER.DI5KA*LIST ALL40 ** PAY05 PROGRAM* NAME PAY05* ONE WORD INTEGERS40 * EXTENDED PRI:1510NC JOB NAME -- PAYROLL SYSTEM CHECK WRITINGC JOB NUMBER PAY05ID CC PROGRAMMER -- C.R.KLICKC DATE CODED 01/20/68C DATE UPDATED --CPAY05CFILE FILE RECORD NO. OF RECORDS PAY0540 C NAME NUMBER LENGTH RECORDS PER SECTORPAY05C INPUT FILES --. 1. COLFP 1 160 250 2 PAY05C2. WVAFP 2 160 90 2 PAY05IP C3. MNCFP 3 160 200 2 PAY05C4. LBOFP 4 160 50 2 PAY05C5. LBTFP 5 160 150 2 PAY05II C6. LMCFP 6 160 30 2 PAY05C7. PINFO 25 106 6 3 PAY05C8. INDX1 101 1 250 320 PAY05II C9. INDX2 102 1 90 320 PAY05C10. INDX3 103 1 200 320 PAY05C11. INDX4 104 1 50 320 PAY05ID C12. INDX5 105 1 150 320 PAY05C13. INDX6 106 1 30 320 PAY05CPAY05• C OUTPUT FILES -- 1. COLFP 1 160 250 2 PAY05C2. WVAFP 2 160 90 2 PAY05C3. MNCFP 3 160 200 2 PAY05• C 4. LBOFP 4 160 50 2 PAY05C5. LBTFP 5 160 150 2 PAY05C6. LMCFP 6 160 30 2 PAY0540 C 7. PINFO 25 106 6 3 PAY05CPAY05CPAY0540 C ALLOCATE ARRAY STORAGE PAY05CPAY05INTEGER COMPI161. TAX. YIN1(7), YIN2(6), YOUT1(7). YOUT2(6) PAY0540 DIMENSION FIBRE18/11 IDATE(3). ISUPP(13). ITOT(11), JGRO517). PAY051 JOUT115/, JOUT2(7), JVACA(51, MASK(7), MASK217/, PAY052 NAME(9), NDWK(3), NET017/11 NET1I7I. NET2(7). NET4(7). PAY0541 3 N55ANI3/. QRTD(6), YTD(14) PAY05CPAY05C DEFINE FILES FOR THIS PROGRAM AS DESCRIBED ABOVE. AND EQUIVALENCEPAY05IP C THE VARIABLES FOR THE NEXT RECORD NUMBER.PAY05CPAY05DEFINE FILE 1(25011160.U.1C00. 2190,1600UPIWVA/t PAY05•PAY05PAY05PAY05PAY05PAY05PAY05PAY05PAY05PAY05PAY05PAY05PAY05PAY05104


Section SubsectionsPage35 20 10 109PAY05 PROGRAM PAGE 021 3(200,160,U,MUNC). 4(50.160,U,LB0), PAY05• 2 (150,160,U,LBT). 6130,160,U,LMC), 25(6,106,U,IC), PAY053 101(250.1.UtIN1). 102(90,1oUrIN2). 103(20001.U,IN3),PAY054 104(50,1,U.IN4), 105(150,10U,IN5). 106(30.1,U►IN6) PAY05• EQUIVALENCE (ICOL,IWVA,MUNC,LBO.LBT,LMC), PAY051 (IN1IIN2tIN3tIN4IpIN5oIN61 PAY05CPAY05• C PAY05C INITIALIZE VARIABLESPAY05CPAY05• DO 4 1=1.7 PAY05MASK2(I)=16448PAY054 MASK(I)=16448 PAY05• MASK2(7)=■4032 PAY05MASK(4)=23360PAY05MASK(5)=19264PAY05• ICCL.1 PAY05IN1=1PAY05TA=0.PAY05• TB=0. PAY05NRITE=0PAY05CPAY05It CPAY05C READ PLANT NO., DATE, AND CONTROL TOTALS, AND VALIDATE CC 80 AND PAY05C THE PLANT NUMBER.PAY05• C PAY0599999 READ(2,1) NOPLT. MATE, NDWK, TOTRG, TOTOT, TOTBN, TOTSP, KARD PAY051 FORMAT(I1o6A2,4F7.0,38X,Il) PAY05• C PAY05VALIDATE KARD AND NOPLTPAY05C IF VALID — 60PAY05• C IF INVALID — 55 PAY05CPAY05IF(KARD) 55,51.55PAY05•51 IF(NOPLT) 55.55.52 PAY0552 IF(NOPLT — 6) 60,60.55 PAY05CPAY05• 55 WRITE(1,2) PAY052 CC 1 AND CC80 ON FIRST CARD') FORMAT('CHECK PAY05PAUSE 1PAY05•GO TO 99999PAY05PAY05CPAY05• C READ THE PLANT INFORMATION RECORD FROM DISK. PAY05CPAY0560 READ(25'NOPLT) COMP. ICHCK, 'WEEK, FIBRE, ITOT, CKMAX, TGRS, TNET,PAY05• 1 ICNT PAY05CPAY05C WRITE THE PLANT INFORMATION FOR CONTROL PURPOSES AND ACCEPT ANY PAY05105


Section Subsections Page35 20 10 110PAY05 PROGRAM PAGE 03CHANGES TO IT THRU DATA SWITCH SETTINGS.PAY05• C PAY0562 WRITE(103) COMP. !DATE+ ICHCK. IWEEKt NDWKt CKMAX PAY053 FORMAT(/16A2' '3A2/'CHECK NO 'I5/'WEEK NO 'IlPW/E '1A2/t 'CHECK PAY051MAX'tP8.0/0MAXIMUM CHECK AMOUNT MAY BE CHANGED BY SWITCH 14.'/ 'PAY05•2SWITCH 15 WILL CHANGE THE CHECK NUMBER'/'SET SWITCHES REQUESTED ANPAY053D PRESS START')PAY05• PAUSE 1111 PAY05BR=WHOLE(CKMAX + (CKMAX / ABS(CKMAX)) * 0.5) / 100. PAY05CALL DATSW(15,I)PAY05•GO TO (7001).1PAY057C WRITE(1.21)PAY0521 FORMAWENTER CHECK NO ■ FIVE DIGITS') PAY05PAY05• READ(61122) ICHCK22 FORMAT(15)PAY05GO TO 62PAY0571 CALL DATSW(140I)PAY05GO TO (7205)11PAY0572 WRITE(1123)PAY05PAY05•23 FORMAWENTER MAXIMUM CHECK AMOUNT ■ FIVE DIGITS')READ(6,24) CKMAXPAY0524 FORMAT(F5.0)PAY05GO TO 62PAY05•CPAY05C COMPLETE VARIABLE IN ITIALIZATIONPAY05PAY05•75 INDX=NOPLT + 100PAY05GO TO (7607,7809080 1181).NOPLTPAY0576 ILST=25(PAY05GO TO 83PAY0577 ILST=90PAY05PAY05• GO TO 8378 ILST=200PAY05GO TO 83PAY05PAY05• 79 ILST=50GO TO 83PAY0580 ILST=150PAY05PAY05• GO TO 8381 ILST=30PAY05C.PAY05PAY0541C READ AN EMPLOYEE RECORD FROM DISK. AND USE THE PAID INDICATOR TO PAY05C DECIDE IF A CHECK SHOULD BE WRITTEN.PAY05•83 READCINDMILST) LASTICHCK=ICHCK ■ 1870 DO 700 I=1.LASTREAD(NOPLT'I) NUM. NAME, NSSAN► NSTAS. NDUES. NWKMPt NWKPD, MAR►1 NXMPF. NXMPS. NSEX► NRATEt YTD. GRID. LYRHR. NCU. NCUDD.106


Section SubsectionsPage35 20 10 111PAY05 PROGRAM PAGE 042 NCHCK. NADWH, NSTCK, NINS, NMISC. NUA, NSTKD. ISUPP, INIT. PAY05II3 IPD. 'FILL, GROSS. IVRAT. 10TRT, RGHRSt OTHRS, BNHRS. RGERN. PAY054 OTERN. BNERN, OTHER, KO. HCLDY. VACA. SICK. CNET, IFICA, TAX, PAY055 LOCAL, ICU, IUA, IUD. IINS. ISTCK. IMISC PAY05• C PAY05IF(IPG - 1) 700,505,860PAY05860 IF(NRITE .. NUM) 700,875.700 PAY05875 WRITE(1,25) PAY0525 FORMAT('ENTER CLOCK NO.') PAY05READ(6,26) NRITEPAY05• 26 FORMAT(141 PAY05GO TO 500PAY05PAY05IICPAY05C CALCULATE CONTROLSPAY05CPAY05• 505 TA=TA + GROSS PAY05TB=TB + CNETPAY05500 IPD•2 PAY05• ICHCK=ICHCK + 1 PAY05NCHCK.ICHCKPAY05PAY05CPAY05IIC WRITE UPDATED EMPLOYEE RECORD BACK TO DISK.PAY05C CHECK FOR DEDUCTIONS AND MARITAL STATUSPAY05IICPAY05WRITE(NOPLT'I) NUM, NAME, NSSAN, NSTAS, NOUES, NWKMP, NWKPD, MAR. PAY051 NXMPF, NXMPSt NSEX. NRATE, YID. ORTD, LYRHR, NCU. NCUDDil PAY05• 2 NCHCK, NADWH, NSTCK. NINS. NMISC, NUA. NSTKD, ISUPP. INIT. PAY053 IPD. IFILL, GROSS, IVRAT. IOTRT, RGHRS, OTHRS, BNHRS. RGERN, PAY054 OTERN. 8NERN, OTHER, KO, MOLDY, VACA. SICK. CNET. IFICA. TAX, PAY05• 5 LOCAL. ICU, IUA, IUD. IINS, ISTCK. IMISC PAY05CPAY05IF(IFILL) 550,550.510PAY05• 510 WRITE(1,20) :FILL. NUM PAY0520 FORMAT('DEDUCTION NO 'Il' NOT MADE FOR '14) PAY05550 IF(MAR .. 1) 5.10.5 PAY0510 MAR.-7616PAY05IIGO TO 15PAY055 MAR=-11200 PAY05IIC - - -PAY05CPAY05C WRITE FIRST LINE OF CHECK AND PUT TOGETHER SECOND LINE OF CHECK. PAY05IICPAY0515 WRITE(3,5000) NUM. NDWK, NAME, NSSAN, MAR. NXMPF. NRATE. IOTRT. PAY051 IVRAT. BR PAY05• 5000 FORMAT(3H1 t 14,1X,3A2,3X.9A2,1X.13,12.14.1X,A1.12.313 , 50X .F 6 .2) PAY05CALL DATSW)15,IPNT)PAY05GO TO (90.91),IPNTPAY05•107


Section Subsections Page35 20 10 112PAY05 PROGRAM PAGE 0590 PAUSE 2PAY05•CPAY0591 11=RGHRS / 10. + 0.05 PAY0512=0THRS / 10. + 0.05PAY05• I3=BNHRS / 10. + 0.05 PAY0514 = RGERN PAY0515=0TERNPAY05• 16=BNERN PAY0517=0THERPAY05I8=HOLDYPAY05• 19=SICK PAY05CALL PUT(JVACA01.5.VACA * 10.115..1/PAY05CALL PUT(JGR05.1.7.GROSS * 10..5.011PAY05• CALL MO 1 )MASK2,307,JOUT1 1111 PAY05CALL MOVE(MASK2.1.7,JOUT2,11PAY05CALL EDIT(JVACA,1,511JOUT1.1.5)PAY05•CALL EDIT(JGROSt1,71-1002.107)PAY05c - - - - - - - - - - - - ---------------------PAY05PAY05• C WRITE SECOND LINE OF CHECK AND PUT TOGETHER THIRD LINE OF CHECK. PAY05CPAY05WRITE(3.5001) 110 12, 13. 14. 15. 16. 17. KO. 18. JOUT1, 19. PAY05• 1 JOUT2, NAME, IDATE. ICHCK PAY055001 FORMAT(".314,215,1X.215.2X0A1,14.5A1.15,7A1,8X,9A2.BA,3(A2,1X1, PAY051 14)(0151 PAY05• CPAY05CALL DATSW(15,IPNT)PAY05GO TO 192,93),IPNTPAY05• 92 PAUSE 3 PAY05CPAY0593 CALL PUTINET4.1.70CNET * 10..5..1) PAY05• CALL MOVE(MASK2.1.701E71,1) PAY05CPAY05CALL MOVE(MASK211.71,NET2111)PAY05• CALL MOVE1MASK.1.71INET0,11 PAY05CALL EDIT(NET4.1,7oNET1.1.7)PAY05CALL EDIT(NET4.1.7.NET2.1.7)PAY05• CALL EDIT(NET40,70NETO.1,71 PAY05c - - - - - - - - - - - ----------------------PAY05CPAY05• C WRITE THIRD LINE OF CHECK AND PUT TOGETHER FOURTH LINE OF CHECK. PAY05CPAY05WRITE(3.5002) IFICA, TAX, LOCAL. ICU, IUD. IUA0 1INS. !SICK, PAY05• 1 'MISC. NET1. NET2, NETO PAY055002 FORMAT(' 1 .2(14,15)1,314,4X.215.6X0A1,19X115A1110X02A1020X17A1/ PAY05CPAY05• CALL DATSW(15,IPNT) PAY05GO TO (94,95),IPNTPAY0594 PAUSE 4 PAY05•108


Section Subsections Page35 20 I 10 113PAY05 PROGRAM PAGE 06C••••••••-••PAY05ID 95 CALL PUT(YIN1.1.7.YTD11) * 10..5..11PAY05CALL PUT(YIN2.106,YTD(3) • 10..5..1)PAY05CALL MOVE(MASK2.1.71YOUT1.1)PAY05• CALL MOVE(MASK202,71)YOUT2.1) PAY05CALL EDIT(YIN1(11,7,YOUT1,1117,PAY05CALL EDIT(YIN2.196.YOUT2.1.61PAY05• ID1=YTD(2) PAY05ID2*YTD(8)PAY05CPAY05• C••••••••• PAY05C WRITE FOURTH LINE OF CHECK AND GO BACK FOR ANOTHER EMPLOYEE. PAY05C -- .*-PAY05ID WRITE(3,5000 YOUT1. YOUT2r ral, 102PAY055004 FORMAT(' '.13A1.215) PAY05CPAY05• CALL DATSW(15,IPNT) PAY05GO TO (96.700).IPNTPAY0596 PAUSE S PAY05• cPAY05C •••■••- GO BACKPAY05C•••••••••-PAY05• 700 CONTINUE PAY05C-`•-•••PAY05C"....PAY05• C----- WRITE 44Y SPECIAL CHECKS. SIGNAL THIS CONDITION WITH DATA SWITCHPAY05C ZERO.PAY05CPAY05•CALL DATSW(0.1)PAY05GO TO (850,855).1PAY05850 WRITE(1.25) PAY05IV READI6,26) NRITEPAY05GO TO 870PAY05C - - ----- • PAY05• C--•••• PAY05C •- ■.-... WRITE CONTROL TOTALSPAY05C -.-...-PAY05• 855 ICNT ■ ICNT ••• 1 PAY05IF(ICHCK ICNT) 8000801.800PAY05800 WRITE(1.100) ICNT, ICHCK PAY05• 100 FORMAT('REGISTER CHECK NO 'IS' DOES NOT AGREE WITH THIS RUN CHECK PAY051NO '15)PAY05GO TO 802PAY05• 801 WRITE(1.101) PAY05101 FORMAT('CHECK NUMBERS AGREE') PAY05802 A*TGRS - TA PAY05ID BmTNET - TBPAY05WRITE(1.102) TGRS. TNET, TA. TB. A. 8PAY05102 FORMAT( I REGISTER TOTALS 1 2(3X.F9.01/ . CHECK TOTALS '2(3X.F9.0)/ PAY05109


Section Subsections Page35 20 10 114PAY05 PROGRAI PAGE 071 'DIFFERENCES '213X.F9.0,/ PAY05• CPAY05PAYO5C WRITE UPDATED PLANT RECORD TO DISKPAY05• C PAY05IWEEK.IWEEK 1PAY05WR1TE(25'NOPLT) COMP, ICHCK, IWEEKII FIBRE, ITOT. CKMAX PAY05• - - - - - - ------------- pAy05CPAY05STOP PAY05PAY05• cCALL EXITC• ENDPAY05PAY05PAY05VARIABLE ALLOCATIONSICOL .0058 IWVA •0058 MUNC .0058 LBO =0058 LBT .0058 LMC .005B INS .005C IN2 .005C IN3 .005C IN4 .005C1145 •005C IN6 •005C FIBRE.0072 ORTD .0084 YTD •00AE TA =00E41 TB •0084 TOTRG.0087 70707.008A TOT8S•00BDTOTSP.00C0 CKMAX.00C3 TORS •0006 TNET •00C9 BR .00CC GROSS•00CF RGHRS.00D2 OTHRS..00D5 BNHRS-0008 RGER10.0008• OTERN.00DE BNERN-00E1 OTHER.00E4 HOLDY.00E7 VACA .00EA SICK .00ED CNET .00F0 A .00F3 B .00F6 1DATE•OUFEISUPP.0108 ITOT .0116 JGROS.0110 JOUT1.0122 J0UT2.0129 JVACA.012E MASK .0135 MASK2.013C NAME .0145 NOWK .0148NETO .014F NET1 .0156 NET2 •0150 NET4 =0164 NSSAN-0167 COMP .0177 TAX •0178 YIN1 .017F Y1N2 .0185 YOUT1.018CYOUT2=0192 IC •0193 I .0194 NRITE.0195 NOPLT.0196 KARD .0197 101CK.0198 IWEEK-0199 ICNT •019A 1NDX •0198ILST .019C LAST •0190 NUM .019E NSTAS•019F NOUES.01A0 NWKMP.01A1 NWKPD.01A2 MAR .01A3 NXMPF-01A4 NXMPS•01A5NSEX .01A6 NRATE.01A7 LYRH11.01A8 NCU .01A9 NCUDD.01AA NCHCK.01AB NADWH.01AC NSTCK.01AD NINS NMISC.01AF• NUA .0180 NSTKD.0181 1511 .0182 IPD .0183 IFILL.01134 IVRAT=0185 10/R1 . .0186 KO .0187 IFICA.01B8 LOCAL.0189ICU .018A IUA .01118 IUD .01BC IINS .0180 ISTCK=018E IMISC-01BF IPNT .01C0 11 .01C114 .01C4 15 .0105 16 .0106 17 .01C7 18 .01C8 19 .01C9 101 •01CA 102 •01C8STATEMENT ALLOCATIONS1 .01FC 2 •0204 3 •0217 21 •0283 22 .0293 23 .0295 24 .1248 25 .02AD5000 =02CC 5001 .02E2 5002 •02FE 5004 •0316 100 .0310 101 .033F 102 •034B 4 •039752 •03E9 55 .03EF 60 .03F7 62 .040F 70 .0440 71 •044B 72 .0455 75 •046078 .047C 79 .0482 80 .0488 81 .048E 83 .0492 870 •0490 860 •0519 875 •051F• 510 .0589 550 .05C1 10 .05C7 5 •05CE 15 =0503 90 .05F8 91 .05FA 92 •069095 .0705 96 =0769 700 .0768 850 .0770 855 .0788 800 .0794 801 .079E 802 •07420 FEATURES SUPP(iTEDONE WORD INTEGERSEXTENDED PRECISION• IOCSCALLED SUBPROGRAMS• WHOLE EABS DATSW PUT MOVE EDIT EADD ESUB EMPY EDIV ELD ELDX ESTO EDVR IFIXTYPEZ SRED SWRT SCOMP SFIO SIOA1 SIOF SIOI SUBSC PAUSE CAROL PRNTZ SDFIO SORED SOSRTSDCOM SDAI SDAF SDF SDIREAL CONSTANTS.000000000E 00.0100 .500000000E 00.0103 .100000000E 03.010/6 .100000000E 02.0109 .500000000E-01.010C• .500000000E 01.01DF• INTEGER CONSTANTS1.01E2 71.01E3 16448.01E4 4032.01E5 23360=01E6 19264=01E7 0=01E8 2.01E9 6.01EA 25.4)1E81111.01E( 15.01ED 14.01EE 100.01EF 250.01F0 90.01F1 200-01F2 50.01F3 150.01F4 30-01F57616.01F6 11200•01F7 3•01F8 5.01F9 0.C1FA 4369.01FBCORE REQUIREMENTS FOR PAY050 COMMON 0 VARIABLES 464 PROGRAM 1544END OF COMPILATION•12 .0102 13 •01C326 .02B7 20 •028999999.03CC 51 .03E576 -0470 77 -0476505 .052A 50U .053693 •069F 94 .0703110


Section SubsectionsPage35 20 10 115// JOB// XEO PAY05 3• *FILE5(1,COLFP),(20WVAFP),(3,MNCFP)0(41)LBOFP),(5,LBTFPitl6oLMCFP)11•FILES(251,PINFO)rwFILES(101,INDX1),(102tINOX2)o(1030INOX3)r1104,INOX4),(105,INDX5).(106.1NOX6)1022168021568 00400000001650000105000127009Input cards111


Section Subsections Page35 20 10 116•••••••••••••MT TO THETHE CONTAINER COMPANYORDER OG ROBT B BADEN 02121168NOT GOOD OR OVEREXACTLY 86 DOLLARS AND 08 CENTSTO THE NATIONAL BANK & TRUST CO.OF COLUMBUS. WASH.THE CONTAINER COMPANY0=807 JOHN A HORNEXACTLY 83 DOLLARS AND 55 CENTSTO THE NATIONAL BANK & TRUST CO.OF COLUMBUS, WASH.NOT GOOD02121168CHECK NO.CHECK NO.AMOUNT$86.0893THE CONTAINER COMPANY1001 02 45,68 ROBT B BADEN 113,32,3060 2,61,2801267/OR 'NM NOulta YOU ZAJWIDAND YOUR .1.1102•• PAID 'MUI :V- [MORS". m' oo wArrowei .4c40,0 ,0 ,0 10440 01 2,61 12, 00 119,01111C■WAPALl°,111114.111444.RWIT....„ nOCKPAYROLL ACCOUNT 5,24 17 7411,19 6,00 ,0 276 °IFORTHATTARE4: sns50 , 00 CHECK NO.CHECK NO.2$83.55PAYROLL ACCOUNT4-}932202,84 432,331101,78 22,02Tu.86,08YOUPOJOTOYMAGO EEEEEEMTAT r1CA MICAL1831 01 3601141 77,791 18,31 TZLIr. ••THIS !STOUR EARNINGS STATEMENT - DETACH AND RETAIN•THE CONTAINER COMPANY•1002 02,21,68 JOHN A HORN 183,28,4339 M 2,6112,6112,61 •10.1111•D•110 .011.14111.1. IWO YOu•40,0 ICI ID 104,401 , 0 ,0 10,44 13 , 0114,84TITIYWOUTTIOSTALKIWITSNATOU•5,05 14 73_ 1,141 , 0 6,25• WI 1.1113 ■•■114121IS03,55 •T1WILMOTOTOLIATOW41114.4. Mil.,1111/PORYOUR NNNNNTAT .Z.LL... "•THIS IS TOUR EARWIGS STATEMENT - DETACH AND RETAIN••••••Printer output•THE CONTAINER CORP. 022168CHECK NO 1• WEEK NO 1W/E 021568CHECK MAX 25000.MAXIMUM CHECK AMOUNT MAY BE CHANGED BY SWITCH 14.SWITCH 15 WILL CHANGE THE CHECK NUMBERSET SWITCHES REQUESTED AND PRESS STARTCHECK NUMBERS AGREEREGISTER TOTALS 134121. 99685.• CHECK TOTALS 134121. 99685.DIFFERENCES 0. 0.112


Section Subsections Page35 20 10 117<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAMNAME: ChecA i-1/i,/PROGRAMDESCRIPTION:PROGRAM.-.. NUMBER: PAY-62SAPPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPEPRINTERc---4ec.4sChe•c-4 -5.DISKSSWITCHSETTINGSDRIVE NUMBER: 0 14■•■2 3 4CARTRIDGE /4709/-'0//ID:SWITCH 0SWITCH /4 SWITCH ArUP le' UPUP 3DOWNDOWNDOWNINPUT 5,4,./ch Ors ("sea' AP niake c..494-.4-sr e-e/oe,/...ve= e.e., e.,•P 74e:y. .oeeCARDS,70/ C'ev.,',"ec/:See.//.744- 14 ./..1- cAred lo se,/ Me oia,e,..nbeen. c4lec4- ar-,142 4,4 is..5.(4,,,,tch /CA's axed le se/ 7'Xze c■46'4"li eueo •g 6ev, /La sfael` eed/;13‘)coeli "e; SAja ie ssysleAn fe, ah9.1 ,€-e /47,,;7,4ey-..(;_04, 7-2,21-(//XEQ PAY0518 Jot,SOURCE OF INPUT:/ Ce....1 7i1-0 / 71,o/atr li•on-7 /i/e O.2......sk. lards/ 6r=7,4yeno//.-i,:sh. ,e 10er, ',Vets.DISPOSITION OF OUTPUT:I iCkbec-lock.s A doev/i2/.4yAwov.5P. .1).s. A fre c-../..,"■-•")/ 144 /a/c- /4 ,17,-, Ae-5"1 Z4-,/..74 PAY.6747.FOR PAUSES AND ERROR MESSAGES SEE ERROR RECOVERY SHEETS113


<strong>IBM</strong>L INE DISCIWITION HEW HEADINGS/WORD 8 Lines Per InchINTERNATIONAL RUMNESS MACHINES CORPORATIONPRINTER SPACING CHART<strong>IBM</strong> 407, 408, 409, 1403, 1404, 1443, and 2203Print Span:<strong>IBM</strong> 1403 Models 18 4r..GL LIE.1111:=111BEEIEIEVIESIELIFSILIMIEMEIEIBEIEICIFIBommenonuououssmiamonEsioca0DcomminnwomEecnoupumBemouncri1_ et r. .i,S.,..1,. i 11114.k. .. ,i OW A111:11.d.IL ti: o l!;3; : MMMMMM sza:;r4 1244'ait'M'I■IERIBIRRIIRmil MMMMMMMMMMMM No MMMMMMMMM in1111 M IIi `7 I.1:1111i .1 3 111:r1 1111,1,17.777,SS M '2'. I NiS•.ELI:1111;7",I,1 . ,I:, . '..1../ -04.7.r■IIIIM-t `r • .., ,,, ■If.11, ■Ili.''■!•141<strong>IBM</strong> Bs, ".'1I-1 ,. '6,16 , ri,ffv.ft,(Ormr,r7ovoriiirlmo6! . I Mu I .1 . uyyylvmr.Ify7w1flo,u :LuuTOITIR,v14worEEINNIF. AA: . "- '''17.1r..,r;f! . ' f.l r'(1 F-vr. i7. T' . ,1111,0111111': irr ,'r i. I. T I MrInrarIFIN , fici,iik:„.7,-.7( KI178. ,I,T,,...:,,n,r 'f..i'ri, .,,,,f.i.slui ll,,. '.!„:1'744,11. .i.,. .:16u 114EGIESE.: r.1 .4:_ i ,..pirr.y.,r.,,r,,,,„ ir.€411Priv7Ile ' " ."'-". ,. r r. 'Y in. 'Air r.MIIIIIE: : .1: AM,,,. ,..,j ,.. ,. fẏ . ,,,,-. ,. :, .. v.C.14,:,■:411016'EDO mr:.4i:-4or,..PLA■AIIIVi. 's : LT: I:Ft i' ,..i. I. T. (.7.1 . ,l r,'_,,6i:j.,,,z,,41 1111 ,. ,,,„-,,., L ny2urLuln ry.rmv nmis'7414 4.411m1 MMMMM MINIMMOIMMillimmilliSMOIMISKIWOMMISMOMINIONOMMINOMIMIVIIIIROM mIZI9alEDWIEllal!r.'.il r y r rir, VI . rr r' '4O on ril l.P.V.. ' .'" 1 V v , • I I/ 0 r rEr r• 1 i 3 3 • .1 .• A L • 1 lb ■.1.411m■<strong>All</strong>N1." MMM - --V4911111211111IPP--==` °-PIIIMIgma MMMmIS!...-


Section Subsections Page35 20 10 119NAMEṫ 0156zVARIABLES_<strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMVARIABLE SUMMARY SHEET0.w nI-(- E15 b0- 0zMAX.VALUEMIN.VALUEz34/6ĒN z 3 D xxx.xx pl. Olt 23044.5 6.7.77/.7/.5.Application „on y,eoz z SYSTEM Date 9//3/6 7Program Name C/74,4-4., .47e/45tee No./ ,yelp ProgrammFUNCTION OF VARIABLES49A/171,es ,e 3 2-0 1 A9Xxx 000 Bonus hoursCAW4X ie 4 T /0100000 /-ifox/o7ain check amountfr? a 761eCNET e 3 0 VA& 00 Net 0/1704/17/ cf inc//y/o/z/a/ cheaCoNio 4 /‘ 1,"d - - Con7,009y nome/7BRE Al A 0 zw000r, 0,07:27de 4550C/47,0/7 Ce/Oarlisq.eoss 42 3 0 XKX)O 050 li gross 01770/./IVI 0/ N7 oi:v/i/u4a/ 4--4ecAh./7/040)/ ,e 3 0 xA/,XX 0 )110‘ .7/7dividaa/.. i5o/fdof ,oarI 2- / 7- Z/sedie7 Do le, o/0IC 7 / A/ - - 4741/V9/en 71 740 IN1ZehteK I / T esaect4 7/4/.7/ .7 Berth/pry cAeci i7uoz6er when .14/rimy e4eeks%CNT I / 0 xxxo 0 Se9aerx-fwameer6e-iew,r4/kAaddicorces,00ni7o4ICOL I / 7- 5 ,9 2 ,ecora' /7y/rIbee- /i2 cavil°, eel. /es, set aio„oy.o/c74 T.reil Z / 0 )0000( 0 Z.7dividaa/t Cv-ea//1 z./ io/2 c;',/z./c40/.7IDA77-z- I 4- 0 xxxxx 0 To a/ 0/,;741/4,,daed:1, /71.52./co4CP .5-tocArAchat-//ys' /77 1 isc. dedeic/56/7.5-frer per /0' er/a- or_Z:01 I 0 XXXXX 0( /it cXec na/746e/-IO2 I / O Ixxx 0 /ill clock nuṁber1-0 3 412 7 9 0 - - /11` /wine704 I / 0 xxxxx 0 2e_d ekci number.705 I 0 XXXX 0 2 12d cive,E.- na/276er'Mode: I = integer, R = real, D = decimal, A = alphabetic115


Section Subsections Page35 20 10 120VARIABLES<strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMVARIABLE SUMMARY SHEETf2NAME .6R 11 . 1—t 23 MAX.VALUE'. ,MIN.VALUEApplication ,agy,topit .5 y.5 re-frf Date yi,,,.07It-WcAProgram Name 44..4et 457ir No.Ayaa ProgrämmerFUNCTION OF VARIABLES.T06 A2 ; 0 - - 2!!_d /70/77e.T.07 I / D xxYxx Of j'---1/ cheLA- /74//77.4erI0 o I/ ,0 xxA')e 0 3/ e./oe, /74//,7,4-/-Z09 ,42 f 0 - - 3ṟd /carne.7,-.1"c4 _I / 0 &XXX 0 .7,7o/vi ichia/,'s /76,4 faxZ,ZZZ Z. / 7 7 0 If7d/cale..5 dea&elion not mot/eTZW5 2. / 0 xX 0 .7/7•1./er/o/...4 /2754/Ca/We de4/clot?.:7.57 I / 7 250 ..;,0 los/ record /74//27.6ev" .;,7 o /6 je.IWZ_SC / 0 xxxxX 0 2./20/// 4,6'4 /2745-c. e/edirc/34.,/7.1Ṉ.0X 7 / T /01(0 /0'1 Index iii /e .1//7764-,- (i0/a4/`/;0. 2, /00)INZT .1. / 0 XXXXX Pi ///7/0/7 m/1`/eii:0/7 feeTN1 7 / I 25-0 1 de-cocd/7a/v6er ir2 /ndeA-e5 71,o ef/704,ee //es74/2 1 / A/ - - I-fan/a/en/ 7'0' 1"/V.12-21/3 I I N - fr/Ga/e/77` lo 121/.1IA/1 .1* / N - - 6-1/iva/e/71". 7O ZA/1zNi I / /t/ - - 67/e/71` I‘o ZA/ZZ/t/ I / N - - '74//x7/e/77` t, .7/1/11-DTRT I / T 50# Of ,0Per7,rne ,a, cafer,42,0 I / 0 2 0 j;70//--a7,:ls 5-44/5 ait record /oAroressi cycleIs-TCK I / 0 2000 I/7e// vi di/a/4 3-7i764 6/e C7/1 //an"Mode: I = integer, R = real, D = decimal, A = alphabetic116


Section Subsections Page35 20 10 121NAMEVARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEM• aL U2-o "Z6zo..2 1_LuI– etD 15I'0=MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication PAY,POZZ SYSTEM! Date 9Ara 7Program Name 4,4eck A94.9,,, 547. No.A4yoo ProgrammerFUNCTION OF VARIABLESr54/PP Z /3 0 A'A'A'A' 01 S4/p,o/e/77e/7717/ ...r/e /,ayZTOr I // 7 /713 0 A-eau/71 /Vaiberfi,r,a57i1 lo //:7 ftwerrd71/A I / 0 gO,‘ )ejr,div/4/q/S- 4,,a,-,4/ ,c7c./z/4-7`iiir,7/A0 2- / 0 /MI 0 .7/7/v/elva/S- z//7/em idlies c/eduer:O,;.7".047. Z / 0 JO 0 Avera9e,c2ar rale.1 14/Elie .I. / T _5" 1 11/eei al /4 e /770/7/A2-A/4 I / N - - 1-74//:/o4wf /0 ROL.7" I/ T 9 / Trie/ex for 2,0 4e.,A-c4,e,0 Z / Z 9 0( C. 8/ for /as-, .Qv-,1/ 7§.5 74frs0 d/ / 0 5 0 ...5'Decia/ ears/r7 9s ea deI Z / T 750 0 "o ail fcr 7 , access cee-a,a'sL957- Z. / T xxX 0 za5/ fecorg/ /7‘..7,76e.- /.7 7‘.4/Bo I / A/ - - *viva /e/774 it5 TCOZzer I / N - - ,h-y t,/ /en 74 716 realLNG" Z N - - Eya/e/a/e/274 1.a .2-COL/069Z I / 0 xxxX 0 Loco/ fax7h/ 5 Vear/5 sel‘c-an74/ k 7/0 /7 Of i 4 aarS li/o /We/Z Y/elAc) 2- / C /MX/ lo r Aaca74/0/7/ny/194 2" / ZO 2 / /7arge4; / 5 fa las. - (/- -5//7y/c) (2- /770/7-/ed)NaA/C I / N - - Epa/Va/e/774 76 /COLMWAVI/ I / 0 xxxX # f di/iio4a/ lei/A40/


Section Subsections Page35 20 10 122VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMNAME .2-:°:486z1 Ft ct,j IS"F..MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication figyeaz 5y.sreH Date 007Program Name 4P-#1.(64 ,61/,:s-%r No794 y06 ProgrammeFUNCTION OF VARIABLES4/4/1E d! 9 lid - - Er77,04ffee BorneNei/0( Z / 0 )0(xxX of Lied na/776er ii.tedA- A/s e."7,4"ee./(1/ I / 1;0 XX.Ix 1 Creel./ anio4 44,e/vc4r7/f/ 4' I / 0 /xA'x /1/9.7 A /y erea; ./ i0/2 c/eo/oclii,44-AWES I / 1,-0 XX. XX , a/7/0/7 alpes alea.c7;/2/t/D4/A/ 92 i 10 - • Ply Iver/1 d i k/VI/vs I / -Ca A/XXx 1 Z/zsvcvice Q'Alve-750-4NA11-5C I / 0 XX4' ///5-ce//ageoas e/e4/actet:ys/YoNr I / T l0 7 P/.0./77 1 .2a/yder./why-6- I / 1;0 30 /25 giva/eyee poi /-.4/NSIX I 4-0 _I 1 Sex. (.1-frna/e) (I -,'a4) (3- 71-ac.eer4/.554A/ 1 3 Zo" 415 942%/1/' ..10c.:1/ .corny A//77 der'N5745 I / .' f i 171/Lee ellirm-(;:iiii/C7v7 14;;Arer) Peaef,r/77zio/7.114/A/576(' Z / IO XX. XX Pi ,s/ock dedae/5O/7N.57;t12 I / 0 xx)(X No,ilvy SocAl 4/4,4c75ers/1/a4 1" / 40 XX.)0( I i/ai4d 01/yea/ aie../vek,n5A/0-1 I 4-0 )0(X)( /WO C/a /74//7764-/-N14/X/1/2 2- / 0 XX / A/an-7'er a/ weeks er77,/o,ed/1/11-469,0 .7 / 0 XX 0 Mamie,- al 4)eeJs AvidNX/Me r .1;0 /7 )0 /";ara/ e1/8/7-71275,4-s--Mode: I = integer, R = real, D = decimal, A = alphabetic118


Section Subsections Page35 20 I 10 123NAMEVARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEM•ciUi a,,,.138'.' oa 2 1_W =t 1:1-I– I–p 2wMAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplicationPAY#OZZ 5)/S TEA, Date/1/10fP.5- 7 / 0 /7 .5'zioi exe/77,15;9/75are-49A/ A' 3 0 XXXAA 1.0 aierkn e ti;777/79503547Program Name 4--.4eve ISfr:$-X...- No.,47,4yoa P‘rairrfreerFUNCTION OF VARIABLESaPiee ,e 3 0 )0000( 1.00 Sfecia/ earmiTs07-14e.5- ,e 5 40 ,W.XX OA Dver75:77e /roarst9E To 4, 72 4 0 alocoex ,o., ,k/ol-fer- to - elite //7frynohoa Nyeass) (2) F/7; 0)


. .Section Subsections Page35 20 I 10 124NAMEVARIABLES <strong>IBM</strong> 1 <strong>1130</strong> COMPUTING SYSTEMİctiai3)sg..g nt cl5t°MAX.VALUE707:SA g g r 7,,:f.MIN,VALUEVARIABLE SUMMARY SHEETApplication ,4xeozz sy:3 -re Date 9/4/07program Name ,,,,ec„ No. Re 04 Programmer477 K xep.STerFUNCTION OF VARIABLES41Alf .1)eria/ eacnfr7 s )64/16-0/,7.s.ozare doe.VAC4 ie 3 0 X*X•XX 4410 ilekl f 4 b4 /049 ,YTOA'/44ri 40 )64001,xg ' Ai?,Year AO- dole Zel7fren701704,04,11014)(2) Are4 (3) "2 7;/.4) ,47CA kla es (1).s/a/04 .,(6)s ic. A (7JS ec.(B) /ye. 14x,(9)rev.hrs,1% I ar rS, ( .1/ /hoar's hr'sfr2 lit . COAV7.1, (Z9 er er45 (i49 borrys- erns.'Mode: I = integer, R = real, D = decimal, A = alphabetic120•


Section Subsections Page35 20 1 10 125Read anEmployeeRecordfromDiskPut toge<strong>the</strong>rCheck RegisterInformationWrite a Lineof CheckRegister3EmployeesNoRead <strong>the</strong>PlantI nformat.RecordWrite LastLine ofCheckRegisterInitializePlantVariablesWrite <strong>the</strong>PlantTotalStop121


Section Subsections Page35 20 10 126• // FORPAY06• IOCS(CARD.TYPEWRITER• 1132 PRINTEROISK) PAY06PAY06NAME PAY06• • ONE WORD INTEGERSPAY06• EXTENDED PRECISIONPAY06PAY06• LIST ALL• C***** JOB NAME -- PAYROLL SYSTEM CHECK REGISTER PAY06C***** J08 NUMBER -- PAY06PAY06PAY06C*****II C PROGRAt4ER -- C.R.KLICKPAY06C DATE CODED -- 01/27/68PAY06C DATE UPDATED --PAY06PAY06II CCFILE FILE RECORD NO. OF RECORDS PAY06CNAME NUMBER LENGTH RECORDS PER SECTORPAY06• C***** INPUT FILES -- 1. COLFP 1 160 250 2 PAY06C•••••• 2. WVAFP 2 160 90 2 PAY06C-----3. MNCFP 3 160 200 2 PAY06• C 4. LBOFP 4 160 50 2 PAY06C5. LBTFP 5 160 150 2 PAY06C***** 6. LMCFP 6 160 30 2 PAY06• C 7. PINFO 25 106 6 3 PAY06C8. INDX1 101 1 250 320 PAY06C***** 9. INDX2 102 1 90 320 PAY06• C***** 10. INDX3 103 1 200 320 PAY06C***** 11. INDX4 104 1 50 320 PAY06C 12. INDX5 105 1 150 320 PAY06• C 13. INDX6 106 1 30 320 PAY06CPAY06C***** OUTPUT FILES NONEPAY06PAY06• C''—.'—'CPAY06C ALLOCATE ARRAY STORAGEPAY06• C PAY06INTEGER COMP(16111 TAXPAY06DIMENSION FIBRE(8). IDATE(3), ID3(9). ID6(9), 109(9). ISUPP(13). PAY06ID 1 ITOT(11), NAME(9). NOWK(3), NSSAN(3), ORTD(6). YTD(14) PAY06C—****PAY06C DEFINE THE FILES FOR THIS PROGRAM AS DESCRIBED ABOVE. AND PAY06• C*--** EQUIVALENCE THE VARIABLES FOR THE NEXT RECORD NUMBER. PAY06CPAY06DEFINE FILE 1(250.160,U,ICOL). 2(90,160.U.IWVA1s PAY06ID 1 3(200,1601UoMUNC). 4(50,160,U.LB0), PAY062 5(150,160.U.LBT)e 6(30.160.U.LMC). 25(6,1060U,ICIt PAY063 101(250111oUoIN1), 102(90,1,UP1N2), 103(200.111Ut1N3).PAY06• 4 104(5Oo1oUrIN4). 105(150,1,UtIN5), 106(3011,U,IN6) PAY06EQUIVALENCE (ICOLIIIWVAIIMUNC,LBO,LEITIILMC),PAY061 (INI,IN2.1N3IIIN4rIN5,1N6) PAY06• C • PAY06CPAY06C INITIALIZE VARIABLESPAY06122


Section Subsections Page35 20 10 127C-----PAY06ID ICOL•1PAY06IN1 • 1PAY06TA=O.PAY06II TB.O.PAY06PAY06PAY06ID C READ PLANT NO++ DATE, AND CONTROL TOTALS, AND VALIDATE CC 80 AND PAY06C +++++ THE PLANT NUMBER.PAY06C +++++PAY06• 99999 REAR(2+1) NOPLT. MATE. NDWK, TOTRG, TOTOT, TOTBN. TOTSP, KARD PAY061 FORMATII1s6A2.4F7.008XIII1) PAY06CPAY06•C+++++ VALIDATE KARD AND NOPLTPAY06C IF VALID — 60PAY06C IF INVALID — 55PAY06• C+++++ PAY06IMAM)) 55.51.55PAY0651 IFINOPLT1 55+55052 PAY06II 52 IF(NOPLt — 6) 60,60155PAY06CPAY0655 WRITEI1,2) PAY06II 2 FORMAT('CHECK CC 1 AND CC 80 ON FIRST CARD')PAY06PAUSE 1PAY06GO TO 99999PAY06• C++++ PAY06C +++++PAY06C READ PLANT INFORMATION RECORD FROM DISK. AND FINISH INITIALIZING.PAY06• C PAY0660 READ(25'NOPLT) COMP, ICHCK. IWEEK, FIBRE. 'TOT, CKMAX. TGRS, TNET,PAYO61 ICNT PAY06• C PAY06INDX • NOPLT + 100PAY06GO TO (76,77,78,79+80.81),NOPLTPAY06• 76 ILST • 250 PAY06GO TO 83PAY0677 ILST-90 PAY06• C PAY06GO TO 83PAY0678 ILST • 200 PAY06• GO TO 83 PAY0679 ILST=50 PAY06GO TO 83PAY06• 80 ILST • 150 PAY06GO TO 83PAY0681 ILST■30 PAY06• C - PAY06PAGE 02CPAY06C INITIALIZE PLANT VARIABLES AND READ AN EMPLOYEE RECORD FROM DISK.PAY06123


Section Subsections Page35 20 10 128PAGE 03CPAY0683 READ(INDX'ILST) LASTPAY06IIWRITE(3.5) COMP. NDWKPAY065 FORMAT(111.50XOCHECK REGISTER'//20X0FACTORY PAYROLL 1 ►16A2.5X. PAY06II1 'W/E ',2(A20•"),A2//31' CHECK NO'7X'NAME'14X'AMOUNT')/ ) PAY06PAY06T=0.L=1PAY06PAY06II I=0655 READ(NOPLT'L) NUM. NAME. NSS4N► NSTAS. NDUES. NWKMP. NWKPD. MAR. PAY061 NXMPF. NXMPS. NSEX. NRATE. YTD. ORTD. LYRHR. NCU. NCUDD. PAY06II 2 NCHCK. NADWH. NSTCK. NINS. NMISC, RUA. NSTKD. ISUPP. INIT. PAY063 IPD, IFILL, GROSS. IVRAT. IOTRT. RGHRS. OTHRS. BNHRS. RGERN, PAY064 OTERN, BNERN. OTHER. KO. HOLD'''. VACA. SICK. CNET, IFICAt TAX, PAY06• 5 LOCAL. ICU. IUA. IUD. IINS. ISTCK► IMISC PAY06PAY06CC CHECK PAID INDICATOR TO SEE IF CHECK WRITTEN.PAY06PAY06• CIF(IPD .. 2) 650.651.650PAY06PAY06CIICPAY06PUT TOGETHER CHECK REGISTER INFORMATION.PAY06CPAY06• 651 T■T + CNETPAY061=1+ 1PAY06GO TO (601.602,6031,1PAY06II601 ID1■NCHCKPAY06102=NUMPAY06CALL MOVE(NAME.1.9,103.1)PAY06RNET1=WHOLE1CNET + (CNET / ABS(CNET)) * 0.5) / 100. PAY06IIGO TO 650PAY06602 ID4=NCHCKPAY06• 105■NUM PAY06CALL MOVE(NAME.1.9.106.1)PAY06RNET2=WHOLE1CNET + (CNET / ABS(CNET)) * 0.5) / 100. PAY06• GO TO 650 PAY06603 ID7=NCHCK PAY06ID8=NUMPAY06• CALL MOVEINAME.1►9IID9.1) PAY06RNET3=WHOLEICNET + (CNET / ABS1CNET)) * 0.5) / 100. PAY06C --PAY06• C PAY06C WRITE A LINE OF CHECK REGISTER FOR THREE EMPLOYEES. PAY06Cm,"PAY06II WRITE(3.110) ID1. 102. 103. RNET1, 1040 IDS. 106. RNET2. 107. 108.PAY061 1090 RNET3 PAY06110 FORMA71313X.15.1X,15,1X.9A2.1X.F6.2)) PAY06• 1=0 PAY06C -PAY06CPAY06•124


Section SubsectionsPage35 20 10 129C HAVE WE PROCESSED THE LAST EMPLOYEE RECORD PAY06• C YES - 657 PAY06C.-•••• NO - 655PAY06CPAY06• 650 L.1. + 1 PAY06IFIL - LAST1 655.655.657PAY06-- PAY06• C PAY06C...-.... IF THERE IS A PARTIAL LINE TO WRITE 16151. WRITE IT. PAY06CPAY06ID 657 1F11/ 604.604.615PAY06615 GO TO 1605,6061.1 PAY06605 WRITE13.1101 IN. 102. 103. RNET1 PAY06• GO TO 604 PAY06606 WRITEt3o110/ Ms ID2o Me RNET1. 104. Mr 106, RNET2 PAY06C . - .. - - - - - - - - . - - - - • .. - - - - - - - -------- FIA106• C PAY06C WRITE THE PLANT TOTALPAY06CPAY06• 604 T.WMOLE(T + IT / ABSITI/ • 0.5) / 100. PAY06WRITE13.1111 IPAY06111 FORMAT1//50XOTOTAL , .F9.21 PAY06• c - - - .. - - - - - - - ----------------------PAY06PAY06C STOPPAY06• C PAY06CALL EXITPAY06CPAY06• END PATO&VARIABLE ALLOCATIONS• (COI .0058 IWVA .0058 MUNC .0058 L80 .0058 LBT .0058 LMC .0058 IN1 .005C ISO .005C IN3 .005C 144 .025CINS .005C INS .005C FIBRE. 0072 ORTD .0084 YID .00AE TA .0081 TB .0084 TOTRG.00B7 TOTOT.0013A T01.86.0080TOTSP.00C0 CKMAX=00C3 TGRS .0006 TNET .00C9 T .00CC GROSS.00CF RGHRS.0002 OTHR5.0005 8NHR5=0008 RGERN.,00013• OTERN.00DE BNERN.00E1 OTHER.00E4 HOLDY.00E7 VACA .00E4 SICK .00ED CNET .00F0 RNET1.00F3 RNET2.00F6 WNET3.00F9IDATE.0101 103 .010A 106 .0113 109 .011C ISUPP.0129 ITOT .0134 NAME .0130 NDWK .0140 NSSAN.2143 COMP =0153TAX .0154 IC .0155 NOPLT-0156 KARD .0157 ICHCK.0158 IWEEK.0159 ICNT .015A INOX .0158 ILST .U15C LAST .0150• L .015E I .015F NUM .0160 NSTAS.0161 NOUE$.0162 1VWKMP*0163 NWKPD.0164 MAR =0165 NXMPF.u166 NXMPS.0167NSEX .0168 NRATE.0169 LYRHR.016A NCU .016B NCUDD-016C NCMCK.0160 NADWH.016E NSTCK.016F 6146 =0170 NMISC.0171NUA .0172 NS/(0.0173 INIT .0174 IPD =0175 IF1LL.0176 1VRAT.0177 IOTRT.0178 KO .0179 IFICA=017A LOCAL.0175ICU .017C IUA .0170 IUD .017E [INS .017F ISTCK.0180 IMISC.0181 101 .0182 ID2 .0183 104 .0184 105 .0185•107 .0186 108 .0187• STATEMENT ALL) ATIONS1 .019F 2 .0147 5 .018A 110 .01F3 111 .01FF 99999.0220 51 .0246 52 .024A 55 .0250 60 .025276 .0280 77 .0286 78 .028C 79 .0292 80 .0298 81 .029E 83 .02A2 655 . 02BD 651 .u353 601 .0346• 602 .0369 603 .038C 650 .0300 657 .03DC 615 -03E0 605 .03E6 606 =03E5 604 .0408FEATURES SUPPORTED• ONE WORD INTEGERSEXTENDED PRECISION• 10CSCALLED SUBPROGRAMS• MOVE WHOLE EABS EAU) EMPY EDIV ELD ESTO EDVR WRTYZ SRED SWRT SCUMP $F10 SIUA1SIOF 5101 PAUSE CARD( PRNTZ $DF10 SORED SDA1 SDAF SDF SDI• REAL CONSTANTS.000000000E 00=0188 .500000000E 00.0188 .100000000E 03.018E• INTEGER CONSTANTS1+0191 2.0192 6.0193 25.0194 100.0195 250.0196 90.0197 200.0198 50.0199 150.019A30.0198 3.019C 0.0190 9.019E4,CORE REQUIREMENTS FOR PAY06COMMON 0 VARIABLES 392 PROGRAM 66840ENO OF COMPILATION•PAGE 04125


Section Subsections Page35 20 10 130// JOB41 // XEO PAY06 3*FILES(1,COLFP),(2,WVAFP),(3.MNCFP),(4,LBOFP),(5,LBTFP),(6,LMCFPIt*PILE5(25tPINFO),• IWILES(101,INDX1),(107,INDX2),(103.INDX3)9(10411NOX4),(105,INDX5),(106,INDX6)1022168021568 0040000000165000010500012700Input cardsIICHECK REGISTERFACTORY PAYROLL THE CONTAINER CORP. W/E 02-15-68•CHECK NO NAME AMOUNT CHECK NO NAME AMOUNT CHECK NO NAMEAMOUNT• 1 1001 ROBT 8 BADEN 86.08 2 1002 JOHN A HORN 83.554 1004 JOHN W CUSSEN 86.26 5 1005 JOSEPH MONTANO 142.587 1107 A E TAYLOR 113.63 8 1218 DAVID A HUBBARD 88.48it 10 1603 4L REYNOLDS 123.973 1003 ROST L SHORES 61.446 1016 DONALD MILLER 129.339 1347 FRANK T DOLEN 81.53• TOTAL 996.85// JOB// XE0 PAY06 34FILES11.COLFP/1,12.WVAFP/,(30MNCFP)o(4sLESOFP)1115.LBTFP).(6.LMCFPI.41 •F/LESI250INFO).*FILES(101sINDX1).(102.INDX2).1103.1NDX3).(104.INDX4)01105.1NDX51.(106.1NDX6)•Output on printer126


Section SubsectionsPage35 20 10 131PROGRAM Check „pvts/te,-•NAME:<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAM A7,47.0aNUMBER:PROGRAMDESCRIPTION:APPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPEPRINTERDISKS,5-#47 ,.2 4/41,.. 01 I Sisiaeo di.or ••' d'‘ -.1111111../.DRIVE NUMBER: 0 1 2 3 4CARTRIDGEID:AkyeeV/1 I I /SWITCHSETTINGSSWITCH A/4W eUPDOWNSWITCHUPDOWNSWITCHUPDOWNINPUTCARDS/CONTROLTOTALSrx EQ PAYC6/// JOSOURCE OF INPUT:/..D/ :5 k f r.: nA treil ,s0A,/,.s. 4-0,-,, RA yes-DISPOSITION OF OUTPUT:1 C-AecA. .-'4.1-A.-c/..-, 4, /o.a.. ric 7 // ..."-&=2e1/...--22. P..:09.0, #I--on/11X7id ZS". /a f/.1 1.).., . 27,.1s A /S .-,.... lz.,-,--1,..,-/ A ,rf0.-wy e ,FOR PAUSES AND ERROR MESSAGES SEE ERROR RECOVERY SHEETS127


Section SubsectionsPage35 20 10 132lomommillimmosionip44 a • a • na *I la l a ea le oa s• re a' aa s ao a• a ..... a• o•I .. au ...... si oe • 0•60 .1117,1 ....atlo, paw*, top uo p•volu auu ato ol (yawl■ael Ino) 9) ado; pzitioa.•11,oa ,ono tpury • null9) pole ,"I. ul /.2^1., ...I .4 *do, ,o1.*N1 nugaon of aaoal000.o. ,o4 aiw Polo. ay SO. au,o1 .11 ,Noo,


Section SubsectionsPage35 20 10 133VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEMNAME1-11 002"883"- 0zc ;CALll IS1.- a-I oRI-CL vF.MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication A/ea& 6-y57F/tie Date 9/20A 7A7'ckProgram Name 9.4t/ No. "4)/09 ProgrammerFUNCTION OF VARIABLESA I? .3 4 ‘6,1,/,0 0091 ased/o


Section Subsections Page35 20 10 134NAME .to2VARIABLES <strong>IBM</strong> 1 <strong>1130</strong> COMPUTING SYSTEMVARIABLE SUMMARY SHEETApplication pgy,eaz .5-ysTEN Date f40,7,, I—'i) iz. .2 MAX. MIN..46 15 5VALUE VALUE Program NameNo.6 ,°- °9///191y09 Programmer/Ckz —FUNCTION OF VARIABLES/PG' z/ao .1;76//co/es ..5-/"./e.5 g reeort/ //7 ,oraeessfty . eye-leI55,1/V 4/ 9 0 lzry,-;:, 5oci a / Seca/-1/7154/1P .7 45 a 0 0 supo/epnent,"/ .5-/e-i9orz-13Y1l I / r 250 / hr-9,/vo/c/7/ ig ZeoLLAST 7 / r XXX 0 LOSE record .7u.776e.- /;7 fileL80 I / A/ - Efuiaa 4", 4 ZeoLte67- I / A/ - - etV/a0A/771 7t, ICOL174/e 7 / 7- 5:0 1 Z/f7e coa.),I MC .1- / /V - - 49a / va 44 7i 1: Zeiazzsr I / 7 25O 2.0 Los/ record /7a/-776er /i7 aiti/e2 Y.,47/7e .1 / 0 Ø, This year's Qc-cv/m/f7nori vie hours../4.-ke.G1 fbr vace;v2a,7/9


Section SubsectionsPage35 20 10 135NAME • 1.Jo2VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEM-F2'e).6cizo_W 1—t E15 15,°- °=MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication ,P,4 y ,e0 z Z SYSTEM Date 00/g 7Program Name 942 No. R4Y,09 ProgrammerFUNCTION OF VARIABLES,V&/OD I/ O 0 0 Mon/,/y e-/-eaV/1// !/ES .7 / 4-40 )0a)( Ø ik/o/2 aver aleiaclio. 0,'Z V5 .1" / .1,'D X,l


Section Subsections Page35 20 10 136VARIABLES <strong>IBM</strong> 1 <strong>1130</strong> COMPUTING SYSTEMNAME •LEJ,H°.66z0-u, n---i— — E-/5 5EL , °r.MAX.VALUEXXX A'70 TD A' 3 0 xx,gx/ xxxy TO K 42 4.° xx: X XMIN.VALUEVARIABLE SUMMARY SHEETApplication ,45:304(20t 4 sys 7-41-W Date .5/20/4 7Ki/ekProgram Name 94/ No. "Ay' a q ProgrammerFUNCTION OF VARIABLESa,7. 00 75/-7/ 4/4 es ,e, ea/77,w.,4 4 year- to- (I le /4,7a../,7e71,0., 1/10,04 (2),47‘,7, (3) A-q.,-W. PP (4.9) / 9 taa es, (f)s/ekioa g spec% 4 7 laec .4?/d.,) /oc, itve, N re4 . hoar/ (/' ) Orhavr.5,'e/ A.o.nds hour./ (i2) re . eras, -.) 0 7 Cr/75(/4) 60/70S 4","4.3;"Mode: I = integer, R = real, D = decimal, A = alphabetic132


Section SubsectionsPage35 20 10 137StartVariables\Read Plant/No., Date,Page No.CStopHasLast PlantBeen ProcessedNoReadPlantCardsI nitializeRemainingVariablesRead anEmployeeRecord fromDiskWritePlantTotalsAdd to TotalandSetup LineWriteControlTotalsWrite aDetailLineNoIsThis <strong>the</strong>Last Employee133


Section Subsections Page35 20 10 138• // FOR• 10CSICARD.TYPEWRITER.• NAME RAY09• • ONE WORD INTEGERS• EXTENDED PRECISION•C• LIST ALLC JOB NAMEJOB NUMBER --CPROGRAMMERDATE CODED --C DATE UPDATED ••••• INPUT I ILES•••C•PAY091132 PRINTER.DISK) PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAYROLL SYSTEM — 941 REPORTPAY09C.R.KLICK02/03/68 PAY09PAY09PAY09FILENAMEFILE RECURD NO. OF RECORDS PAY09NUMBER LENGTH RECORDS PER SECTORPAY091. COLFP 1 160 250 2 PAY092. WVAFP 2 160 90 2 PAY093. MNCFP 3 160 200 2 PAY094. LBOFP 4 160 50 2 PAY095. LBTFP 5 160 150 2 PAY096. LMCFP 6 160 30 2 PAY097. INDX1 101 1 250 320 PAY098. INDX2 102 1 90 320 PAY099. INDX3 103 1 200 320 PAY0910. INDX4 104 1 50 320 PAY0911. INDX5 105 1 150 320 PAY0912. INDX6 106 1 30 320 PAY09PAY09OUTPUT FILES NONEPAY09PAY09• C PAY09C ALLOCATE ARRAY STORAGEPAY09CPAY09•DIMENSION IDATE(3), IHD1(22). IHD2(22). IHD3(22). IHD4(22). PAY091 ISSAN(9), ISUPP(13), NAME(9). NSSANI3). ORTD(6). YTD(14)PAY09CPAY09• C DEFINE THE FILES FOR THIS PROGRAM AS DESCRIBED ABOVE, AND PAY09C EQUIVALENCE THE VARIABLES FOR THE NEXT RECORD NUMBER. PAY09CPAY09•DEFINE FILE 1.(250.160.U.ICOL)1 2(90,160,U,IWVAI, PAY091 3(200.160.U,MUNC). 4I50,160.0LB0), PAY092 51150.160.U.LBTI. 030,160,CoLMC), PAY09• 3 101125001,UoIN1/, 102(90,1oUrIN2), 103(200.1.U.IN3).PAY094 104(5011.U.IN4), 105(150.1tUrIN5). 106(30.1,U,IN6) PAYU9EQUIVALENCE (ICOL,IWVAINUNCILBO,LBT.LMC),PAY091 (IN1.1N2IIN3.1N4,1N5,1N6) PAY09•C ' PAY09CPAY09• C INITIALIZE VARIABLES AND READ PLANT NO., DATE, AND PAGE NO. PAY09CIL . 16448PAY09PAY09134


Section SubsectionsPage35C•1000 READ(2,1) N. 'DATE. IPAGE1 FORMAT(11.412)C.11C IS THIS THE LAST PLANT.C YES • 99• C NO + 110CIFIN) 99999.100• 100 IFIN - 6) 110.'.10,99C.C• C READ THE PLANT NAME AND ADDRESS. AND INITIALIZE THE REMAININGC VARIABLES. AND WRITE PLANT INFORMATION UN TOP OF FIRST PAGE.C•110 READ(2.2) IHD1. IHD2. IHD3. IHD42 FORMAT(22A2)C•MPC0.0MPLY.0TOTA=0.•TOT8.0.TOTC.0.TOTD=0.•LINE.0WRITE(313) IL. IHD1. 1DATE. IPAGE. IHD2. IHD3, IHD43 FORMATIA102X122A2.2X•2(120+').12,10X,12/(5X.22A21)• WRITEI3,8)8 FORMAT('1')IL=-3776• IPAGE.IPAGE + 1INDX . N + 100GO TO (131.132,1331134.135.136),N• 131 LST.250GO TO 140132 LST.90• GO TO 140133 LST.200GO TO 140• 134 LST=50GO TO 140135 LST=150• GO TO 140136 LST.30• C GET THE NUMBER OF EMPLOYEESPAGE 02PAY09PAY09PAY09PAY09PAY09PAY09PAYG9PAY09PAYG9PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY:19PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAY09PAYO9PAY09PAY09PAY09PAY09PAY09135


Section Subsections Page35 20 I 10 140• CPAGE 03C .PAY09PAY09C READ AN EMPLOYEE RECORD FROM DISK. AND DECIDE IF IT COUNTS. PAY09CPAY09II DO 275 I=1.LASTPAY09READIN I I) NUM, NAME, NSSAN, NSTAS, NDUES. NWKMP, NWKPD. MAR. PAYU91 NXMPF, NXMPS, NSEX. NRATE. YTD, ORTD. LYRHR. NCU, NCUDD, PAYO9II 2 NCHCK, NADWHo NSTCK. NINS. NMISC, NUA, NSTKD, ISUPP, INIT. IPDPAY09cPAY09IF RECORD COUNTS .• 150 OTHERWISE — 275PAYU9• CPAYO9IFIORTD(1)1 150.275.150PAY09PAYU9• CPAY09THIS ROUTINE CONTROLS THE PAGE FORMAT. IF 40 LINES HAVE BEEN PAY09PRINTED PUT HEADINGS AT TOP OF NEXT PAGE. OTHERWISE DO NOTHING. PAY09• CPAY09150 IF(LINE •• 40) 170.170.160 PAY09160 MPCO=MPCO + MPLY PAY09IITOTC.TOTC + IOTAPAY09TOTD=TOTD + TOTBPAY09TOTA=WHOLEITOTA + (IOTA / ABS(TOTA)) * 0.5) / 100. PAYU9• TOTB.WHOLE(TOT9 + ITOTB / ABS(TOTB)) * 0.5) / 100. PAY09CPAY09C WRITE TOTALS AT THE BOTTOM OF THE PAGE.PAYO9• c PAY09WRITE(3.5) MPLY. MPLY. IOTA. TOTBPAY095 FORMAT(111,30X,I2.8X.I217X.F9.2.4X.F9.2) PAY09• MPLY=0 PAY09CPAY09C NEXT PAGEPAYU9• C PAY09WRITE(3.4) IHD1. 'DATE. 'PAGE, IHD2. IHD3, IHD4 PAY094 FORMAT('! . .22A2.2X02(I20 .- 1 ).12.10X0I2/(3X122A2)) PAY09WRITE(3.8)PAY09LINE.0PAY09IPAGE=IPAGE + 1PAY09TOTA=O.PAY09•TOTB.O.PAY09CPAY09• C PAY09C ADD EMPLOYEE INFORMATION TO TOTAL AND SETUP DETAIL LINE. PAY09CPAY09• 170 A=NSSAN(1) PAY09CALL PUTIISSAN$1,3,A * 10..5..1)PAY09A.NSSANI2)PAY09CALL PUT(ISSAN.4.5.A * 10.0.01)PAY09•A=NSSAN(3)PAY09CALL PUTIISSANI6,91A * 10..5.11)PAY09■136


Section SubsectionsPage35 20 10 141PAGE 04A=660000. - (YTDI1) -. YTD(5))PAY09IF(A) 180.180,175PAYG9175 FICAmORTD(1) ■ ORTD(6) PAY09GO TO 195PAY09lb 180 FICA.A + ORTD(1) - ORTD(6)PAY09IF(FICA) 185.195.195PAY09185 FICA . O. PAY09• 195 TOTA.TOTA + FICA PAY09TOTB=TOTB + ORTD(1)PAY09FICA=WHOLE(FICA + (FICA / ABS(FICA)) * 0.5) / 100. PAY09IIORTD(1)84HOLE(ORTD(1) + (ORTD(1) / ABS(ORTD(11)) * 0.5) / 100. PAY09MPLY.MPLY + 1PAY09LINE=LINE + 1PAY09• C PAY09PAY09WRITE A DETAIL LINE AND GO BACK FOR ANOTHER EMPLOYEE. PAY09• C PAY09WRITE(3.6) ISSAN, NAME, FICA. 01470(1)PAY096 FORMAT(3)(03A1,1X.2A1,1X,4A1.7X09A21,11X,F9.2.4X,F9.2) PAY09• C PAY09C GO BACKPAY09CPAY09• 275 CONTINUE PAY09CPAY09CPAY09• C THE PROGRAM WILL AUTOMATICALLY GO THRU HERE WHEN THE LAST EMPLYEEPAYO9C HAS BEEN PROCESSED. CREATE AND WRITE PLANT TOTALS ON REPORT. PAY09CPAY09ID TOTC.,TOTC + IOTAPAY09TOTD.,TOTD + TOTBPAY09TOTA.WHOLE(TOTA + (IOTA / ABS(TOTA)) * 0.5) / 100. PAY09• TOTB.WHOLE(TOTB + (TOTB / ABS(TOTB)) * 0.5) / 100. PAY09CPAY09C WRITEPAY09• C PAY09WRITE(3,5) MPLY. MPLY, IOTA, TOTBPAY09CPAY09• C PAY09C CREATE AND WRITE PLANT CONTROL TOTALS ON CONSOLE AND GO BACK FOR PAY09C ANOTHER PLANTPAY09• C PAY09MPCO=MPCO + MPLYPAY09TOTC.WHOLE(TOTC + (TOTC / ABS(TOTC)I * 0.5) / 100. PAY09• TOTD=WHOLECTOTD + (TOTD / ABS(TOTD)) * 0.5) / 100. PAY09CPAY09C WRITEPAY09• C PAY09WRITE(1.9) IH01PAY099 FORMAT(22A2) PAY09137


Section Subsections Page35 20 10 142PAGE 05WRITEI1.71 MK°, TOTC. TOTOPAY09S 7 PoRmAT113$2F12.21 PAY09PAY09GO BACKPAY09S C■■■■■PAY09GO TO 1000PAY09CPATO90 Cr.... PAY09C..■.•.. THE PROGRAM COMES THIN HERE WHEN THE LAST PLANT HAS BEEN PAY09C.....•". PROCESSED. STOPPAY0944 C••••• PAY0999 CALL EXIT PAY09C.......PAY0941 END PAY09VARIABLE ALLOCATIONS41 ICOL .0094 IWVA .0054 MUNC .0054 LBO .0064INS .0055 INS .0055 ORTD .0065 YTD .008FIOATE.00A9 IMD1 *000F IH62 .0005 1M03 .00E841 N •0125 IPAGE•0126 MPCO .0127 MPLY •0128NSTAS*012F NooEs•lTo NWEMP.0131 NWKP000132NCU .0139 PCUO0•013A NCHCA•0138 NADWH•013C41 OD .0143STATEMENT ALLOCATIONS41 1 .016C 2 .0170 3 •01/3 8 .0185100 .01e6 110 •01EB 131 .024C 132 .0252160 .02C2 170 .0332 175 •0383 180 •0380•FEATURES SUPPORTEDONE WORD INTEGERS44 MENDED PRECISION10Cs44 CALLED SUBPROGRAMSWHOLE LABS PUT EADD EADDA ESUBAFLOAT WRTY2 SRED SORT SCOMP SFIO40 SOAF SDIREAL CONSTANTS• .000000000E 00.0148.660000000E 06.015744•CORE REQUIREMENTS FOR PAY09COMMON 0 VARIABLES 320 PROGRAM 826•SEND OF COMPILATIONLBT .0054 LMC •0054 INI .0095 1N2 .0055 1N3 .0055 IN. .0055TOTA .0092 TOTS .0099 TOTC .0098 TOTO .0098 A .009E FICA *00A11H04 .0101 ISSAN.010A ISUPP.0117 NAME .0120 NSSAN•0123 IL .0124LINE •0129 INOX .012A LST .0128 LAST .012C I .0120 NUM .012EMAR .0133 NXMPF•0134 NXMPS.0136 HSEX .0136 NRATE•0137 LYRHR*0138NSTCK40130 NINS .013E NMISC.013F NUA •0140 NSTA0.0141 INIT .01425 •0188 4 .0193 6 401A6 9 •0187 7 .01BA 1000 .0107133 .0268 134 .025E 135 .0264 136 .026A 140 .0265 150 .02B0Tos .06A0 195 103A4 275 .03FF 99 80480EMPY EDIV ELO ELM( ESTO ESTOX ESBR EDVR EDVRXSIOAI SIOFX SIOF 5101 CARDZ PRNTZ SOF10 SORED SOAI.500000000E 00.0148 .100000000E 03.0145 .100000000E 02.0151 .500000000E 01.0184INTEGER CONSTANTS16448 • 015A 2.0158 6.0150 0.0150 3.015E 3776.0151 1.0160 100.0161 250.0162 90.0163200.0164 40.0169 190.0166 30.0167 40.0168 4.0169 5.016A 9.016B138


Section SubsectionsPage35 20 10 143// JOB• // XE0 PAY09 2*PILES(1,COLFP).(2,WVAFP)o(36MNCFP)11(411LBOFP).(51,LBTFP)o(6.LMCFP)o*FILES(1019INDX1),(102.INDX2),(10311INDX3),(104,INDX4)11(108.INDX81,(106,INDX6)• 103316801XYZ MANUFACTURING COMPANY1642 EAST MIDDLETOWN STREET• ANYTOWN► SOMESTATE 99999013-3230609Input cards139


Section Subsections Page35 20 10 144FORM Ma /Re•. Jon. 19661U.S. MIMI." DePertmnnEt1 Rennet Service• 7 • 7• 7•013 32 3060083 28 4339712 98 2119• '44"032 24 4378614 63 8734541 03 2308• 41213 71 0014782 92 7112194 51 1234• H822 44 5678• H 1E• T1••• IE••••• ti•• 4-=•••THE CONTAINER COMPANY1642 EAST MIDDLETOWN STREETCOLUMBUS, WASHINGTON 99999013-32-3060XYZ MANUFACTURING COMPANY10 21520.23 21532.23CONTINUATION SHEET FOR SCHEDULE A OF FORMS , 941, 94141, 94ISS, OR 943REPORT OF WAGES TAXABLE UNDER THE FEDERAL INSURANCE CONTRIBUTIONS ACTType or print in WI, mace employer, identification number. name. and addreedEMPLOYEES SOCIAL SECURITYACCOUNT NUMBER(If number is unknown, we Circular EiwooTOTALS FOR THIS PAGEnumber of employees,taxable wages and taxable tipsexactly as shown on <strong>the</strong> return.NAME OF EMPLOYEE(Please type or paint)ROBERT B BADENJOHN A HORNROBT L SHORESJOHN W CUSSENJOSEPH MONTANODONALD MILLERA E TAYLORDAVID A HUBBARDFRANK T DOLENAL REYNOLDSNUMBEROF 10 10EMPLOYEESDateEtt d" 3-31-68f.tg,„ 1If this form is used as a continual onsheet for Form 943, Employer's An. liponual Tax Return for AgriculturalEmployees, please check here.READ INSTRUCTIONS CAREFULLYAttach only original continuation sheets to your taxreturn. Do not send a carbon copy to <strong>the</strong> U.S. DistrictDirector of Internal Revenue.TAXABLE F.I.C.A. WAGESPaid =employer in Quarter(Bann deduction.,w OeIIs Cann1831.012202.841906.652286.253176.731342.002233.031923.581475.893142.25L1 21520.23FEDERAL COPYTAXABLE TIPS REPORTED(See InstructionsImo so, ram 94,)1831.012202.841906.652286.253176.731346.002241.031923.581475.893142.2521532.23••••••••


Section SubsectionsPage35 20 10 145PROGRAMPROGRAMDESCRIPTION:PRINTER94/ A7E-PORT<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAMNUMBER: PA Y09APPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPE94 / mods941 TA PEDRIVE NUMBER: 0 1 2 3 4DISKSCARTRIDGEID:PAYROLLSWITCHSETTINGSSWITCHUPDOWN/v°4-'‘SWITCHUPDOWNSWITCHUPDOWN•INPUTCARDS/COP' ewe /Wan /1//(AZ( MORE1 PLANTS —CLAM/7ACCOUNT NO, —CARDA.17-c/TY-.srATEcARDIANTPG ADDRESSCARPNAMEr PLANTCRRL)/ PL ANTHAA DERCARP CARDPAYO9/// ,/046 —SOURCE OF INPUT:/— Plant information cards from file E2- Pctyron dish from stora2eDISPOSITION OF OUTPUT:1 94/ frefrofrt to sovernroent2-Disk is retury7eP'' to statue3- Plater enfoi-metion cards io file eFOR PAUSES AND ERROR MESSAGES SEE ERROR RECOVERY SHEETS141


Section SubsectionsPage35 20 20 01PAYROLL SYSTEMOperation Manual


Section Subsections Page35 20 20 02


Section SubsectionsPage35 20 20 03CONTENTSPayroll Application 1Job Description 1System Flowchart 1Narrative 1Payroll File Create (PAY01, PAY02, PAY16) 2Payroll File Changes (PAY03, PAY16) 3Payroll Calculations and Register (PAY04, PAY16) 4Print Payroll Checks (PAY05, PAY06) 5Payroll Check Voiding (PAY11) 6Payroll Deduction Registers (PAY12 thru PAY15) 7Payroll File Audit, 941, and Tax (PAY07, PAY09, PAY10) 8Print W-2 Reports (PAYnn) 9Error Detection and Correction (PAY09) 10Payroll Programs 11PAY01: Payroll File Create 11Accounting Controls 11Error Recovery Sheet 12Machine Setup Sheet 13PAY02: Add Names to <strong>the</strong> File 14Accounting Controls 14Error Recovery Sheet 15Machine Setup Sheet 17PAY03: Changes to <strong>the</strong> File 18Accounting Controls 18Error Recovery Sheet 19Machine Setup Sheet 25PAY04: Calculations and Payroll Register 26Accounting Controls 26Error Recovery Sheet 27Machine Setup Sheet 37PAY05: Check Writing 38Accounting Controls 38Error Recovery Sheet 39Machine Setup Sheet 50PAY06: Check Register 51Accounting Controls 51Error Recovery Sheet 52Machine Setup Sheet 53PAY09: 941 Report 54Accounting Controls 54Error Recovery Sheet 55Machine Setup Sheet 56


Section SubsectionsPage35 20 20 04


Section SubsectionsPage35 20 20 05PAYROLL APPLICATIONJOB DESCRIPTIONThe Payroll System is composed of 16 different runs. From <strong>the</strong> source documents, producedat <strong>the</strong> six plant sites, cards are punched. These cards are used to store <strong>the</strong> payroll informationon <strong>the</strong> disk cartridge.At this point <strong>the</strong> system uses cards only for transition between jobs. The input data,employee records, is read from <strong>the</strong> disk and updated before being written back. This gives ahighly flexible system, in which I/O, because of <strong>the</strong> disk, is very fast.The system produces <strong>the</strong> following reports:• Checks and check stubs• Check register• Payroll register• Deduction registers for1. Union dues2. Credit union3. Stock• 941 quarterly reportSYSTEM FLOWCHARTNarrativeThe system consists of 16 programs.The Files Creation program is first. <strong>Data</strong> decks are keypunched for each individual, in sets,by plant. The data is edited and, when correct, loaded on <strong>the</strong> disk by PAY01. Three files arecreated: a master file, an index file, and a plant information file. A second data deck wi<strong>the</strong>mployee clock number and name is loaded onto <strong>the</strong> master file by PAY02.Changes to <strong>the</strong> disk information are made by PAY03. Documents, received from personneldepartments at <strong>the</strong> individual plants, are checked, summarized, keypunched, and verified.Time sheets, submitted by <strong>the</strong> plant payroll departments, are keypunched and verified. <strong>All</strong> of<strong>the</strong>se cards are processed by PAY16, which edits and generates control totals. PAY04 <strong>the</strong>nprocesses <strong>the</strong>se cards, performing all payroll calculations. Cards are read, pay computed,disk files updated, and cards extended with current pay figures. After all cards are processed,a payroll register is printed.Checks are printed by PAY05. A header card is read and <strong>the</strong> checks are printed from <strong>the</strong>disk file. PAY06 lists <strong>the</strong> check register from <strong>the</strong> disk file. In <strong>the</strong> event of an error incomputing pay, PAY11 provides <strong>the</strong> means of voiding checks. The extended time cards fromPAY04 are read in and <strong>the</strong> affected employee records are reset. The above are weekly runs.At month end, registers are prepared showing each individual's deductions for <strong>the</strong> month:PAY13 writes union dues register.PAY14 writes credit union register.PAY15 writes stock deductions register.PAY12 resets charity deductions code.At <strong>the</strong> end of <strong>the</strong> quarter and at <strong>the</strong> end of <strong>the</strong> year PAY07 and PAY08 are used to balance<strong>the</strong> disk files to control totals.PAY09 produces <strong>the</strong> 941 tax report.PAY10 produces a tax worksheet used to determine tax liability.At <strong>the</strong> present time <strong>the</strong> program for W-2 reports has not been written.1


Section Subsections Page35 20 20 06EmployeeEarningsRecordKeypunch &Key-VerifyClock No.and NameKeypunch &Key-Verify<strong>All</strong> butNameTotals onAddingMachineTAPE<strong>All</strong> butNameKeypunch &Key-VerifyControlTotalsControlTotalsZero BalanceTotalsPAY 1qINPUTEDITBalance toTotals&Correct asNecessaryOut of BalanceO .K.Control Totals<strong>All</strong> butNamePAY 02ADD NAMESDiskPayrollFilePAY 01FILECREATEControl Totals<strong>All</strong> butNameFileAStoreDiskPayrollFileClock No.andNameFileB2


Section SubsectionsPage35 20 20 07EmployeePayroll ChangeAuthorizationsTotal onAddingMachineOP.TAPEKeypunch &Key-VerifyClock No.,Change Code,and ChangesKeypunch &Key-VerifyControlTotalChangesControlTotalZeroBalanceTotalPAY 16INPUTEDITBalance toTotal andCorrect asNecessaryOut of BalanceO .K.ControlTotalFromStorageChangesControlTotalDiskPayrollFilePAY 03FILECHANGESChangesDiskPayrollFile3


Section Subsections Page35 20 20 08WeeklyTimeSheetsTotals onAddingMachineTAPEKeypunch &Key-VerifyDetailsf Keypunch&Key-VerifyControlTotalsDetailsZero BalanceTotalsPAY 16INPUTEDITControlTotalsBalance toTotals &Correct asNecessaryOut of BalanceO .K.Control TotalsDiskPayrollFileDetailsPayrollRegisterPAY 04CALCULATIONZero BalanceTotalsBalance toTotals; IfIncorrect,Go to EDetails•DistributeDiskControlToPayroll Payroll TotalsRegister F ileFileD4


Section SubsectionsPage35 20 20 09CControlTotalsCalculatedControlTotals•PAY 05PAYROLLCHECKSPay Checksand StubsTotal onAddingMachineBalance toTotals; IfIncorrect,Go to Dso.TAPEBurst, Signand DistributePaychecksand StubsControlTotalsCheckRegisterBalance toTotals; IfIncorrect,Go to EDistributeCheckRegister 1VDiskPayrollFile( ControlTotalsFileD5


Section Subsections Page35 20 20 10DOnly When Totals Do Not BalanceVDestroyChecksDiskPayrollFileControlTotalsFileD(DetailsPAY 11VOIDCHECKSDiskPayrollFileControlTotalsDe ailsToToCF ileD6


Section SubsectionsPage35 20 20 11FromStorageGeneralLedgerDiskPayrollFileUnionDuesRegisterPAY 13UNIONDUESEnter PlantNumberTotals onAddingMachine /Balance toTotals; IfIncorrect,Go to ETAPEDistributeUnionDuesRegisterDiskPay rol IFileCreditUnionRegisterPAY 14CREDITUNIONEnter PlantNumberBalance toTotals; IfIncorrect,Go to EDistributeCreditUnionRegisterDiskPayrollFileEnter PlantNumberStoreDistributeStockDeductionRegisterBalance toTotals; IfIncorrect,Go to EDiskPayrollFilePAY 12RESETMONTHLYTOTALSDiskPayrollF ile7


Section Subsections Page35 20 20 12DiskPayroll\ FileGeneralLedgerTotalsPAY 07Enter PlantAUDIT FILE NumberBY COMPANYTotals onAddingMachineBalance toTotals; IfIncorrect,Go to EDiskPayrollFileFileETAPEPlantNumbersCalculatedControlTotalsPAY 09941REPORT941ReportBalance toTotals; IfIncorrect,Go to EDistribute941ReportDiskPayrollFilePlantNumbersPAY 10TAXWORKSHEETBalance toTotals; IfIncorrect,Go to E8


Section SubsectionsPage35 20 20 13FromStorageFileEDiskGeneralPayroll Plant LedgerFileNumbersW-2ReportsPAYnnW-2REPORTSTotals onAddingMachineBalance toTotals; IfIncorrect,Go to Eit TAPEDistributeDiskW-2 Payroll PlantReports File NumbersStore9


Section Subsections Page35 20 20 14DiskPayrollFileESelect DesiredClock NumberCardClockNumberIndividualPayrollRecordPAY 08INQUIRYLast Week'sPayrollRegisterBalance toTotals; IfCorrect,Go to EWeeklyTimeSheetsDetermineChangeRequiredUse PAY 16& PAY 03to Change <strong>the</strong>Disk PayrollRecord/ Does thiscorrect originalerror? If not,Go to EReturn toPrint WhereErrorOccurredOnly whenentire originalerror has beencorrected10


Section SubsectionsPage35 2 0 2 0 15PAYROLL PROGRAMSPAY01: PAYROLL FILE CREATEAccounting ControlsBalance total gross ($) and total tax withheld YTD ($) from <strong>the</strong> preceding PAY16 to <strong>the</strong> generalledger.11


Section Subsections Page35 20 20 16<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB Pay pa// Sy57-6127PROGRAM NAME PA) Ye7/PROGRAMMER NAME C.,94 7/AMESSAGE TYPED:/1/0 ^/EPAUSE - DISPLAYED IN ACCUM:A/AFTER PAUSE, CONTROL TRANSFERS TO STATEMENTA/dI2e.DESCRIPTION OF WHAT IS WRONG:Ate=7.7 ePROBABLE CAUSE:RECOVERY PROCEDURES•/14, we:COMMENTS'7-he•re are 7 "'7 177 easgage S 0 papS eS.SCORESHEETDATEINITIALS12


Section SubsectionsPage35 20 20 17<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAM , 6-,,,,,,,46, PROGRAM,e4>'0/NAME:NUMBER:PROGRAMDESCRIPTION:APPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPEPRINTER.5"/4,7471,111/-47' 1 5 42,--icie7,-,:2/DISKSDRIVE NUMBER: 0 1 2 3 4CARTRIDGEID:/1-gyro/ \.. ,..., ,-- ,/SWITCHSETTINGSSWITCH /(/OweUPDOWNSWITCHUPDOWNSWITCHUPDOWNINPUTCARDS//far rAYami; e.DETAIL CARDS/4/I/ LJOI/// XEQ PAY() I/SOURCE OF INPUT:DISPOSITION OF OUTPUT:J -(---or"..7 / /19,2t i / 7(1-e,r'► a .svccessfa/ A34).


Section Subsections Page35 20 20 18PAY02: ADD NAMES TO THE FILEAccounting ControlsNone14


Section SubsectionsPage35 20 20 19<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB Ray/9// ,-.5-ys7Ie'eMESSAGE TYPED:PROGRAM NAME PA >


1Section Subsections Page35 20 20 20<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB Pay/'',0 1/ ---)y.5:746'/7-7MESSAGE TYPED:C7L2K;, -- A.16. X K>< /A//17- - /‘ E. .7)C.FIC •Ven7- cleCet.,"i'1,// 724/ CZ 49C-- AA?. x ›e ).


Section SubsectionsPage35 20 20 21PROG RAM Aq,4,NAME:PROGRAMDESCRIPTION:<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAM/a , . fi,QYD2NUMBER:APPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPEPR INTERds^f 7' /DISKSSWITCHSETTINGSDRIVE NUMBER: 0 1 • 2 3 4CARTRIDGEI D:SWITCH /V7/V'fUPDOWN/{^lJ^/O// , \ /' \SWITCHUPDOWN^ON^SWITCHUPDOWNNON/INPUTCARDS/ q/ 2Z / ne /NA M E rr`CLOCKN0. CARDS/// X EQ PAY02//, JOESOURCE OF INPUT:/ Cg,1'/, c,//o o succ 'si 1/ /?4Y// ed^f iur^.2.Oisk pus/ be y'// dis,E fro,» .74Y7/DISPOSITION OF OUTPUT:/ 1 ' 'aid /ock 4/a. c4r4sre" ice./'4VO ui6,c% shoo/d6e ru.^ n.^ ^tFOR PAUSES AND ERROR MESSAGES SEE ERROR RECOVERY SHEETS17


Section Subsections Page35 20 20 22PAY03: CHANGES TO THE FILEAccounting ControlsHash totals of clock numbers, change codes and new fields from preceding PAY16 shouldbalance to control totals prepared manually.18


Section SubsectionsPage35 20 20 23<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETPROGRAM NAME /24 YagPROGRAMMER NAME C,./1C--Z/ChPAUSE - DISPLAYED IN ACCUM:/V 0' A/ E.AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT/e2e2DESCRIPTION OF WHAT IS WRONG • /t'57 c7//?/ 74 e%'-'.'' -.Z.C24, "761/7•241',.'G/2.S. 19 of (2.grad. ‘ez/7/1-2 74/7.- /a/a/77' /74.,-26e/-, ,, 7.-.5eJOB R41.y"V// .5:y...5-77,0c")MESSAGE TYPED:7e7 41/7- /L/D,S.:7)/.5-4,e,-:E-.--0A7 c-Z7x-.-A- A/44.29A-,e)( )(XX.PROBABLE CAUSE:I. , d. .74. "ae, /-` 0 "1 e /0/4,771- Ge.../e2,5" /,7 cZ,-,psee zex-e-44._.c1/a74 Di‘ .0,-.',74Ae.--. pate, ),24.0,,2. 7--, .,,,/, c , , ,27i , 5 - - e /ex:, c 0 ,- ,-....- , - YzyRECOVERY PROCEDURES: The c---w./ ,.--2 .::"/P--,--or-= u---.;// ,,


Section Subsections Page35 20 20 24<strong>IBM</strong> 1131. ERROR RECOVERY SHEETJOB ,°.//77/W/ 5-4,-7.:,-/PniiMESSAGE TYPED:PROGRAM NAME /-'4 Y%9,3PROGRAMMER NAME Cie-.47/e'.PAUSE - DISPLAYED IN ACCUM://v44 /p (--///)//_‹-7,--_--•--•,,e xxx xe,*-2:' ,/%7Z-./s/aAFTER PAUSE, CONTROL TRANSFERS TO STATEMENT./aG9DESCRIPTION OF WHAT IS WRONG:7h,-- (-ha",q emy. e-00./ is /Ve,,76 efr*,//i, r1/2 e kaZ/4.1&#25/-7- (/-v04).PROBABLE CAUSE:tis'e4;:y.7,41,2 C4 Pr//,/') /-)RECOVERY PROCEDURES-/`..... 71/./C-Z7 C'./7/74/ /2.--7c:/c-://,C?../...9-7&°,-7.747 i, i


Section SubsectionsPage35 20 20 25<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB Pay/-10// S,.ỵ.s7iiy7MESSAGE TYPED:CL/2(-7.&" /V0 X XXX ,V,07../A/A-12.PROGRAM NAME "17,4 x-D...5PROGRAMMER NAME (-1..e..-Y/C,4-PAUSE - DISPLAYED IN ACCUM:Ai' ,.... /./AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT A:247DESCRIPTION OF WHAT . IS WRONG-772e //2/26/A Ci2,""e. (--:-../,',4. / -7 "./,"1'7(6,.?,-)/./7,de,x-./.5.- ,7 e274 //-2 74A4'..PROBABLE CAUSE•/. z tC?C).--?/7/0yr.'(•=: C.._(--e:2C:e7/ 4/' c-" -2,,)71 . 4 e•=7(g/-1/.ea.--i-z=,/-2./.er,7--e,',e:;..4,. ,,,,,,he,-■,.).-.7 //5e -.1f:7"...a/ AS/Z.,2e-7.c:',-3/ Jr7 C L7/'.-^ Te//,e_frRECOVERY PROCEDURES..7-h i.? cap,/ ALT ...5.7ZeiCA- r=" C. ,-S-a/G-IZE'.47 ,PE=',7-7eVL/67 >97,..., K77,2-Y/"/..e ..., - 7'6.•■ -• .0' — Af .." .4,. .1 , - ././.7 -7'ere,•--s. )."1-A..., c., e,,c044- /7‘..72hA0,4 Ax- cz,r-,,,a,c's4 ,/e447/e ,..,-.,2"0/0,-/,->e•-•'.c. t'edo/'al oz2 7'-' t° ,/ Z.%. , c97'he.-,-,A;A:se,co// ePc:7' -- .11. 4-47.-.d.a.d .-,-.^6,..2.COMMENTS'SCORESHEETDATEINITIALS-21


Section Subsections Page35 20 20 26<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB .47y,-'67V/ ■-Ssj..5/62/7;MESSAGE TYPED:G-7 /,e -:,t- -- A./e/.4,1/5'friPS ...0 0m/,, 7- "CIGA7. 4"," /-21(:" .XXXX.PROGRAM NAME A4 >"-.03PROGRAMMER NAME C--:,A:::',6--/rc.A4PAUSE - DISPLAYED IN ACCUM:e" LeAFTER PAUSE, CONTROL TRANSFERS TO STATEMENT/C,C,DESCRIPTION OF WHAT IS WRONG:7- hi' C/DG:e /7i/0,76ey'," .';') 7`7.5' ,-iAsk 7i% /L5- ," ) ag / .7.',3e/.1 ),---e. .e.P7/74, 74 C'de-s1"..5-4 2 "We 47-5- 71/2 et /e:, t- ,A ,, c#,7,6a7P"' />, ,e."M" m.cee0X 471741PROBABLE CAUSE:j2.)/5-,4 z:7'47714. A.os ..hee....--► 417.././eve,RECOVERY PROCEDURES.G--"Air.P,e-/ „Air .5:41 'cif- 0 ' e • %re? /d• e- 71‘,a."..ini err t::, 41/47 16' ./". "W",e, GI e "g` f/ 5 .=,' ,C"'G'L./ /"/"E'..,--7C e=' /97dCOMMENTS'-7-)l-s- ,--/-2,,--3 h■ 2 .5" i"e",3e211 ./70:zt67,-; ."-}"Fts-z4.,-,c, ,,vo/SCORESHEETDATEINITIALS22


Section SubsectionsPage35 20 00 27<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB Payro t.5–y57/e/72 PROGRAM NAME P,PROGRAMMER NAME C: /e 7/2-,MESSAGE TYPED:/t/7"*".e.e ss. . -"OA? xxxxPAUSE - DISPLAYED IN ACCUM:O /VAFTER PAUSE, CONTROL TRANSFERS TO STATEMENT0 el' /Id .5 r=' /e::› 7tDESCRIPTION OF WHAT IS WRONG•A,f de A / / C14,2i 24 7,- y:2394,0:74PROBABLE CAUSEhyo/- 2 rodRECOVERY PROCEDURES.Fir .74,42rfrA9 +50/7 • „Seca. -7/,:ye7COMMENTS'SCORESHEETDATEINITIALS23


Section Subsections Page35 20 20 28<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB ,2 &V %.5:-.5-7e6" /7", PROG RAM NAME"67/X0--PROGRAMMER NAME67•te,e//e'k_MESSAGE TYPED:C.. 26../c' 4 311/72,49E-AL? XX )()(/.S . %)///7/ /K":1J-F.D.PAUSE - DISPLAYED IN ACCUM:,\/ 0 /k/ ---AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT /6762DESCRIPTION OF WHAT IS WRONG•-7 - A rr,' c ". /c7C:. , - 7 e.,,,- , .h,-c'^ ,, 74A-=' Zi2,„ .004",e-WV-e: 1 "Pc',",'7 /71 ,- /Ls .,./r-,--4:-,- ,,,,-/(/ ,,,-,-, ,izz..,__e;z4c.-, ,r•/../e2.PROBABLE CAUSE:/ The cW,--. A .5-- =&='.7 6'./7/....---/,.Ct=e. C 0,9.d PLZ >"1-1°.(,,',2. /A.==• /e7e--.4" .2‘....,-,--7.6c=7,-) 777 7-A,-' --):,,,,,74 Car-,-,/Z.5 /,,Cr9Z")," 74RECOVERY PROCEDURES.7Y tea/-.../ AL:-- ,---7/-y-(7----E''' -.5/".=2C 746-'77: (--:-.A r= ''- .6* 7/A"c"1/4, c ,e','. , ./..,. /-:, -.,,-, ii/ /1/2? , . - .> 'L-- .:'iii -. . / ■-",..' , • .-77 r ,z.' - . ....7"4" /7 ,-;,--f'it'.:me 0,-/-- r c' 74., ref cmc h 0,3d /--e='_.--z/ Pi . Tf" it Ts Go ri-cr-7L , a se,//7/(//t - pre,ii ai i ) 2 P14 Y (7/F, *4 1.-2rw-P` th d:. 7% /e..reco 1-el 0 /kV /r/ et- A ..r-rn /1-7 L., ' . t.1)1 7 .74*/):7 6.: 1-- or . i ,,o-fr i 1- isCr-/--- er 7L-.COMMENTS'SCORESHEETDATEINITIALS24


Section SubsectionsPage35 20 20 29PROGRAM cz ..e_ fhe, .4,;,/e./Amge''S ryNAME:PROGRAMDESCRIPTION:<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAMNUMBER: 17AY42.3APPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPEPRINTER6)10„,2441,....e./ / ,SY4e2d0,-4/DRIVE NUMBER: 0 1 2 3 4DISKSCARTRIDGEID:Pay.^o//SWITCHSETTINGSSWITCHUPDOWN/1/2),"leSWITCHUPDOWN/1/0/-,eSWITCHUPDOWN4./4),-,INPUTCARDS(MORE/-: 01" cQch/7%0,21.(,.,'7"eC1/2eCHANGE.CARDSqze./,A cs4or3+e,s./-e:7,--f'/47.77.- ai5eCHANGECARDS(// X E (I) PAY° 3 ///1 Joe)SOURCE OF INPUT:/ Cart/ ../2/2/./,‘ 474,v7 ,a ,s,./r7e-ess..-24.1 PAY/a ^4i1 1 ..- zi.e7.2.0/.5-, musrLee e21/4-4. fe-evry, AA's ./a.ayro/./DISPOSITION OF OUTPUT:/c-havye cards 4/ e 4/ ,,.) ///,-- (-:.e 1)/.S.E" /s .",...61.,,,-.4,0...9" fe, s-7."0,..09,- ,.r. ,,,,,se= ,..,.../.%A4 >."( 4FOR PAUSES AND ERROR MESSAGES SEE ERROR RECOVERY SHEETS25


Section Subsections Page35 20 20 30PAY04: CALCULATIONS AND PAYROLL REGISTERAccounting ControlsMachine totals (regular hours, OT hours, bonus hours, special earnings) must be balanced to<strong>the</strong> control totals from <strong>the</strong> preceding PAY16 run. Information is found on console printer forthis zero-balance check.26


Section SubsectionsPage35 20 20 31<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB PO Y r ° /1 Sr"fte/nPROGRAM NAMEPROGRAMMER NAMEPA r04C. .47. ir/ic A'MESSAGE TYPED:CHFCir CC .1 /4/Vat) 800/V oc/R.ST C.9/?,PAUSE - DISPLAYED IN ACCUM:O 0 0 /AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT 9 9 999DESCRIPTION OF WHAT IS WRONG•/.Cdrd co/t/mn 1 /ids an i4koViip/geert no/vber;or-2. Cdrd co/r/tru, ao e .s 'so* zeroPROBABLE CAUSE•Ei<strong>the</strong>r- d Oktelic cdro/ or d ddr,, cdroi/g a s eSeeerl /P /aced m ?rent 0 , V-hedock.RECOVERY PROCEDURES.C/e4p <strong>the</strong> cdr•oi /-«t der. C/VPRO).P/dce d Proper .° e fr' ' heckler cc:ire/ dr <strong>the</strong> heimelm,0, "4e dec14. Reddy <strong>the</strong> cdrai redder- dna/Press /3•-op-cz Pr/ .5.7" dr* 0/, <strong>the</strong> co"ro/e.COMMENTS •SCORESHEETDATEINITIALS27


Section Subsections Page35 20 20 32<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB A t yl-e /1 5,114.4177PROGRAM NAMEPROGRAMMER NAMEPA Y 04C. R. 1"/ c AMESSAGE TYPED:COMPANY NAM. 0,4 rgcwcle Ae 0 JrAteiM11.JC Ar X NXAl/MVO"PAUSE - DISPLAYED I N ACCUM:4/ k I Wei' A, ftlir . ' ; 1Tif IC." rAFTER PAUSE, CONTROL TRANSFERS TO STATEMENT N O 4*Re dels 4/d 74 ' et Sole; 1-c he s _/ / /DESCRIPTION OF WHAT IS WRONG.4.0;+EP`d yier WI r';:m7 7`oc A ct n.f0 Co ihf rci 476".fPROBABLE CAUSE.Pro /earn q' //oov.s. Air l'A 1 s fio if/ A:// 7'4RECOVERY PROCEDURES.fib//ow t"fle /.17 .1. rr 7/ C ri o ors fir/4 re c / .COMMENTS•SCORESHEETI DATEINITIALSI28


Section SubsectionsPage35 20 20 33<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB /,2),,r.o// 5/4-7"-eK7PROGRAM NAMEfi/4r04PROGRAMMER NAME C. le ir/I 4 kMESSAGE TYPED:CHECK C ■9R0 /4/ /771C Z. OCA" NUMBEX XXXPAUSE - DISPLAYED IN ACCUM:0 / 0 0AFTER PAUSE, CONTROL TRANSFERS TO STATEMENTPODESCRIPTION OF WHAT IS WRONG:/• rise ',rt .,- dig/* of <strong>the</strong> c/ocdt numberdoes nor dreee sari 7'4 vg-he ep■te,17.•nunolvy- m -0-he 'feeder cdrsc/.ors2. Cdrc/ c .:. /mwir, 90 /..r l. A y e /id.PROBABLE CAUSE:/. 74e data 'or ewe phienr i4 ItIc/vglec/svi-r-.5 7'-he 0401'4 ,for d nt,7‘14 er ,9 Y (la r.0,-2Cdre/ olec4 ;., /sot aw, 7' ‘,/, c 0 P.. t-- e ct/x.RECOVERY PROCEDURES:C/ed,' 74A e act P.(1 redder. The 707.-si- Cd'd7to c /c dr i.r <strong>the</strong> cctrd ..) error. Correct -144ecoord)/,e necessclry, or remove it ir 0A4 -,-4e ciec*..*. /eeid d•a/ re'ed'y 74/e cdrd recider."-ess/1=e- 0 fr" OM ...5. 74- et r 7' ow 74-A e c on so /e.COMMENTS:The "aro yrelm evi// not' ConriAgre v,i7i-,V-74-he edrol Pe de/ is corriec7*:SCORESHEETDATEINITIALSI29


Section Subsections Page35 20 20 34JOB Pd Y " // Sy r 7`6) ni<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETPROGRAM NAMEPROGRAMMER NAME1'4 Y 0 4..C• •e• /11-/.c 'EMESSAGE TYPED:CLOCK NO. XXXk / .s-A/ o 7" /N T HE ,C /G EPAUSE - DISPLAYED IN ACCUM:N 0 N EAFTER PAUSE, CONTROL TRANSFERS TO STATEMENT / 2 0DESCRIPTION OF WHAT IS WRONG•ZnPv 7" re Cord c../.0c,&


Section SubsectionsPage35 20 20 35<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB pdoyro1/ SY.flemPROGRAM NAME ie/IY ° 44PROGRAMMER NAME C, ,e, it7ic &ra. e No. xxxX ANDMESSAGE TYPED:/NOE-A, NO. X...te la, DONO T A6REEPAUSE - DISPLAYED IN ACCUM:A/ 0 /V EAFTER PAUSE, CONTROL TRANSFERS TO STATEMENT / 2 0The c./0c* 07 44 eilbefr- ;a, "toeDESCRIPTION OF WHAT IS WRONG •/1",P a 0 D cdr4 4/ e/oes 4 07'- arree ,I.,/1 .4 744ec/cocA- n vmiie, l'n ,'4eems/ogee frecord.PROBABLE CAUSE:Pi's& c/4 7.-4 heti- beer, ci tt er- ed.RECOVERY PROCEDURESecir,c/ is ,s-fitc,Cer-- se /e c7`ac1.2../yr /es/ te..4/14'te/y /- epor. "71" ",- 4 As o a c tor-I- 424c e 7" -c7your ss- co,pe ■-• viss. or.COMMENTS'PAPA' 46271-4 of ct t ,probatbly 6ee•I destroyed,SCORESHEETDATEINITIALSII I I I I I I31


Section Subsections Page35 20 20 36<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB Pd Ye' 1/ "CY'S. 74-4a."7PROGRAM NAME /47/49 YC)*PROGRAMMERNAME c• if: A4-zc A.MESSAGE TYPED:N E T 61 ,4" xxxxxx.,coA,' c4.oc.< .No .)exxxPAUSE - DISPLAYED IN ACCUM:N 0 N EAFTER PAUSE, CONTROL TRANSFERS TO STATEMENT/ 2 oDESCRIPTION OF WHAT IS WRONG.Wet ctniouest o I cXect- ex c 0 e oir /in,/ rPROBABLE CAUSE:or/. L Ino / r 4 . e * 7" e c) /owZ.Err.on e o (ix (At," d in e frr, ,o/o y ee reco•-.1RECOVERY PROCEDURES.a P-I. C Ado fe /I'm ; t- do., c/ re,- 0N .2. Coe/`e Cr- etn,./0 )1 ee reC0P-01 VW,I- e p^ eifr► .COMMENTS'SCORESHEETDATEINITIALS I 1 I I32


Section SubsectionsPage35 20 20 37<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB Pet yro /1 .r/rrepaPROGRAM NAME.PROGRAMMER NAME/17/9 1 0 4-C. 4:% e/4.4.MESSAGE TYPED:Nnir 7a7,11.5 XXYX)006 xxxxxxx•X Vxxxx. xxxxxxx.PAUSE - DISPLAYED IN ACCUM:N 0 /V E"AFTER PAUSE, CONTROL TRANSFERS TO STATEMENTA 1 e -k- * I.7 Se odenc eDESCRIPTION OF WHAT IS WRONG • /1/0 r'h i n 59PROBABLE CAUSE • Eel c/— a ,e- la 4 ,•-• co eft IA e ,.r 0,,,,i-/".2 ri,,, 9. e, 4, 7,-cce774-ro/ i- v tee /..r re.- a eh hedcle r, c d r a' .RECOVERY PROCEDURES:COMMENTS'SCORESHEETDATEINITIALS I I33


Section Subsections Page35 20 20 38JOB Pa yr o // ..rysreen<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETPROGRAM NAME Ri9 y 0 491-PROGRAMMER NAMEn e /e/c4MESSAGE TYPED:APOC cs-s-EP To 7--,4c rxxxxx.YX. x X.k xxx X.)e )ex'XkA,X, X >e Xxow xx.PAUSE - DISPLAYED IN ACCUM:N 0 Al EAFTER PAUSE, CONTROL TRANSFERS TO STATEMENT/k/ V 7` in S e y'e.ie.74.e..DESCRIPTION OF WHAT IS WRONG • /1/0-7"04/•45*-PROBABLE CAUSE: Eno,- of -10.6 ',cid-1'14e is- , , ,- iip 7`..47 o cd V"SO 7"e el co n fro/ 7`07`4/r.cicc 1.,,07RECOVERY PROCEDURES.COMMENTS'SCORESHEETDATEINITIALS34


Section SubsectionsPage35 20 20 39JOB Pali *-5-' y-C,162,?7<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETPROGRAM NAME /9/i Yei4PROGRAMMER NAME C. /?. ,c---//e.e._MESSAGE TYPED:en=7.4-V/P 7674/ 5" )0e,r,e)ex y , Mx...lerwrie,icser x sescx .:kw eie ..rx iCaPAUSE - DISPLAYED IN ACCUM:/./ e A/ 4—AFTER PAUSE, CONTROL TRANSF ERSTO STATEMENT/3 "-If 74 // ,Se ie-y=',2CP .DESCRIPTION OF WHAT IS WRONG•A/o //,/,--y-PROBABLE CAUSEk432 // 47 71"--j O6 /-47407‘.',2e. AS /voi^/i-,1";,;_g Oa,-4 e c e. ..)-210./.10 .74'"..-71 74c, 1.6 • /.5" /7 7e 9,-r-4:v7,-m' 47z., .5" ,.. -c.--c,..--.-2/.. T.RECOVERY PROCEDURES:44-i-e-e,z , 74j ape-. si- 'vs 74 A 0- .4 Cec.zei, sc:''tit7e:e, e- 4:,./ ef e^ r, e- /re° e^ ././;0.--, .1 .-o-heleloz' ee-lr '74PC E' =ZS 4= 2 719' .COMMENTS:ISCORESHEETDATEINITIALS35


Section Subsections Page35 20 20 40<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB /i-,./-10// ...ry...5"/Eip-.7PROGRAM NAMEP-49)--e94PROGRAMMER NAME C A? 4-1/Ch...MESSAGE TYPED:77/e nkcfEeCA/GE5KA-xt-A-x)e.xioexx)cm.x-)ex xx xX.XXXXXx X.PAUSE - DISPLAYED IN ACCUM:4/ a /t/ EAFTER PAUSE, CONTROL TRANSFERS TO STATEMENTA4=7)(74 ../.--, Selyue.'..-->ie •DESCRIPTION OF WHAT IS WRONG:/t/o/-..79PROBABLE CAUSE:Eivd-or'-iePA i-ev7i.le is /0..,)-7/-/,?, c,ri,' /heal. 90,0torig,-,CO2:s es...livic-•&o...0 Ale ",--77,..."` 7'.01a/s- ad-g s,2,--,!/./m ■ d /!I if-c? 7;ola/s--7"Id'RECOVERY PROCEDURES.A/o.-; zee-,.-41," C7,-2 4/ C'ea /''','"PG 7oz' p./.7'/ ores #77,..".5, hoc, /ae-ce 4/ ,-, *'41COMMENTS;SCORESHEETDATEINITIALS36


Section SubsectionsPage35 20 20 41<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAM , ,NAME: .:?/c--e//ai-/e/7.5//zky/w///F2f9Ablei"PROGRAMDESCRIPTION:PRINTERPROGRAMNUMBER: PA y4)4APPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPE..5-4,1,..i.da „...,:/// ...5-/.0/7,o/a..--0/DISKSSWITCHSETTINGSDRIVE NUMBER: 0 1 2 3 4CARTRIDGEID:Po:y/-0g/SWITCH /4SWITCH ACUP 3 UP1.--DOWNDOWNINPUT 5ce.////ch /4 fCARDSObe) -.5-4,1/ch /5(,/,./ 141/%2elf)c•Ko.ncye n-7.1aA-/;-,-,e.i.724, ch.a...tfaSWITCHUPDOWN/14,/ecAc•c.E.. amourn4 (:;no. fursc4ecie.. ~.4.76 e, -, a,,..,,,r, ,,,,,,,,„,c ,,,,„„..„6,,,,/q/// JosFop one"Yon,-WEEKLYEMPL-GYEEr-AQ 05/CONT2CLTOTL■LS/// X EC.4 PAY04SOURCE OF INPUT:/ ,K. ;;;Ii^o/ /;-,/.7‘,/4.4-en? a .2.7.1.4--.--e=s.c/4"/ /91) /6"; ev/./ r-E../■1/ny,-7,-,//2 Dz...rk ..-fm-s-i .5e. n6:5-•.,e- 1)--e,,,, /e.s.DISPOSITION OF OUTPUT:/ GD/77//''a/ /o7lo/.s. 14, //Ye Za! ,/.. l' o 74/e .%)s'i,o^d,fe l4. Pdy fr-e,// /-cyi-rig.r, fe payi-o//sec/.cs7,FOR PAUSES AND ERROR MESSAGES SEE ERROR RECOVERY SHEETS37


Section Subsections Page35 20 20 42PAYO 5: CHECK WRITINGAccounting ControlsDisk-stored totals -- gross ($) and net ($) -- are balanced to machine-calculated total of checksfor zero-balance test. This should also be compared with <strong>the</strong> adding machine tape of checks.38


Section Subsections Page35 20 20 43<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB Pay. r©// Sys.744v/A-2MESSAGE TYPED:C-/--//L"?" ,&- -:"-_-/ ,9.t,'1.7 CG "30e,/v .c-/.EST G-.9.4"42PROGRAM NAME /e4X.0.-5—PROGRAMMER NAME C. #


Section Subsections Page35 20 20 441<strong>IBM</strong>1<strong>1130</strong> ERROR RECOVERY SHEETJOB /v . .• 5 7 .. PROGRAM NAME4-4(44.146r4/441e. "9" Pr.MESSAGE TYPED: el'leek" A/0. XxxxX1.146:‘,‹ No. XWA" -X.X x '


Section SubsectionsPage35 20 20 45<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB Pe& ..--0// %S.-y.5 7e2■9-7MESSAGE TYPED:.EA/ree/e CLOG /G A/O.PROGRAM NAME MI,Ve.)-6-.PROGRAMMER NAME C. Aqi-/i.er-PAUSE - DISPLAYED IN ACCUM:A/AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT -5-00DESCRIPTION OF WHAT IS WRONG•AvaV)zirii. 7eor key h .0e, el y;oiozitPROBABLE CAUSEe?/267,19740,' 1,7 74e," i.,c 467c 4..(c).2,7 110,7 1-a „0-&./,0,--„,:p id.RECOVERY PROCEDURES:4--.., 7-e,-, <strong>the</strong> ,out' -0%:51/ /s/1:2Cie e•^2z.,,,Iieti,'' ,04" )4‘eir_he,'c L(s) 740 .3,.., ,-,.../,,-",7 ye .,;,/. a / 4 ,...,..ve•-, //,,,,e"7:6.e/7 Li A , 7 6 "=,"- " h..fA/ ,e.00.0■-2 '',2746=',•-&,e;,/, ''#.2.e? fejS 6:12.02416,/ Or?e,CCe/P1S, 74-/.//%7 c:,,,' slud . / i.` 4 zero e7,79',.■-e°25s ,E-e7i.COMMENTS:/his .'"o a 74:-7 e Lo //de.4/S A 2 e's ,-"er7.--vii 74',iy O reI; err? 0," "17/...r//5 n e°./.,/ ch.ewc..A S.SCORESHEETDATEINITIALS.I441•


Section Subsections Page35 20 20 46<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB Pay,-, 0 // '-'95 74&./?-;PROGRAM NAMEPROGRAMMER NAME/4// VO 5--C. Iii'4"-// c A---PAUSE - DISPLAYED IN ACCUM:MESSAGE TYPED:./7Z-D L2C7-/0/1./ A/DỴ /V c77-M..51,-7' FOre X> X >C. ,\/0 A./AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT..c- ..e-,---, •-,•)DESCRIPTION OF WHAT IS WRONG:The 41-1:9-c-s ,a /7-, o 4./7 7I- eV. '1,6 ..E. C■4.C.,4-, ye,0/--- .74:4#.'6),) , Any e -e- / /,e,,,, .6. `i074 5 /./ I 9,/C ; P /- ? 71- 74C 19//n' 71h /.5ezt.e yAh or- /ze.,7' e-e'eciz..,- 71i ."74--2 .PROBABLE CAUSE:4.--,2-7/42/,,y es? /21,4a, ." - 7 o74 e...e.", l'',/‹. G 27-4,// ,-_,.,ee.F-...RECOVERY PROCEDURES.IVO 7e /. ?Cy y n c/ i- ,s-c-//ody- c,/.5"c:IriCOMMENTS'7-' . s As le, 46 62 ,-6,/, a , - 72 r=2,--/ 710::" IA eSCORESHEETDATEINITIALSI42


Section SubsectionsPage35 20 20 47<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB P.,3,----0// ....51,516=',-fr7MESSAGE TYPED:PROGRAM NAME P/9 Y06---PROGRAMMER NAME C---• 't? 4"//k.....PAUSE - DISPLAYED IN ACCUM:A7!,/1.4.1T0 0 0AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT 9/DESCRIPTION OF WHAT IS WRONG•/1../.5 re. to Gs /./ e...0 ',4 z2/i.4'.."2"7", e'.0").74. 4,4 c--..e.e,_s/5,,A,---e ,c;:y-,:-77‘/>7_, 7Lhe. .s.c.,2,-2,2/ -.%7.,-,c,=>.PROBABLE CAUSE, 5-44. / 71r- ,6 z,5— has h ee/7 ...se, .1` .1.) 74/30eva/o/1 ..../RECOVERY PROCEDURES.Pf'd=2 .5.5" Pr?) q rla rfri SY-a/ni- 4, Ce7,-0 71,/7"de.. .1Vhe.i7 r ..vc--.___....5 arCA> `/.:,-,..,,p,-/, 744/ ri2 e9/41' Slei /7i-1/2 AS.-COMMENTS'%3-ev /71c h /..5- er...// ha/,4 ivenf..79/2?")-7 yec),- a,,,,,—p— er, "--vr7 ■ r .„, eSCORESHEETDATEINITIALS43


Section Subsections Page35 20 20 48<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB Pa fi.->e, // ...S-y.,7 ile=2/07MESSAGE TYPED:A/0 A/&•—•PROGRAM NAMEP4 >''‘75PROGRAMMER NAME C: 4? ,e-//c-......PAUSE - DISPLAYED IN ACCUM:O 0 0 .3AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT 93DESCRIPTION OF WHAT IS WRONG•, 72(,se 7e) "9//2i 717e r,..&"71,-,0.../2 7.1" cvc p7,1e-c.E6-Ar.27o,,- /orri27`,,y 71-he /h.,--",/ 4:-) 0,7 .PROBABLE CAUSE:• 1-61,i 1 4 C /6 ./ •6-. has e 3 t." ' 1'2,', •••5' 6Ve 16,...V 7X ei. e.ye"."'427c,,,RECOVERY PROCEDURES:,Pi-E',5'S J°/^o f 1-',-;17-7 ‘ 774-4? .- 74. A, (--,e, .., 7*/#7,..yc , 1Ge'h 0.,...-,"40 1,--%7 e'te.,". sw-e.,./144:7,6 /5.:ci4eci-..„5 .4.i. ,.,j.,"7"..€73COMMENTS'SCORESHEETDATEINITIALS44


Section SubsectionsPage35 20 20 49<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB_Pa_y_e,2L/.. 5 y4/ 9 Et7 PROGRAM NAMEP4 YDS'PROGRAMMER NAME C.,42.4"//CA.,MESSAGE TYPED:/VD /t/-.PAUSE - DISPLAYED IN ACCUM:C) 6.7 4AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT 95-DESCRIPTION OF WHAT IS WRONG:,2:7r,9445-6' 140 Q'//, 64.1 Me. e.f•"9 ,-friev. . - i 1.4 (7, c-heoe%ks/e.).--,-.--,7`yiv ,74-10,4,-. 7z>4 /,tee .,S7, ,z71,0.-e 71-hPROBABLE CAUSE:...5-e4, /. /eh /..6" h 4 ' 3" 6 e'f''.-2 .5'&74 ,4.y fleeD/f")'/W /O/'.RECOVERY PROCEDURES'P/"6:?...5.S , o r-10.1 /–.17.7 2 ..5n7441,-.74 1 427 C","..771/eize.,40, Pt/he/2c/4,..,c,_,s- az-K2 /21 -iet.;,' . / Y4a1"1"; [97C,7 .5141 /714" .6 AS;COMMENTS'SCORESHEETDATEINITIALS45


Section Subsections Page35 20 20 50<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB >0ay.-7‘,// ,-.5":, S 714=w-7MESSAGE TYPED:PROGRAM NAMEPA >/./3 .5-PROGRAMMER NAME C /*C'? 4.-//C.4--PAUSE - DISPLAYED IN ACCUM:0 0 0 6--AFTER. PAUSE, CONTROL TRANSFERS TO STATEMENT 700DESCRIPTION OF WHAT IS WRONG:.5 '''' .. or .., ..., - ...e.dr°Cev■-'6": /a/v/) 71 -, /he.' 7eii•-.17e //,-,e0./Z9/2 PP7&'•':174 c9, cA:vc h sPROBABLE CAUSE:..5-ed,./ite A AS- has 6P,---i7 ,5-E'74 6,y /6e e,,,e=ti-Wler).RECOVERY PROCEDURES•Pc-,-.5 - s• 1,--).-v /-w,-, . .5744,/ / 740 ca.'/, ./..oz..,- it//1[r°/7G- Pr A. c a/'`:4 /.9.-) te-,...-21. 7 44/,-..-2 .e.74e1.5..",./r- A /.17"COMMENTS'SCORESHEETDATEINITIALS46


Section SubsectionsPage35 20 20 51<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB /kvir-kv/./ ....954",./2.9PROGRAM NAME PA >---e:).5PROGRAMMER NAME G-7 ,4--?,&-//C.MESSAGE TYPED:REG-457 -eōe C-Aife.& 4/4, X XXXXODES et/ 47" .„4G-A6'ef.. ie. i / 777/T//,s i-P2/-fi .--,eve-c,e.x/e) Xxx XXAFTER PAUSE, CONTROL TRANSFERS TO STATEMENT 4302PAUSE - DISPLAYED IN ACCUM:A/ 0 /V e-DESCRIPTION OF WHAT IS WRONG'77)►.0 ,i1j>la/ check.. hA.,-,-,A.-.) yei-oh7 1.4e' ,o ..,,,,//.-, .0 0/' - ./, .." A.,' -0' ei 1 e..S. "7 e:› , el 1"/"e'`e e,/.114I-- 4 17,;7 a/ C . 6 eave- .A ./.24,0-r2be 17,-_, ...1-2 7:6 /: c rue, .PROBABLE CAUSE:4da/,'14/a,-.20/ C ' 012 AP C .. he .0.9 46 "e.1" ...."ice .red, eel,RECOVERY PROCEDURES:The ,-i./.4.,-4.,,....7 e e .2-,,,s, he. a e"c 4,a,, led 149,"//, /E%/ell"/ li4E`I•2 G' .4 LsPe-&c. .1, A000 ,e,c) c'he-ck.s ce..ei-ea./-/#14-e,-7) a p4,9.-rop 1" 710 ce),-//c• 74.4,,, ,....0.'SS/;9‘, chePc .6S"5 "-'e? e If L:7' C. "../71";.61"5P AVe, - "'la ..,-7 t./..51/4•13 f ‘ e_- A A ,,, .... - - , - ... .• ■,...-role ti/)..•," 7... rar er%••••/.c•)d-• •COMMENTS'SCORESHEETDATEINITIALSI47


Section Subsections Page35 20 20 52<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB ay 1-o // Sy5/6:',7-7 PROGRAM NAME /C"'"f 5-'0 5-PROGRAMMER NAME C- /e-Z-7//ek--MESSAGE TYPED:WerxPAUSE - DISPLAYED IN ACCUM:4/ O /1/AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT 8402DESCRIPTION OF WHAT IS WRONGiVoLk.22-5PROBABLE CAUSE:q/- je:).6 PD/./ 71./f/eRECOVERY PROCEDURES•COMMENTS'SCORESHEETDATEINITIALS48


Section SubsectionsPage35 20 20 53<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY SHEETJOB Pe /'O// ..5:7,54°,"?PROGRAM NAME /°4 Ve,6–PROGRAMMER NAME C: /E 41/c06.-MESSAGE TYPED:,Pfdzsrixo 7227:411s- xxxxxxxx. mycxxxx.CHEC A- 77o7:915" )60000.e.X.xxxxxxxx •2)/fifirREACES X x sc>e ›e *se . x...„PAUSE - DISPLAYED IN ACCUM:.. A/0 A/ 6.-AFTER PAUSE, CONTROL TRANSFERS TO STATEMENTA.,(7"Al& x 7d /i7 -5-eit./..=.2c.A7/7/>77 Der/


Section Subsections Page35 20 20 54<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAMPROGRAMNAME: ChecA ,V.V71/;-)9 NUMBER: /4214 X-62.5-PROGRAMDESCRIPTION:APPROXIMATERUNNING TIME:PRINTERTYPE OF PAPER NO. OF COPIESC4ec4sCARRIAGE TAPECh6-c--__sDRIVE NUMBER: 0 1 2 3 4DISKSCARTRIDGEI D:Rayr-c //SWITCHSETTINGSSWITCH CSWITCHUP 3 UP,...-DOWNDOWNSWITCH /3--UPDOWNINPUT 544,//ch /:s used 74-4, ,-,-2,7.4.6, c....4 eoe.k ,SCARDS77a, c--‘,/-wec71;/"E>e?"'"," ..-, f'.. ce."....4 e=7.-7 36.6'y L7.,#e•.54.,../eA /4 A's e/-red /0 se'/1‘ A ' - m3.- Jai -/,-,/ /n^ cAc=c-4- 42.--/-7e,sd,7 7- -Samich /5T. used 743 _s--&--/ 7:4e c-,6,-,--.4 ,-76.,,i66.., Jo sfas-.1-‘,-,/),awd "a ..5-4,, /e' sysle,,d ,7 a/9fr7 /e-,:.! /0,-/,. yte,-. ,/CC>NTI2 OLTO T/: LC/// X E0 PAY() '-1/7 Joe,SOURCE OF INPUT:/ C-42,-- 71, - - 0 / 710714:7/7 "e'' 0 e - - 7 ///e O./.0 a , - Ay a Ar. -DISPOSITION OF OUTPUT:/ "ckyc-,4coc,.s t=e, 6=',v2/7.A._j,--,-,=.57 .1).S4.-* pc- ... -/ , ,-' 40, ,FOR PAUSES AND ERROR MESSAGES SEE ERROR RECOVERY SHEETS50


Section SubsectionsPage35 20 20 55PAY06: CHECK REGISTERAccounting ControlsPlant total (net) from payroll register is balanced to total on check register, and check registertotal (net $) is balanced to adding machine tape of checks.51


Section Subsections Page35 20 20 56<strong>IBM</strong> <strong>1130</strong>ORROR RECOVERY SHEETJOB Pay r-',,, // .Sys /camMESSAGE TYPED:CWEGic... CC / A A./i2Cf. M,7 eP4/ .4%.e...57- e--.04/21..)PROGRAM NAME ,mil >0' * 0 46PROGRAMMER NAME 67,4::? 47,"c 4.PAUSE - DISPLAYED IN ACCUM:0 0 /AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT .9.9-9 -9..9DESCRIPTION OF WHAT IS WRONG•J. Cafral ('..7 c /tin-) •-› y A oz..- A.-) /i7 e. a /....-/ Av Ai, r"- _p7 v.-.1 46 Or°,1,o/-7''.-j. r.."2/7/W1 Cr) 11.1■1•7 di Z5se9 ./.. r 77 G• )4" Ze. /le, _PROBABLE CAUSE:Fi 74/2 ,


Section SubsectionsPage35 20 20 57PROGRAMNAME:PROGRAMDESCRIPTION:<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAM /„4,,,,62aNUMBER:APPROXIMATERUNNING TIME:TYPE OF PAPER NO. OF COPIES CARRIAGE TAPEPRINTER,_5-,e7,..) e„,,,,,, 4. / si4a..--, 4/47',/' .er"DRIVE NUMBER: 0 1 2 3 4DISKSCARTRIDGEID:/r'oyi•o//SWITCHSETTINGSSWITCH A/0,UPDOWNSWITCHUPDOWNSWITCHUPDOWNINPUTCARDS/CONTROLTOTALS/// x EQ PAYC6/// JO 5SOURCE OF INPUT: /../..s J< "I r.-. f)r) t`rtil 407.6./9 74-0.,2 /.- A Y?:)._5-DISPOSITION OF OUTPUT:/ (-X e c ,. 1-e. 1-/-5-iler- i`o /0 aij ro// -76-'c7io/-22. ,Ze2.2e.4)_______---', f. 0/....s-.. /


Section Subsections Page35 20 20 58PAY09: 941 REPORTAccounting Controls941 total per plant (Gross $) is balanced to general ledger.54


Section SubsectionsPage35 20 20 59<strong>IBM</strong> <strong>1130</strong> ERROR RECOVERY MEET'JOB /2_7777,-//// PROGRAM NAME /24 >-";.. 9PROGRAMMER NAME C7../ /11/4c/4-MESSAGE TYPED:PAUSE - DISPLAYED IN ACCUM:/V Z" A/ O /■./AFTER PAUSE, CONTROL TRANSFERS TO STATEMENT /1./Z),2c=?,DESCRIPTION OF WHAT IS WRONG•PROBABLE CAUSE:/l/o19 eRECOVERY PROCEDURES:/1/7)/72COMMENTS'SCORESHEETDATEINITIALS55


Section Subsections Page35 20 20 60PROGRAM :1PROGRAMDESCRIPTION:94/ IQ'EPORTTYPE OF PAPERPRINTER 94II FoRifrisDISKSSWITCHSETTINGSINPUTCARDS<strong>IBM</strong> <strong>1130</strong> MACHINE SETUP SHEETPROGRAMNUMBER: A24)/09APPROXIMATERUNNING TIME:NO. OF COPIES CARRIAGE TAPE941 TA PEDRIVE NUMBER: 0 1 2 3 4CARTRIDGEID:PAYROLLA I 11 h ■ A I I 1.6.111h11. .SWITCH /v0^-,C SWITCH SWITCHUP UP UPDOWN DOWN DOWNFor, a/le /0/0/71PLANTNAME I CARD/ PLANTCARD fez,ERri,XIQ PAY09/1/ o'08MORE( PLANTSPLANTACCOUNT NO,CARD/PLAiv 7C/TY - STATEcemi'DPLANTADORES ,5CARPSOURCE OF INPUT:DISPOSITION OF OUTPUT:1.-- Plant informd-tion Cords from file EE-- Payroll disk from stora.e/ nil frepoPt ic fvernmeni2- .047A. Zs ratuript eo stature3- l'etult inFofrrned tort ei1'd.1 eo file E.FOR PAUSES AND ERROR MESSAGES SEE ERROR RECOVERY SHEETS56


Section SubsectionsPage40 00 00 01Section 40: CONVERSIONCONTENTSIntroduction 40.01.00 Preparing for Conversion 40.20.00Planning for Conversion 40.10.00 Conversion Methods 40.30.00


Section SubsectionsPage40 01 00 01INTRODUCTIONFor each application, <strong>the</strong>re will come a day when allyour programs are written and tested, and you willbe ready to convert from your old system to <strong>the</strong> new.Will you be ready? Not unless you have plannedand prepared for conversion. Conversion involvesthree major elements, of which <strong>the</strong> conversion itselfis <strong>the</strong> last step.


Section Subsections Page40 10 00 01PLANNING FOR CONVERSIONAs has been stressed, <strong>the</strong> first step is planning.This involves two basic items:1. Make a schedule indicating when you willstart conversion of each application and when conversionwill be complete. After you have completedconversion of your first application, you will have abetter feel for what is involved, and will want to review<strong>the</strong> schedule for <strong>the</strong> remaining areas. You mayalso want to reevaluate <strong>the</strong> conversion techniquesyou chose originally.2. Decide which conversion technique you willuse for each application area. As above, you willwant to periodically reexamine your decisions asyou become more experienced with each technique.


Section SubsectionsPage40 20 00 01PREPARING FOR CONVERSIONAfter making up conversion schedules and choosingtechniques, you should be able to see what must bedone to prepare for <strong>the</strong> actual conversion. Askyourself <strong>the</strong>se questions:1. Is <strong>the</strong> old system documented accurately andcompletely? (See Section 10.) If it isn't, a smoothconversion will be difficult.2. Can <strong>the</strong> controls of <strong>the</strong> two systems be compared?If not, it will be difficult to compare <strong>the</strong>two systems. The new system should have <strong>the</strong> samecontrols as <strong>the</strong> old, and you may even want to addcontrols to <strong>the</strong> old system to ease conversion.Such controls as grand totals, subtotals, documentcounts, etc. , will bring quick attention to discrepanciesbetween <strong>the</strong> two systems.3. Is everyone who is involved in <strong>the</strong> conversionfamiliar with both <strong>the</strong> old and new systems? Misunderstandingsregarding <strong>the</strong> differences between <strong>the</strong>old and new can seriously interfere with and delay<strong>the</strong> successful completion of even <strong>the</strong> best plannedconversion effort. Communications should be maintainedwith <strong>the</strong> people involved during <strong>the</strong> entireapplication design and program development phases.A few weeks before <strong>the</strong> conversion period, all thosewho will be involved indirectly or directly in preparinginput or using output from <strong>the</strong> new systemshould be taught both systems, in general--and <strong>the</strong>irparticular areas of responsibility, in detail.


Section Subsections Page40 30 00 01CONVERSION METHODSThere are three common methods for conversion:1. Parallel operation. With this method, <strong>the</strong> sametransactions are entered into both <strong>the</strong> old and <strong>the</strong>new systems, and <strong>the</strong> controls are compared. Thisprocess is continued over a predetermined (usuallyshort) period of time, until a responsible executiveis satisfied that <strong>the</strong> new results are accurate.Make sure that <strong>the</strong> time period of paralleloperation is one during which a wide variety oftransactions occur. Large volume is not important,but variety is, since you want to test as many aspectsof <strong>the</strong> new systems as possible. Pick a slowtime in your business cycle to effect conversion.Before starting parallel operations, obtain a,clear understanding of what is to be checked, and bywhom. Since additional personnel or man-hourswill be needed during this period, avoid conflictswith vacation and holiday schedules.As far ahead of <strong>the</strong> parallel period as possible,<strong>the</strong> personnel who will be preparing <strong>the</strong> inputcards for <strong>the</strong> new system should gain experience inusing <strong>the</strong> new input document and card formats.This is one of <strong>the</strong> most common areas of difficulty,and many "computer" mistakes are eventually tracedback to faulty document preparation, accumulationof controls, or card punching. Often it is possibleto use new formats exclusively some time before<strong>the</strong> computer system arrives, by preparing cards in<strong>the</strong> computer-required formats and <strong>the</strong>n reproducing<strong>the</strong>m into <strong>the</strong> old formats for use by <strong>the</strong> currentsystem.Parallel operations often encounter problemsthat result from significant differences between <strong>the</strong>procedures used in <strong>the</strong> old system and those in <strong>the</strong> new.It may be quite difficult to compare results producedby <strong>the</strong> two systems, since <strong>the</strong> important totals in <strong>the</strong>new system may not have been prepared previously.Or you may find it possible to print reports in adesirable sequence which is not feasible currently,but which will make it impractical to cross-checkline-items against reports in <strong>the</strong> old sequence.Ano<strong>the</strong>r problem inherent in parallel operationsis <strong>the</strong> doubled probability of errors. Thereare twice as many chances for errors to occur, andwhen making up a schedule, you must consider <strong>the</strong>time spent in tracking errors down and decidingwhich system, if ei<strong>the</strong>r, was right.2. Pilot Operation. In pilot as in parallel operation,an application is run under both <strong>the</strong> old and <strong>the</strong>new systems. The difference lies in selecting onlyone or a few easily observed locations or departmentswithin <strong>the</strong> company, and performing <strong>the</strong>operation only for those sections ra<strong>the</strong>r than for <strong>the</strong>entire company. The same care must be taken insetting up controls, scheduling <strong>the</strong> period duringwhich <strong>the</strong> pilot operation is to take place, and trainingthose who prepare <strong>the</strong> input. In regard to thislast problem, <strong>the</strong> pilot method offers a trainingground for those who prepare and punch <strong>the</strong> data, byallowing different people to get experience every dayor every few hours.Care should be taken in determining whichpart of <strong>the</strong> job is selected for pilot running. Itshould be completely independent and self-contained,if possible. Therefore, pilot operations may be <strong>the</strong>ideal choice for organizations that are divided intofairly independent units or locations. In any case,<strong>the</strong> effect of <strong>the</strong> pilot run on departments o<strong>the</strong>r than<strong>the</strong> data processing department must be carefullyanalyzed, and those who are affected should be notifiedwell ahead of time.Again, you must carefully establish who is todo what and when, if an adequate analysis of <strong>the</strong> progressand success of <strong>the</strong> operation is to be made.3. One-time cutover. As of a given date, <strong>the</strong>old system is discontinued and <strong>the</strong> new system is putinto operation. Careful planning is necessary tomake <strong>the</strong> transition smooth. For one thing, filescan be built up during a fairly extensive period beforehandand checked with control figures for accuracyand completeness while being created. Amaster file of customers can be card-punchedduring <strong>the</strong> month before <strong>the</strong> preparation of statements.Alternatively, only new customers' cardscan be punched, while operations are performed on<strong>the</strong> old file to convert <strong>the</strong>m into <strong>the</strong> new format.Then both <strong>the</strong> old and new cards are merged atmonth end to create an updated master file ready foruse by <strong>the</strong> new system. It is often desirable to writeone-time programs to do <strong>the</strong>se file conversions.Whe<strong>the</strong>r <strong>the</strong> computer or o<strong>the</strong>r equipment is used,time must be scheduled for <strong>the</strong> coding or procedurewriting, as well as for <strong>the</strong> operation itself.Where some data is to be recoded, or codedfor <strong>the</strong> first time, as in <strong>the</strong> assignment of a new orbetter set of customer numbers, you should get <strong>the</strong>job done and checked out in advance.Ano<strong>the</strong>r way of smoothing <strong>the</strong> cutover is tomaintain control procedures that will be requiredfor both <strong>the</strong> old and new systems some time before<strong>the</strong> critical date. This will eliminate <strong>the</strong> possibilityof errors in <strong>the</strong> execution of <strong>the</strong>se procedures.


Section SubsectionsPage40 30 00 02Cutovers are never truly "one-time" in <strong>the</strong>sense that no parallel or pilot operations are performed.The difference is in <strong>the</strong> time at which<strong>the</strong>se operations are done. With <strong>the</strong> cutover method,parallel and pilot operation take place with data thathas already been processed. For instance, after anaccounts receivable procedure has been processedunder a current system, <strong>the</strong> entire procedure is runagain on <strong>the</strong> computer. Controls are checked anderrors are cleared up. The accounts receivablemay <strong>the</strong>n be run once more on <strong>the</strong> computer, andthis process may be repeated, perhaps over morethan one month, until management is satisfied thatit is running correctly.Although some double manpower requirementsmay be eliminated by using <strong>the</strong> one-time cutovermethod, extra man-hours will still be needed--forexample, when a weekend immediately precedes <strong>the</strong>cutover date, or when card files are being convertedfrom one format to ano<strong>the</strong>r.* * * *You can see that no one of <strong>the</strong> conversion methodsdiscussed here stands alone and independent of <strong>the</strong>o<strong>the</strong>rs. Use <strong>the</strong> elements of each that suit yoursituation, but develop a realistic plan that will consider<strong>the</strong>se factors:1. Manpower must be available at <strong>the</strong> right timeto manipulate old data into new formats.2. Control procedures must be developed and, ifpossible, tested ahead of time.3. Detailed document preparation and cardpunchingprocedures must be developed, and areasonable amount of time must be reserved topractice <strong>the</strong>m before conversion.4. Procedures must be written for <strong>the</strong> one-timeaspects of <strong>the</strong> job, and manpower must be availableat <strong>the</strong> right time to do so.5. The word must be spread; education for thosein o<strong>the</strong>r departments must be done thoughtfully andcarefully.It is almost impossible to plan a conversion toocarefully.


Section SubsectionsPage45 00 00 01Section 45: <strong>1130</strong> COMPUTING SYSTEMCONTENTSIntroduction 45. 01. 00The 1131 CPU 45. 05. 00Console Printer and Keyboard 45. 05.10<strong>Data</strong> Switches 45.05.20Console Display Lamps 45. 05.30Disk Storage 45.10. 00Printers 45.15. 00Card Readers and Punches 45.20.00Paper Tape Readers and Punches 45. 25. 00Plotter 45. 30. 00Graphic Display 45. 35. 00Optical Readers 45.40.00Storage Access Channel 45.45.00Teleprocessing 45. 50. 00The <strong>1130</strong> Configurator 45. 55. 00


Section SubsectionsPage45 01 00 01INTRODUCTIONThe <strong>IBM</strong> <strong>1130</strong> <strong>Computing</strong> System is a flexible,modular, and modern data processing system. Incapability, it can range from a small paper-tapeorientedsystem to a large, multiple-disk system,with a powerful complement of input/output devices.This section describes <strong>the</strong> system components ingeneral terms, stressing <strong>the</strong>ir potential use, <strong>the</strong>various possible combinations of units, and <strong>the</strong>ircorresponding throughput capabilities. For moredetail see <strong>IBM</strong> <strong>1130</strong> Functional Characteristics(A26-5881) and <strong>IBM</strong> <strong>1130</strong> Input/Output Units(A26-5890).


Section Subsections Page45 05 00 011131 CENTRAL PROCESSING UNITThe 1131 CPU is available with three options:• With or without disk storage• 3.6- or 2.2-microsecond core storage accesstime• 4096, 8192, 16,384, or 32,768 words (16 bits)of core storageAlthough this yields 16 possible combinations, only9 are currently available, as shown in Figure 45.1.<strong>All</strong> 1131 CPUs, regardless of model, have asstandard components:• A console printer• A console keyboard• 16 data switchesCoreStorageCapacityWithoutDiskStorage3.6Microsecond3.6MicrosecondWith Disk Storage2.2Microsecond4K 8K 4K 8K 16K 32K 8K 16K 32KModelDesignationA11B 2A 28 2C 20 38 3C 3DFigure 45. 1. Available 1131 <strong>Processing</strong> Unit Configur ations• Console display lamps The first four components are described below in• <strong>Processing</strong> functions (index registers, in- more detail, since <strong>the</strong>y may be directly used bydirect addressing, multiply/divide, etc. ) <strong>the</strong> programmer.


Section SubsectionsPage45 05 10 01Console Printer and KeyboardThe console printer is a modified SELECTRIC ®typewriter printer and can provide output at 15.5characters per second. If it is <strong>the</strong> primary (only)printing device on <strong>the</strong> <strong>1130</strong>, it must be used for allprinted output; however, if <strong>the</strong> system includes an1132 or 1403 Printer, <strong>the</strong> console printer will normallybe used only for error messages, operatorinstructions, etc.The console keyboard resembles a standardtypewriter keyboard and allows <strong>the</strong> <strong>1130</strong> operator toenter data into <strong>the</strong> system.Because it is a manually oriented device, <strong>the</strong> useof <strong>the</strong> keyboard will usually be limited to smallquantities of data (today's date, starting check number,etc.), with <strong>the</strong> card or paper tape readers usedfor more voluminous data.


Section Subsections Page45 05 20 01<strong>Data</strong> SwitchesMounted on <strong>the</strong> front face of <strong>the</strong> console printer isa row of 16 toggle switches, called data switches.They may be used by <strong>the</strong> programmer for <strong>the</strong> entryof yes-or-no type information into <strong>the</strong> system. Forexample, one payroll program might handle bothfactory workers and office workers, with each groupprocessed separately. The program could bewritten to read, say, data switch 6, treating <strong>the</strong> inputtime cards as factory workers if that switch ison, and as office workers if it is off.O<strong>the</strong>r uses of <strong>the</strong> console switches are to bypasscertain portions of a program, activate <strong>the</strong>FORTRAN TRACE, etc.


Section SubsectionsPage45 05 30 01Console Display LampsAbove <strong>the</strong> console printer is a panel containing alarge number of indicator lamps (or lights). Theselights indicate <strong>the</strong> internal status of <strong>the</strong> <strong>1130</strong> CornputingSystem. While most are of little use to <strong>the</strong>average programmer, he does have access to oneset of lamps: <strong>the</strong> accumulator.The accumulator is displayed as a series of 16numbers, in four groups of four, which are ei<strong>the</strong>rilluminated (backlighted) or not. For example, suppose<strong>the</strong> accumulator indicates <strong>the</strong> status shown below,where <strong>the</strong> underlined numerals are lit:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15Since <strong>the</strong> accumulator displays a binary number,this example means that it contains 0100 1000 10001001, or 18569 in decimal. An easier way to represent<strong>the</strong> number is to use <strong>the</strong> hexadecimal notation,where each group of four "bits" is taken as a hexadecimalnumber, obtaining 4889. (For fur<strong>the</strong>r detailon number systems, see Appendix A of A26-5881.)The programmer can use <strong>the</strong> accumulatordisplay feature by appending a four-digit number(from 0001 to 9999) to <strong>the</strong> FORTRAN PAUSE orSTOP statements. If <strong>the</strong> programmer inserts aPAUSE 3322 statement in his program, <strong>the</strong> CPU willpause and display 3322 in <strong>the</strong> accumulator (as ahexadecimal number) when it executes <strong>the</strong> PAUSEstatement:0 1 2 3 4 5 6 7 8 9 io 11 12 13 14 15If <strong>the</strong> program contains many PAUSEs, each maybe given a different number, and <strong>the</strong> operator candetermine which PAUSE caused <strong>the</strong> CPU to halt itsoperations.This facility is useful for indicating error conditions,tracing progress through a program, etc.<strong>IBM</strong> 1131 Central <strong>Processing</strong> Unit with disk drive


Section Subsections Page45 10 00 01DISK STORAGEModels 2 and 3 of <strong>the</strong> 1131 CPU contain a disk storagedrive as an integral part of <strong>the</strong> console unit. Inaddition, <strong>the</strong>se models may contain up to four additionaldisk drives, mounted in separate enclosures(<strong>the</strong> <strong>IBM</strong> 2310 Disk Storage).Each disk drive will hold one <strong>IBM</strong> 2315 DiskCartridge. Because <strong>the</strong> cartridges are removable,<strong>the</strong> user may have an unlimited amount of data on<strong>the</strong>m; only one, however, may be mounted in a diskdrive at any one time.The 2315 cartridge consists of a single metalplate, coated on both sides with magnetic materialand enclosed in a plastic container. When mountedin an activated disk drive, <strong>the</strong> metal plate is driventhrough a clutch mechanism at 1500 revolutions perminute. The recording plate never leaves its container,as it does in <strong>the</strong> case of some o<strong>the</strong>r diskdevices.Each cartridge is divided into 200 cylinders, inconcentric circles, with each cylinder fur<strong>the</strong>r dividedinto eight sectors — four on <strong>the</strong> top surfaceand four on <strong>the</strong> bottom. Since each of <strong>the</strong> 1600sectors contains 320 words, each disk cartridge canhold 512, 000 words.<strong>Data</strong> is read or written on <strong>the</strong> disk by two readwriteheads attached to a movable arm. One settingof <strong>the</strong> arm gives <strong>the</strong> <strong>1130</strong> access to one cylinder, oreight sectors. One head reads (or writes) <strong>the</strong> topfour sectors; <strong>the</strong> o<strong>the</strong>r, <strong>the</strong> bottom four sectors.The two heads cannot move independently, since <strong>the</strong>yare fixed to <strong>the</strong> same arm.Because one setting of <strong>the</strong> arm gives access toonly one cylinder, <strong>the</strong> arm must be moved in orderto read or write on a different cylinder. For example,to read from cylinder 10 and <strong>the</strong>n write oncylinder 15, <strong>the</strong> arm must move, or "seek", fromcylinder 10 to cylinder 15. Since <strong>the</strong> arm moves insteps of one or two cylinders, this would require two2-cylinder moves (from 10 to 12, and from 12 to14) and one 1-cylinder move (from 14 to 15).Each move, whe<strong>the</strong>r one or two cylinders inlength, takes 15 milliseconds (0.015 seconds). Afive-cylinder "seek", as shown above, would take45 milliseconds (15+15+15). A six-cylinder seekwould take <strong>the</strong> same length of time.Because this can be a relatively lengthy operation(compared with o<strong>the</strong>r <strong>1130</strong> functions), youshould attempt to minimize <strong>the</strong> need for disk armmovement. Many hints on how to do this are givenlater in <strong>the</strong> manual (Sections 55, 60, 65, 70, 80,85, and 90).Having reached <strong>the</strong> desired cylinder, <strong>the</strong> armtakes ano<strong>the</strong>r 25 milliseconds to stabilize. After<strong>the</strong> stabilizationperiod, data may be read or written;because <strong>the</strong> disk is rotating, however, it will bequite unusual for <strong>the</strong> desired sector to be passingunder <strong>the</strong> read/write head at <strong>the</strong> precise time youwant it. You will have to wait an average of half arevolution (20 milliseconds) for <strong>the</strong> sector to reach<strong>the</strong> heads, and <strong>the</strong>n 10 more milliseconds for it toactually be read or written.Figure 45.2 gives some examples of how long ittakes to move n cylinders, <strong>the</strong>n read one sector.Move ThisMany CylindersSeekTimeStabilizationTimeAverageRotationalDelay TimeReador WriteTotalNone 0 0 20 10 301 or 2 15 25 20 10 703 or 4 30 25 20 10 855 or 6 45 25 20 10 100199 or 200 1500 25 20 10 1555(maximum)Figure 45.2.


-oo coND coco


Section Subsections Page45 15 00 01PRINTERSIn addition to <strong>the</strong> console printer, which is standard,<strong>the</strong> <strong>1130</strong> system can be configurated with four combinationsof line printers:No line printerAn <strong>IBM</strong> 1132 PrinterAn <strong>IBM</strong> 1403 PrinterBoth an 1132 and 1403 PrinterThe 1132 and <strong>the</strong> 1403 Printers have many mechanicaldifferences, but <strong>the</strong> primary difference isin printing speed. Both print a line at a time, 120characters wide; both have a carriage control tapethat controls <strong>the</strong> vertical movement of forms.The 1132 has a rated speed of 110 lines per minutewhen printing purely numeric and 80 lines perminute when printing alphameric information.The 1403 prints both numeric and alphamericinformation at <strong>the</strong> same speed; 340 lines per minute(maximum) in <strong>the</strong> case of <strong>the</strong> 1403 Model 6, 600lines per minute (maximum) for <strong>the</strong> Model 7.<strong>IBM</strong> 1132 Printer


Section Subsections Page45 15 00 02<strong>IBM</strong> 1403 Printer


Section Subsections Page45 20 00 01CARD READERS AND PUNCHESFive card readers and/or punches are available forattachment to <strong>the</strong> <strong>1130</strong> system.The <strong>IBM</strong> 1142 Card Read Punch, Model 6, readsand punches cards, with all input from a singlehopper. It reads at a rated speed of 300 cards perminute, and punches at 80 card columns per second.The <strong>IBM</strong> 1442 Card Read Punch, Model 7, issimilar to <strong>the</strong> Model 6, but faster, reading at 400cards per minute and punching at 160 columns persecond.The <strong>IBM</strong> 1442 Card Punch, Model 5, cannot readcards; it can only punch. Its punching speed is 160columns per second.The <strong>IBM</strong> 2501 Card Reader, Model Al, will readcards at a rated maximum speed of 600 per minute.It is not able to punch cards.The <strong>IBM</strong> 2501 Card Reader, Model A2, is similarto <strong>the</strong> Al, but operates at 1000 cards per minute(maximum).Disregarding speeds for <strong>the</strong> moment, <strong>the</strong>re arefour combinations of card readers and/or punchesfor <strong>the</strong> <strong>1130</strong>:1. No card readers or card punches2. An <strong>IBM</strong> 1442 Card Read Punch3. An <strong>IBM</strong> 2501 Card Reader and <strong>the</strong> <strong>IBM</strong> 1442Card Punch, Model 54. An <strong>IBM</strong> 2501 Card Reader and an <strong>IBM</strong> 1442Card Read PunchAside from speed, <strong>the</strong> main difference betweencombinations is capability — <strong>the</strong> number of cardpaths available.Configuration 2 (1442 Model 6 or 7) gives <strong>the</strong>user only one card path. This means that cards tobe read and cards to be punched must both be placedin <strong>the</strong> same input hopper in <strong>the</strong> proper order.Configuration 3 (2501 and 1442 Model 5) has separatepaths for reading and punching, which simplifiesprogramming and operating in certain types ofapplications.Configuration 4 (2501 and 1442 Model 6 or 7) alsohas two card paths, differing from configuration 3in that one path can both read and punch. In certainapplications this can be very useful. For example,you could put a master card deck in onereader and a detail deck in <strong>the</strong> o<strong>the</strong>r reader, eliminating<strong>the</strong> need to collate (merge) <strong>the</strong> two toge<strong>the</strong>r.<strong>IBM</strong> 1442 Card Read Punch


Section SubsectionsPage45 20 00 02<strong>IBM</strong> 2501 Card Reader


Section Subsections Page45 25 00 01PAPER TAPE READERS AND PUNCHESThe 1134 reads punched tape at 60 characters persecond; <strong>the</strong> 1055 punches tape at 15 characters perThe <strong>1130</strong> system may include <strong>the</strong> <strong>IBM</strong> 1134 Paper second.Tape Reader and/or <strong>the</strong> <strong>IBM</strong> 1055 Paper TapePunch.<strong>IBM</strong> 1055 Paper Tape Punch<strong>IBM</strong> 1134 Paper Tape Reader


Section SubsectionsPage45 30 00 01PLOTTERFor hard-copy graphic output, <strong>the</strong> <strong>IBM</strong> 1627 Plottermay be attached to <strong>the</strong> <strong>1130</strong> system. Bar charts,flowcharts, organization charts, engineering drawings,and maps, in addition to graphs or drawingsthat depict financial, scientific, or technical data,can be plotted on <strong>the</strong> 1627 Plotter.Two models are available:Model 1Plotting area: 11 inches by 120 feetStep size: 1/100-inch incrementsSpeed: 300 steps per secondModel 2Plotting area: 29-1/2 inches by 120 feetStep size: 1/100-inch incrementsSpeed: 200 steps per secondThe 1627 can plot curves, straight lines, alphamericheadings, etc. , by a series of steps in whichei<strong>the</strong>r <strong>the</strong> pen, <strong>the</strong> drum, or both, move in1/100-inch increments.<strong>IBM</strong> 1627 Plotter


Section Subsections Page45 35 00 01GRAPHIC DISPLAYA second means of graphic display may be obtainedby attachment of <strong>the</strong> <strong>IBM</strong> 2250 to <strong>the</strong> <strong>1130</strong> system.The 2250 is an electronic (cathode ray tube) device,and <strong>the</strong>refore capable of faster speeds than <strong>the</strong>1627 Plotter, a mechanical device. A "light pen"enables <strong>the</strong> operator to communicate with <strong>the</strong>system by interacting with <strong>the</strong> display on <strong>the</strong> faceof <strong>the</strong> tube.<strong>IBM</strong> 2250 Display Unit


Section SubsectionsPage45 40 00 01OPTICAL READERSThe <strong>IBM</strong> 1231 Optical Mark Page Reader readspositional marks made by an ordinary lead pencilon paper documents, such as test scoring sheets,etc. The data contained on <strong>the</strong>se documents can beread into <strong>the</strong> <strong>1130</strong> system at a rate of 2000 sheetsper hour.The 1231 is especially suited for applicationssuch as examination grading, surveys, order entry,etc. , where variable information may be entered byhand on preprinted forms.<strong>IBM</strong> 1231 Optical Mark Page Reader


Section Subsections Page45 45 00 01STORAGE ACCESS CHANNELThe storage access channel provides an input/output"path" that allows nonstandard components to beadded to <strong>the</strong> <strong>1130</strong> system. These components may be<strong>IBM</strong> - supplied, or user-supplied. Since <strong>the</strong>SAC is merely a general purpose input/outputchannel, control of <strong>the</strong> nonstandard componentmust be handled by user-supplied hardware and/orprogramming.


Section SubsectionsPage45 50 00 01TELEPROCESSINGBy means of <strong>the</strong> Synchronous CommunicationsAdapter (SCA), <strong>the</strong> <strong>1130</strong> may communicate, overtelephone lines, with ano<strong>the</strong>r <strong>1130</strong>, an <strong>IBM</strong>System/360, and/or o<strong>the</strong>r devices.


Section Subsections Page45 55 00 01THE <strong>1130</strong> CONFIGURATORThe accompanying schematic is a copy of <strong>the</strong> <strong>1130</strong>Configurator (A26-5915).<strong>1130</strong> Configurator1442 Card PunchModel 5160 Col/Sec(feoture '3630Required)1442 Card ReadPunch Model 6300 cpm80 Col/Sec1442 Card ReadPunch Model 7400 cprn160 Col/Sec'SynchronousCommunicationsAdapter "7690600-2400 Bits/Sec1442 Card PunchAttachment044491442 Cord ReadPunchAttachment04454'SynchronousTransmit Receive orBinary SynchronousCommunication1131 CENTRAL PROCESSING UNITModel 2) A = 4k, B Bk, C = lok, D 32k3.6 Microsecond Core Storage(Includes Single Disk Storage Drive)Model 3) 8 = Bk, C = 16k, D = 32k2.2 Microsecond Core Storoge(Includes Single Disk Storoge Drive)Standard Features.Console Printer and Keyboard3 Index RegistersIndirect AddressingMultiply/DivideStorage Word e 16 Bits + 2 Pority Bitsr'I 1403 Model 7 .17-11,I Attachment 1"4425Storage Access IChannel 11 i"I 07492 t'11) O(A 310;004Mteol (31 or 62)61 =


Section SubsectionsPage50 00 00 01Section 50: <strong>1130</strong> DISK MONITOR SYSTEMCONTENTSGENERAL 50. 01. 00


Section SubsectionsPage50 01 00 01GENERALThis section consists of a general discussion of<strong>the</strong> <strong>1130</strong> Disk Monitor System and serves to introduce<strong>the</strong> next three sections:• Job Management - - how <strong>the</strong> Monitor helpsyou achieve smooth, orderly, automatic transitionfrom each job to <strong>the</strong> next.• Disk Management - - how <strong>the</strong> Monitor helpsyou manage <strong>the</strong> disk and use it efficiently.• Core Storage Management - - how <strong>the</strong> Monitorallows you to make <strong>the</strong> most effective use of <strong>the</strong>available core storage.If your <strong>1130</strong> does not have disk capability, youcannot use <strong>the</strong> Monitor, and you may skip over thisand <strong>the</strong> succeeding three sections.The <strong>1130</strong> Disk Monitor System is a disk-orientedoperating system that allows <strong>the</strong> user to assemble,compile, and/or execute individual programs orgroups of programs with a minimum of operatorintervention. Jobs to be performed are stackedand separated by control records that identify <strong>the</strong>operation to be performed.The Monitor System consists of five distinct butinterdependent programs (see Figure 50.1):Supervisor ProgramDisk Utility ProgramAssembler ProgramFORTRAN CompilerSubroutine LibraryThe supervisor program provides <strong>the</strong> necessarycontrol for <strong>the</strong> stacked-job concept. It reads andanalyzes <strong>the</strong> monitor control records, and transferscontrol to <strong>the</strong> proper program.- - - - - -<strong>1130</strong> DISK MONITOR SYSTEM — — — —<strong>1130</strong>FORTRANCompiler<strong>1130</strong>Assembler<strong>1130</strong>SupervisorProgramFigure 50.1. <strong>1130</strong> Disk Monitor System<strong>1130</strong>Disk UtilityProgram<strong>1130</strong>SubroutineLibraryThe Disk Utility Program is a group of routinesdesigned to assist <strong>the</strong> user in storing information(data and programs) on <strong>the</strong> disk, and in retrievingand using <strong>the</strong> information stored.The Assembler program converts user-writtensymbolic-language source programs into machinelanguageobject programs.The FORTRAN compiler converts user-writtenFORTRAN-language source programs into machinelanguageobject programs.The Subroutine Library contains subroutines fordata input/output, data conversion, and arithmeticfunctions.The Monitor System coordinates program operationsby establishing a communications area in corestorage that is used by <strong>the</strong> various programs makingup <strong>the</strong> Monitor System. It also guides <strong>the</strong> transferof control between <strong>the</strong> various monitor programsand <strong>the</strong> user's programs. Operation is continuousand setup time is minimized, <strong>the</strong>reby effectingsubstantial time saving and allowing greaterprogramming flexibility. The complete MonitorSystem resides on disk storage, but only thoseroutines or programs required at any one time aretransferred to core storage for execution. Thisfeature minimizes <strong>the</strong> core storage requirementsand permits segmenting of long programs.In addition to providing you with an efficient jobto-jobtransition system, <strong>the</strong> <strong>1130</strong> Disk MonitorSystem significantly reduces <strong>the</strong> amount of programmingyou must do. This is made possiblethrough <strong>the</strong> sharing of common subroutines by unrelatedprograms. For example, input/output orconversion operations are required by most userprograms, whe<strong>the</strong>r <strong>the</strong> programs are written in <strong>the</strong>Assembler Language or in FORTRAN. <strong>IBM</strong> providesa library of subroutines to handle such operationsas an integral part of <strong>the</strong> Monitor System.The Disk Utility Program (DUP) facilitatesdevelopment of a library of user programs. Programscan be stored on cards or paper tape, as iscustomary in installations without disk storage.With disk storage, programs can also be storeddirectly on <strong>the</strong> disk. The disk-stored programsand data are referred to by name when called foruse. The Monitor System, through <strong>the</strong> use of atable known as <strong>the</strong> Location Equivalence Table(LET), can locate any user program, subroutine,or file by a table search for <strong>the</strong> name. Stored with<strong>the</strong> name is <strong>the</strong> amount of disk storage requiredby <strong>the</strong> program or data.Any program that is added to <strong>the</strong> user's diskstoredprograms is usually placed at <strong>the</strong> end of


Section Subsections Page50 01 00 02<strong>the</strong> o<strong>the</strong>r programs. If a program is deleted, <strong>the</strong>remaining program(s) are moved up on <strong>the</strong> diskin order to utilize disk storage effectively.Detailed descriptions of <strong>the</strong> <strong>1130</strong> Monitor Systemand its components may be found in <strong>the</strong> SystemsReference Library (SRL). For Version 1 see<strong>IBM</strong> <strong>1130</strong> Disk Monitor System (C26-3756). ForVersion 2 see <strong>IBM</strong> <strong>1130</strong> Disk Monitor System,Version 2, Programming and Operator's Guide(C26-3717).


Section Subsections Page55 00 00 01Section 55: THE MONITOR-JOB MANAGEMENTCONTENTSIntroduction 55.01.00 Stacked Jobs or <strong>the</strong> Input Stream 55.20.00Job and Subjob 55.10.00 Disk Cartridge ID Checking 55.30.00


Section SubsectionsPage55 01 00 01INTRODUCTIONThe first function of <strong>the</strong> <strong>1130</strong> Disk Monitor Systemis Job Management -- helping you, <strong>the</strong> user,achieve a smooth, orderly transition from one jobto <strong>the</strong> next. The Monitor is designed to accept acontinuous stream of input, in <strong>the</strong> form of jobs andsubjobs.


Section Subsections Page55 10 00 01JOB AND SUBJOBA job is defined as:• A JOB card and all <strong>the</strong> following control records,source programs, object programs, and data,up to, but not including, <strong>the</strong> next JOB card.• The processing that takes place from <strong>the</strong> detectionof one JOB card (or paper tape record) until<strong>the</strong> detection of ano<strong>the</strong>r JOB card.A subjob is defined as:• A monitor control record and all <strong>the</strong> followingcontrol records, source programs, object programs,and data, up to, but not including, <strong>the</strong> next monitorcontrol record.• The processing that takes place from <strong>the</strong> detectionof one monitor control record (such as DUPcard, FOR card, etc.) to <strong>the</strong> detection of ano<strong>the</strong>rmonitor control record.A job is an independent unit of processing; asubjob is a unit of processing that is dependent on<strong>the</strong> subjob(s) preceding and/or following it. Thesuccessful completion of <strong>the</strong> job depends on <strong>the</strong>successful completion of each subjob within it. Insome cases, a subjob is not attempted if <strong>the</strong> precedingsubjobs have not been successfully completed.The JOB control record defines <strong>the</strong> start of a newjob. It causes <strong>the</strong> Supervisor to perform <strong>the</strong> jobinitialization procedure, which includes:1. Initialization of constants, parameters, etc.2. Setting of <strong>the</strong> temporary indicator if a T ispresent in column 8 of <strong>the</strong> control record. If set,all programs or data files stored in <strong>the</strong> User Areaby DUP during <strong>the</strong> current job will be deleted automaticallyat <strong>the</strong> end of <strong>the</strong> job (that is, at <strong>the</strong> beginningof <strong>the</strong> next job).3. The identification of <strong>the</strong> cartridge(s) to beused during <strong>the</strong> current job.4. The definition of <strong>the</strong> cartridge on which <strong>the</strong>Core Image Buffer for <strong>the</strong> current job is to befound. Core image programs can be built faster if<strong>the</strong> CIB is assigned to a cartridge o<strong>the</strong>r than <strong>the</strong>systems cartridge. (This applies only to systemswith two or more disk drives.)5. The definition of <strong>the</strong> cartridge whose WorkingStorage is to be used by <strong>the</strong> Monitor system. (Thisapplies only to systems with two or more diskdrives.) Although all cartridges contain a WorkingStorage area, only one will be used by <strong>the</strong> Monitor(for its own purposes). Core image programs canbe built faster if <strong>the</strong> system Working Storage is onsome cartridge o<strong>the</strong>r than <strong>the</strong> systems cartridge.They can be built even faster if <strong>the</strong> CIB, <strong>the</strong> systemWorking Storage, and <strong>the</strong> monitor system itself areon separate cartridges. Assemblies are also fasterif Working Storage is on a separate cartridge.6. The starting of a new page. A skip to channel1 is executed on <strong>the</strong> 1132 Printer or 1403 Printer;ten consecutive carriage returns are made on <strong>the</strong>console printer.


Section SubsectionsPage55 20 00 0 1STACKED JOBS OR THE INPUT STREAM JOB 3Figure 55.1 shows a schematic view of a stack ofthree jobs:JOB 1• Translate an Assembler Language source programinto an object program (subjob 1)• Store <strong>the</strong> assembled object program (subjob 2)• Execute <strong>the</strong> program (subjob 3)JOB 2• Store a program that had earlier been dumpedonto cards (subjob 1)• Compile a FORTRAN program (subjob 1)• Execute it (subjob 2)Here, <strong>the</strong> reason for <strong>the</strong> job/subjob concept canbe seen clearly. If <strong>the</strong>re were an error in subjob 1of job 1, <strong>the</strong> assembly, you would not want to continuewith <strong>the</strong> next two subjobs. The results wouldbe meaningless.If those first three items had been made jobsra<strong>the</strong>r than subjobs, <strong>the</strong> Monitor would have tried toperform <strong>the</strong> second two tasks even though <strong>the</strong> firsthad failed. However, because <strong>the</strong>y are all subjobs,an error condition encountered in any one subjobwould cause <strong>the</strong> Monitor to abandon <strong>the</strong> remainingsubjobs.


Section Subsections Page55 20 00 02(// JOB(// XEQ C( *STORE C( 17 DUP--eSource Program CFORTRAN Control Records(// FOR(// PAUS JOB C(// *comments(// JOBObject Program B• STORE B(// DUP(// PAUS(// *comments JOB B// JOB(// XEQ A( *STORE ADUPSource Program AAssembler Control Records(// ASM JOB A(// PAUS(// *comments// JOB/ Cold Start Card(see Cold StartOperating Procedure)Figure 55.1. Stacked job input


Section SubsectionsPage55 30 00 01DISK CARTRIDGE ID CHECKINGA second assist given you by <strong>the</strong> Monitor system is<strong>the</strong> checking of disk cartridge ID numbers. Everycartridge must have an ID number; if you so desire,you can request that <strong>the</strong> Monitor check each cartridgefor a certain ID and alert you if <strong>the</strong> desiredcartridges are not mounted.For example, suppose you have placed a payrolldata file on a particular cartridge, and have identifiedit as cartridge 6066. If you punch 6066 in columns11 through 14 of <strong>the</strong> JOB card, <strong>the</strong> Monitorwill read <strong>the</strong> cartridge ID from <strong>the</strong> disk on logicaldrive 0, and, if it is not 6066, you will be so informedwith a message.If you don't care which cartridge is mounted (or,more likely, if you will check it yourself), thosecolumns on <strong>the</strong> JOB card may be left blank.


Section SubsectionsPage60 00 00 01Section 60: THE MONITOR-DISK MANAGEMENTCONTENTSIntroduction 60. 01. 00Disk Storage Layout 60. 10. 00Introduction 60.10. 01Cylinder 0 60.10.10<strong>IBM</strong> Systems Area 60. 10. 20Working Storage (WS) 60.10.30User Area (UA) 60.10.40Fixed Area (FX) 60.10. 50Summary 60.10.60Increasing <strong>the</strong> Amount of SpaceAvailable to <strong>the</strong> User 60. 20. 00Introduction 60.20.01How Much Room Do I Have? 60.20.10How Can I Make More SpaceAvailable? 60.20.20Cylinder 0<strong>IBM</strong> System's AreaFixed AreaUser Area/Working StorageI/O Subroutines for Devices Not onYour SystemComputational Subroutines You AreUnlikely to UseSeldom-Used Programs and/or<strong>Data</strong>Unneeded User-Written Programsand <strong>Data</strong>Summary 60.20.30The Disk Utility Program 60. 30. 00Introduction 60. 30. 01Format of Material on <strong>the</strong> Disk 60. 30. 10<strong>Data</strong> FilesPrograms and SubprogramsThe Most Commonly Used DUPFunctions 60. 30. 20Store a Program or Subprogramin DSF FormatStore a Program in DCI (CoreImage) FormatConvert a DSF Program to DCIDelete a Program or SubprogramDump a DSF Program or Subprogramand Reload ItDump a DCI (Core Image) Programand Reload ItDump a <strong>Data</strong> File and Reload ItCopy a <strong>Data</strong> File onto Ano<strong>the</strong>r Areaon Same DiskDefining and Modifying <strong>the</strong> FixedAreaSpecial Options -- Multiple Disk<strong>1130</strong> Users 60. 30. 30Copy a <strong>Data</strong> File onto Ano<strong>the</strong>r DiskCopy a Program onto Ano<strong>the</strong>r DiskCopy an Entire Disk onto Ano<strong>the</strong>rDisk


Section SubsectionsPage60 01 00 01TRODUC TIONRemember, effective management can make orbreaka good installation. This also applies to <strong>the</strong> diskportion of your <strong>1130</strong>. Because <strong>the</strong> disk is such anintegral part of your system, it is extremely importantthat you have <strong>the</strong> knowledge and ability tomanage it effectively. This discussion of <strong>the</strong> disk,its layout, and how <strong>the</strong> Monitor helps you use it,will give you a good start toward effective diskmanagement.Effective use of your disk cartridges requires acertain amount of planning, especially if <strong>the</strong> numberof applications on your <strong>1130</strong> is high, or is expectedto grow. Some control must be exercised over whatgets stored on a disk, and which disk cartridge is tobe used for a particular job.Each installation requires a certain minimumnumber of disk cartridges:• At least one general purpose systems cartridge,with a complete Monitor system (FORTRANand Assembler). It should only be used for testing,one-time applications, and o<strong>the</strong>r odd jobs.• On multiple disk drive systems, at least oneworking or scratch disk for each disk drive overand above <strong>the</strong> first.• One disk cartridge to be used for ordering andreceiving programs from <strong>IBM</strong>. Some packages arenot available in card form and can be obtained onlyby forwarding a cartridge to <strong>the</strong> Program InformationDepartment. PID will place <strong>the</strong> package onyour cartridge and return it to you.• One disk cartridge (as required) for each of<strong>the</strong> major <strong>IBM</strong> applications programs to be used.For example, STRESS, COGO, LP-MOSS, ando<strong>the</strong>rs each require all or most of a disk cartridge.• One disk cartridge for each major applicationarea, such as payroll, accounts payable, plantscheduling, highway design, etc. In some cases,two applications must share a disk because <strong>the</strong>yboth use <strong>the</strong> same data file, but such dual useshould be avoided whenever possible.Mixing of different applications on <strong>the</strong> same diskmay lead to several complications, especially ifdifferent programmers are involved. For example:1. Duplicate program and data file names mayoccur, with resulting confusion.2. One program may inadvertently write into <strong>the</strong>disk data area of ano<strong>the</strong>r program.3. The amount of Working Storage is decreasedmore rapidly as each application area adds programs,subprograms, etc.4. Run times may increase as data files arepushed fur<strong>the</strong>r apart by <strong>the</strong> continuous storing anddeleting of programs, data files, etc.5. Overall control is diminished.Before discussing disk storage management,several terms must be defined:Systems cartridge -- a cartridge that contains<strong>the</strong> <strong>1130</strong> Disk Monitor system. If your <strong>1130</strong> hasonly one disk drive, all your cartridges must besystems cartridges.Non-systems cartridge -- a cartridge that doesnot contain <strong>the</strong> monitor system. As impliedabove, such a cartridge would be of use only ininstallations with two or more disk drives.Master cartridge -- a systems cartridge that hasbeen referenced by <strong>the</strong> cold start procedure, orby a Job card. The Monitor system on that cartridgewill be <strong>the</strong> one in use until ano<strong>the</strong>r coldstart is initiated, or until a Job card is encounteredthat switches control to a different cartridge.Obviously, on a one-drive <strong>1130</strong> system,<strong>the</strong> one and only disk cartridge will be both asystems disk and <strong>the</strong> master disk.Satellite cartridge -- any cartridge which is not<strong>the</strong> master cartridge. It may be ei<strong>the</strong>r a systemsor non-systems cartridge.You see, <strong>the</strong>n, that <strong>the</strong>re is a definite distinctionbetween <strong>the</strong>se terms. A disk cartridge is ei<strong>the</strong>r asystems or non-systems disk, depending on whe<strong>the</strong>ryou have loaded <strong>the</strong> Monitor system onto it. On <strong>the</strong>o<strong>the</strong>r hand, <strong>the</strong> master/satellite split does notoccur until <strong>the</strong> cartridges are placed in <strong>the</strong> drives,made ready, and a cold start performed. Then, onebecomes <strong>the</strong> master, and <strong>the</strong> o<strong>the</strong>rs, if any, becomesatellites.The terminology of <strong>the</strong> disk drives <strong>the</strong>mselvesinvolves ano<strong>the</strong>r distinction -- that of physicaldrives versus logical drives. Single-drive <strong>1130</strong>users need not concern <strong>the</strong>mselves with this; <strong>the</strong>irone disk drive is physical drive 0 and logical drive0 -- <strong>the</strong>re are no options.• Each disk drive on <strong>the</strong> <strong>1130</strong> has a physicaldrive number; drive 0 is <strong>the</strong> one contained in <strong>the</strong>mainframe of <strong>the</strong> <strong>1130</strong>; drives 1 through 4 are containedin <strong>the</strong> 2310 enclosure, a separate unit. Thesenumbers are fixed and cannot be changed.• Each disk drive present on <strong>the</strong> <strong>1130</strong> may alsobe given a logical drive number, which may or maynot agree with its physical number. The only


Section Subsections Page60 01 00 02restraint is that a two-drive system may only havephysical and logical numbers 0 and 1; a four-drivesystem, 0, 1, 2, and 3; etc.You assign logical drive numbers when youprepare a Job card. The Job card may contain aseries of five four-digit numbers, representing <strong>the</strong>ID numbers of each cartridge (each cartridge mustbe given a four-digit ID when it is initialized). Thefirst of <strong>the</strong> five ID's (cc 11-14) informs <strong>the</strong> Monitorthat logical drive 0 is to be <strong>the</strong> drive containing<strong>the</strong> cartridge with that ID. For example, if thisfield contained 1234, <strong>the</strong> drive in which cartridge1234 is mounted becomes logical drive 0. Thatcartridge may be physically located on any drive;its actual position does not matter.Cartridge 1234 would also become <strong>the</strong> mastercartridge, since <strong>the</strong> cartridge on logical drive 0will always be <strong>the</strong> master.For fur<strong>the</strong>r detail, see <strong>the</strong> Monitor referencemanual.


Section SubsectionsPage60 10 01 01DISK STORAGE LAYOUTIntroductionConceptually, disk storage can be divided into fivelogical areas:Cylinder 0- <strong>IBM</strong> Systems Area- User Area- Working Storage- Fixed AreaThe contents and use of <strong>the</strong>se areas are discussedin detail in <strong>the</strong> Monitor SRL manual, and in generalterms here.Note that <strong>the</strong>se areas are logical or symbolic,ra<strong>the</strong>r than physical areas. They are not necessarilyintact or contiguous. Some of <strong>the</strong> items in onelogical area may, in fact, be physically located betweentwo items in ano<strong>the</strong>r logical area.The term "logical", as it is used here, denotesa system organized for ease of understanding,ra<strong>the</strong>r than for accurate technical detail.


Section Subsections Page60 10 10 01Cylinder 0This area contains certain key information that ispresent on every disk cartridge. The exact contentsof this area differ, depending on whe<strong>the</strong>r <strong>the</strong> disk inquestion is a systems disk (in which case it contains<strong>the</strong> Monitor) or a non-systems disk; <strong>the</strong> area, however,is always present, and always occupies onecylinder, Cylinder 0.


Section SubsectionsPage60 10 20 01<strong>IBM</strong> Systems AreaThe <strong>IBM</strong> Systems Area is present on all disk cartridgesthat have been built as systems disks (that is,disk cartridges on which <strong>the</strong> Monitor system hasbeen loaded).This area consists of (1) a basic Monitor packageof 152 sectors, which must be present, (2) twooptional items, which may be removed:FORTRAN compiler (88 sectors)Assembler (32 sectors)and (3) <strong>the</strong> Core Image Buffer (16 sectors), whichmay be deleted from a satellite cartridge but mustbe present on <strong>the</strong> master cartridge.


Section Subsections Page60 10 30 01Working Storage (WS)Working Storage is used for temporary storage ofprograms and data. Since it is used for this purposeby both you and <strong>the</strong> Monitor, you should notleave material in WS if you wish to use it later. Ifyou wish to retain a program or data file, it shouldbe transferred with DUP to ei<strong>the</strong>r <strong>the</strong> User Area or<strong>the</strong> Fixed Area, and given a name.The size of WS is variable, since it consists ofwhatever space on <strong>the</strong> disk is not taken up by <strong>the</strong>o<strong>the</strong>r four areas.


Section SubsectionsPage60 10 40 01User Area (UA)As mentioned earlier, programs and data that youwant retained must be moved from WS to ei<strong>the</strong>r <strong>the</strong>User Area or <strong>the</strong> Fixed Area.The size of <strong>the</strong> UA is also variable, since itexpands and contracts as material is stored in it ordeleted from it.The process of transferring a program or datafile from WS to UA is done in a unique manner,made possible by <strong>the</strong> use of a "floating" boundarybetween <strong>the</strong> two areas. Because material placed inWS is at <strong>the</strong> "lower" end of WS which is adjacent to<strong>the</strong> "upper" end of UA, all that is necessary to transferit from WS to UA is to move <strong>the</strong> boundary. (SeeFigure 60.1.)The term "User Area" should not be taken tomean that only user-written programs will be found<strong>the</strong>re. Nearly <strong>the</strong> entire <strong>IBM</strong> subroutine library isplaced in <strong>the</strong> UA (occupying <strong>about</strong> 50 sectors), whereit may be called for use by o<strong>the</strong>r programs.The UA may contain:• <strong>Data</strong>, in disk data format (DDF)• Programs and subprograms, in disk systemformat (DSF)• Programs, in disk core image format (DCI)The major differences between <strong>the</strong>se three formatsare discussed in subsection 60.30.10.The Location Equivalence Table (LET) is a directoryof <strong>the</strong> contents of <strong>the</strong> User Area. It exists onUser AreaFloatingBoundaryWorking StorageBefore Unused /AfterPrograms and dataProgram or datapreviously stored to be storedFloatingBoundaryUser Area Working Storagenu;eaFigure 60.1. Transferring a program or data file from WS to UAevery disk cartridge -- systems and non-systems.Basically, it contains an entry for every program,,subprogram, and data file that has been placed in <strong>the</strong>UA. Each entry in <strong>the</strong> table contains <strong>the</strong> name,size, and o<strong>the</strong>r properties of that program or datafile.


Section Subsections Page60 10 50 01Fixed Area (FX)The Fixed Area, like <strong>the</strong> User Area, is a placewhere <strong>the</strong> user may store programs and/or datafiles. There are five major differences between<strong>the</strong> FX and <strong>the</strong> UA:1. There is no Fixed Area on a cartridge unlessyou specifically define one (see 60.30.20).2. You specify <strong>the</strong> size of <strong>the</strong> FX, whereas <strong>the</strong>UA expands and contracts as items are added to ordeleted from it.3. Like <strong>the</strong> UA, <strong>the</strong> FX may contain both programsand data, but <strong>the</strong> programs must be in diskcore image (DCI) format. They cannot be in disksystem format (DSF).4. Programs or data files stored in <strong>the</strong> FX maybe deleted, but <strong>the</strong> FX will not be repacked, as is<strong>the</strong> case with <strong>the</strong> UA. Once an item is stored somewherein <strong>the</strong> FX, it stays in <strong>the</strong> same location untilit is deleted.5. The directory of <strong>the</strong> FX is FLET, <strong>the</strong> FixedLocation Equivalence Table, ra<strong>the</strong>r than LET, whichis <strong>the</strong> directory to <strong>the</strong> UA.


Section SubsectionsPage60 10 60 0 1SummaryFigure 60.2 illustrates <strong>the</strong> five logical disk areasand shows <strong>the</strong> general properties of each.Logical Area Sub-Areas Present?Approximate Size, SectorsSystemsDiskNon-SystemsDiskCylinder 0 Always 8 8<strong>IBM</strong> SystemsAreaBasic Only on a systems disk 152 152Core Image Buffer Can be removed from Non-Sys. 16 16FORTRANCompilerMay be removed88 88Assembler May be removed 32 32Fixed AreaIF X/User AreaIUA)F LET Not unless defined by user 8 8Contents ofF XNot unless defined by userFixed by <strong>the</strong> user when hedefines a fixed areaLET Always 8 0 (LET is partof Cyl. 0)Contents ofUA• User data files• User programs• <strong>IBM</strong> subroutinelibraryAlways. As delivered, <strong>the</strong>UA contains <strong>the</strong> <strong>IBM</strong>Subroutine LibraryVaries as material is storedand deletedWorkingStorageOVS)Contents of WS Always Varies in size — WS iswhatever is left over.Every sector added to UAis subtracted from WS;every sector deleted fromUA is added to WS.Figure 60.2. The five logical areas of <strong>the</strong> disk


Section Subsections Page60 20 01 01INCREASING THE AMOUNT OF SPACE AVAILABLETO THE USERIntroductionAs Figure 60.2 shows, <strong>the</strong>re is ano<strong>the</strong>r way to lookat a disk cartridge. Simply stated, at any point intime, <strong>the</strong> disk can be split into two portions:• The portion now being used.• The portion not now being used and <strong>the</strong>reforeavailable to you.If you have a data file that you want to store on adisk, you can ask several pertinent questions:How much room do I need?How much room do I have?How can I make more room, if necessary?The first question is covered in Section 80; <strong>the</strong>o<strong>the</strong>r two are answered in 60.20.10 and 60.20.20,respectively.


Section SubsectionsPage60 20 10 01How Much Room Do I Have?It is quite easy to determine how much room isavailable on any particular disk cartridge; all youneed to do is to run <strong>the</strong> DUP *DUMPLET job. Thelast item on <strong>the</strong> printout will have <strong>the</strong> name 1DUMY(a dummy entry representing empty space), its sizein disk blocks (a disk block is 20 words, or 1/16 ofa sector), and its starting address (in disk blocks).This block of empty space is equivalent to WorkingStorage, <strong>the</strong> area where you may place additionalprograms and data files.Figure 60.3 shows <strong>the</strong> last page of a typicalDUMPLET printout. Note <strong>the</strong> last entry:1DUMY 49F3 1AODConvert <strong>the</strong> two hexidecimal numbers to decimal:49F3 becomes 189311AOD becomes 6669Divide by 16 (16 disk blocks per sector):18931/16 is 1183 3/166669/16 is 416 13/16The first number (1183 3/16) is <strong>the</strong> size in sectorsof Working Storage; <strong>the</strong> second (416 13/16) is <strong>the</strong>sector at which it begins. The fact that <strong>the</strong> two addup to 1600, <strong>the</strong> total number of sectors on a disk,confirms <strong>the</strong> accuracy of <strong>the</strong> arithmetic.PAGE 4LET=C I CN SFPAD =FPAD =CIBA =ULET =FLET1234 0141 01A1 0118 0128 0000SCTR NO. UA/FXA. WORDS AVAIL. CHAIN ADDR.0002 0130 009C 0000PRCG FOR DB DB PROG FOR DB DBNAME MAT CNT ADDR NAME MAT CNT ADDRPT FOL DSF 0009 170D ECHAR DSF 0005 18F6DMP80 DSF 0007 1716 ECHRX DSF 0025 18FBDMTDO DSF 001A 171D ECHR IDMTXOVCHR IDMPD1 DSF 001E 1737 EGRID DSF 0008 1920DMPX1 H0L48 DSF 0008 1928FL IPR DSF 0007 1755 HOLCA DSF 0006 1930SY SUP DSF 0036 175C HXCV DSF 0004 1936ADRWS DSF 0010 1792 PRNT2 DSF 001E 193ACOPY DSF 001C 17A2 SCAT' DSF 0041 1958DI SC DSF 0036 178E STRTB DSF 0006 1999DL CIB DSF 001E 17F4 EPLOT DSF 0005 199FDSLET DSF 0037 1812 ERULE DSF 000A 19A4I DENT DSF 000C 1849 EMOVEID DSF 001A 1855 EINCMOCIF DSF 0057 186F FCHAR DSF 0005 19AEPT UTL DSF 0009 18C6 FCHRX DSF 0025 1983C ALPR DSF 0007 18CF FCHR IFS LEN DSF 0008 1806 WCHRIF SYSU FGR ID DSF 0008 1908RDREC DSF 0015 18E1 FPLOT DSF 0004 19E0PROG FOR DB DBNAME MAT CNT ADDRFRULE DSF 0009 19E4FMOVEFINCPLOTI DSF 0003 19EDPLOTSPLOTX DSF 000A 19F0POINT DSF 0008 19FASCALE DSF 0002 1A02SCALF DSF 0002 1A04XYPLT DSF 0007 1406(TDUMY 49F3 1A172),zoPROCNAMEENC OF DUMPLET/FLETFigure 60.3.


Section Subsections Page60 20 20 01How Can I Make More Space Available?Using Figure 60.2 as your guide, take a look ateach of <strong>the</strong> five logical areas, with an eye towardremoving items you don't need:Cylinder 0Since Cylinder 0 is always present and necessary onevery disk cartridge, <strong>the</strong>re is nothing you can do toreduce its size.<strong>IBM</strong> Systems AreaEvery system disk cartridge, after initial loadingwith <strong>the</strong> Monitor, contains <strong>the</strong> Assembler andFORTRAN compiler, two programs of substantialsize. The Assembler occupies 32 sectors; <strong>the</strong>FORTRAN compiler occupies 88 sectors.If you rarely compile programs written in AssemblerLanguage, you will probably want to delete <strong>the</strong>Assembler from all disk cartridges except <strong>the</strong> oneused for odd jobs.Most <strong>1130</strong> users program in FORTRAN, but it isstill possible to eliminate this compiler from somedisk cartridges. Suppose you have a large inventoryfile that requires all <strong>the</strong> room you can get. Whykeep <strong>the</strong> FORTRAN compiler on that disk?During <strong>the</strong> test phase, when you are compilingmany FORTRAN programs, you certainly need <strong>the</strong>compiler; once <strong>the</strong> programs have been debugged,however, you can eliminate it and increase <strong>the</strong> sizeof your file by 88 sectors. If it becomes necessaryto change a program on a particular disk, you canrecompile <strong>the</strong> new version using a disk that doescontain <strong>the</strong> compiler, dump <strong>the</strong> new program oncards with <strong>the</strong> DUP, remove <strong>the</strong> FORTRAN disk,replace it with <strong>the</strong> inventory (no FORTRAN) disk,and load <strong>the</strong> new card program with DUP. Becausethis takes a few minutes, you will probably not wantto eliminate <strong>the</strong> FORTRAN compiler from any diskunless <strong>the</strong> space is needed.To delete <strong>the</strong>se two programs from a disk, youmust use <strong>the</strong> DUP *DEFINE function, as shownbelow3 4 5 11 12 13 14 15 16 IT 20 21 23 26 27 29 30 32 34 55 37 404 42 43/ / .7/ 0 E V 4 5 S ERand/or9 4 5 6 7 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 26 303 33 34 37 38 39 4041 4214344-43/ / OB/ / AE F / E V a FA N


Section SubsectionsPage60 20 20 02Fixed AreaBecause of <strong>the</strong> way in which <strong>the</strong> Fixed Area is handledby <strong>the</strong> Monitor, you should not define one unless youhave a specific purpose in mind for it. Rememberthat <strong>the</strong> size (and existence) of <strong>the</strong> Fixed Area isentirely up to you. If you define a 20-cylinder FixedArea and use only half of it, <strong>the</strong> o<strong>the</strong>r half is completelywasted; <strong>the</strong> empty space is not transferredto <strong>the</strong> UA or WS.To determine what is in <strong>the</strong> fixed area, you mayrun <strong>the</strong> DUP job:make <strong>the</strong> decision and do <strong>the</strong> deleting. The Monitorwill not check for <strong>the</strong> presence or absence of aplotter and delete those subprograms on its own.Although you do specify to <strong>the</strong> Monitor loader (with<strong>the</strong> REQ cards) which devices are on your system,<strong>the</strong> loader does not use this information to selectivelyload <strong>the</strong> subroutine library. <strong>All</strong> subroutines areloaded onto <strong>the</strong> disk, regardless of your <strong>1130</strong> configuration.Figure 60.4 illustrates what subroutines can bedeleted, and how many sectors can be gained. Thesubroutines noted can be deleted <strong>the</strong> same as anyo<strong>the</strong>r subroutine -- for example:1 2 5 4 5 6 7 8 9 10 11 12 13 14 15 16 P 18 19 2021 22 23 24 25 26 27 2829 3011 323334 350637 9 4041 424544-45// JOB/ 0 U OO a C F T1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2021 22 23 29 25 26 27 2849 3011 32 33 34 35M37 38 39 40741 424344-4!// JOB00 I/I aIf it is not full, you may reduce its size (see 60. 30.20)accordingly, automatically transferring <strong>the</strong> releasedarea to Working Storage. If later you wish to placesomething in FX, you may <strong>the</strong>n increase its size.User Area/Working StorageBecause <strong>the</strong> UA and WS interact, <strong>the</strong>y must be consideredtoge<strong>the</strong>r. Basically, <strong>the</strong>re is never anyroom in <strong>the</strong> User Area -- it is always full. Even ifyou remove something from it, it is still full, sinceit is immediately packed, and <strong>the</strong> free space istransferred to WS.Your job, <strong>the</strong>refore, is to remove unneeded itemsfrom UA, decreasing its size and <strong>the</strong>reby increasing<strong>the</strong> size of WS. The entire contents of WS are, afterall, available for transfer back to <strong>the</strong> UA wheneveryou have something you wish to store on a permanentbas is .The following sections discuss some items thatcan be removed from <strong>the</strong> UA.I/O Subroutines for Devices Not on Your System.As mentioned earlier, <strong>the</strong> Monitor, as delivered andloaded on each disk, is a complete system and includessubroutines for every device that can be installedon an <strong>1130</strong> system -- plotter, paper tapereader, etc. If you do not have a plotter, it makessense to delete <strong>the</strong> plotting subroutines. As with <strong>the</strong>FORTRAN compiler and <strong>the</strong> Assembler, you mustIf you don't havethis equipment(or if no program on this diskwill use <strong>the</strong>se devices)<strong>IBM</strong> 1627 Plotter<strong>IBM</strong> 1132 Printer<strong>IBM</strong> 1403 Printer<strong>IBM</strong> 1442 Card Read Punch,Model 6 or 7<strong>IBM</strong> 1142 Card Punch,Model 5<strong>IBM</strong> 2501 Card Reader<strong>IBM</strong> 1134 Paper TapeReader and/or 1055 PaperTape Punch<strong>IBM</strong> 1231 Optical Mark PageReaderSynchronous CommunicationAdapter (Teleprocessing)PLOTXPLOT1POINTXYPLTFCHRIFCHR XHOL4BHXCVSTRTBHOLCAYou may delete<strong>the</strong>se subroutinesECHRIECHRXPRNT1PRNTZPRNT2PRNT3PRNZEBPT3PTHOLCARDOCARD1CARDZPNCHOPNCH1PNCHZREADOREAD1READZPAPT1PAPTNPAPTZPTUTLFCHARFGRIDFPLOTSCALEFRULECPPT3PT3EBPT3CPECHAREGRIDEPLOTSCALEERULEDMPD1DMPX1PAPPRPAPHLPAPEBPAPTXAnd gain thisnumber of sectors106 1/164 8/162 12/162 2/161 4/167 14/16OMPR1 1 1/16SCAT1PRNT2EBC482310 Disk Drive COPY 1 12/16Figure 60.4. I/O subroutines which may be deleted9


Section Subsections Page60 20 20 03Computational Subroutines You Are Unlikely To Use.Let's take <strong>the</strong> example again of <strong>the</strong> disk used exclusivelyfor a large inventory file. You have eliminated<strong>the</strong> compilers, <strong>the</strong> plotter subroutines, etc.Is <strong>the</strong>re anything else on this disk that you won'tneed? Unless you have anunusual inventory system,<strong>the</strong> answer is yes. Do <strong>the</strong> inventory programs require<strong>the</strong> computation of any sines, cosines, etc ?If not, you may gain 7 sectors by deleting <strong>the</strong> trigonometricand logarithmic subroutines:FSQRFTANHFATNFAXBFEXPFLNFSINESQRETANHEATNEAXBEEXPELNESINESeldom-Used Programs and/or <strong>Data</strong>. Because <strong>the</strong><strong>1130</strong> Monitor makes it so easy to do so, many peopletend to "overstore" <strong>the</strong> disk. This is particularlytrue of programs, which are often *STOREd as amatter of course, with no rules regarding what gets*STOREd and what doesn't. As a practical matter,however, many programs should not be placed on<strong>the</strong> disk, but should be compiled each time <strong>the</strong>y areused. For example, suppose that program XYZ isa stand-alone program that does nothing but read adeck of cards and produce one or two pages of results.It is run monthly, consists of 150 FORTRAN sourcecards, and uses 2100 words of core storage. Tocompile (without listing) and execute it, will take<strong>about</strong>:Compile2 minutesExecute3 minutesTotal 5 minutesTo load it from <strong>the</strong> disk and execute it, will take<strong>about</strong>:Load1/2 minutesExecute3 minutesTotal 3 1/2 minutesBy storing this program on <strong>the</strong> disk, you willsave 1 1/2 minutes per month, but will use 2100words of disk storage, or <strong>about</strong> seven sectors.Is it worth it? That depends on your installation.If disk space is scarce, <strong>the</strong> answer is: "No -- don'tstore it!" If <strong>the</strong>re is plenty of room on <strong>the</strong> disk, <strong>the</strong>answer is: "Yes, why not?"Obviously, some programs should or must resideon <strong>the</strong> disk:- Often used subroutines and functions- Programs called as LINKS by o<strong>the</strong>r programsFrequently used programs- Very large programs- Programs that are run with a series of o<strong>the</strong>rprograms, as one batch JOB.Unneeded User-Written Programs and <strong>Data</strong>. Thisusually applies more to programs than data. Overa period of months, <strong>the</strong> typical disk becomes clutteredwith numerous abandoned, obsolete, and/oruseless programs and subprograms. The LET/FLETshould be dumped periodically and inspected for suchitems. Anything not really needed should be deleted.


Section SubsectionsPage60 20 30 01SummaryTo illustrate how much room can be available on asystems disk, let's assume you have an 1132 Printerand a 1442 Card Read Punch, and you wish to placea very large commercial-type data file on <strong>the</strong> disk.There is no Fixed Area.After originally loading <strong>the</strong> Monitor, you*DUMPLET and determine from <strong>the</strong> last 1DUMYrecord that <strong>the</strong> size of Working Storage is 49F3 diskblocks, or <strong>about</strong> 1183 sectors, 74% of <strong>the</strong> disk.To increase this amount, you can take <strong>the</strong> threesteps suggested earlier:1. Delete <strong>the</strong> FORTRAN compiler and <strong>the</strong> Assembler,gaining 120 sectors.2. Delete <strong>the</strong> I/O subroutines you don't need, inthis case gaining <strong>about</strong> 37 1/2 sectors.3. Delete <strong>the</strong> technically oriented computationalsubprograms, gaining <strong>about</strong> seven sectors.You <strong>the</strong>reby have increased <strong>the</strong> available diskspace (WS) by 164 sectors, to 1347, or 84% of <strong>the</strong>disk. Of course, you cannot compile any programswith this disk, nor can you execute any jobs (noncommercial)requiring some of <strong>the</strong> computational subroutinesthat have been deleted. From <strong>the</strong> numberof sectors available you must subtract <strong>the</strong> space requiredfor your programs. The remainder is availablefor your data file(s).The task is easier with a non-systems disk. Onecylinder (eight sectors) is always required for <strong>the</strong>Cylinder 0 area, plus two more if you have defineda Fixed Area. That leaves ei<strong>the</strong>r 1584 or 1576sectors for your programs and data files.


Section Subsections Page60 30 01 01THE DISK UTILITY PROGRAMIntroductionThe Disk Utility Program (DUP) gives you <strong>the</strong> facilitiesnecessary to manage your disk storage capability.With DUP you can:• Store programs and data files on <strong>the</strong> disk• Make <strong>the</strong> programs and data files on <strong>the</strong> diskavailable in printed, punched card, or punchedpaper tape form• Remove programs and data files from <strong>the</strong> disk• Determine <strong>the</strong> contents of disk storage througha printed copy of LET/FLET, <strong>the</strong> directory to<strong>the</strong> disk• Alter certain system parameters and, to alimited extent, <strong>the</strong> contents of <strong>the</strong> system• Perform o<strong>the</strong>r minor disk maintenance functionsThe Monitor manual explains <strong>the</strong> details requiredto use DUP (card layouts, etc.). This section willcover only <strong>the</strong> most commonly required DUP functionsand <strong>the</strong> information needed to execute <strong>the</strong>m.


Section SubsectionsPage60 30 10 01Format of Material on <strong>the</strong> DiskEssential to <strong>the</strong> understanding of DUP is a basicknowledge of <strong>the</strong> various formats used in <strong>the</strong> storingof programs and data on <strong>the</strong> disk.Although DUP gives you many format options,this section discusses only those that apply to <strong>the</strong>average user, writing a typical FORTRAN program.Users with unusual combinations (for example, adata file in DCI format) will have exercised thisoption with a specific purpose in mind and will bewell aware of <strong>the</strong> details involved.<strong>Data</strong> FilesUnder normal circumstances, data files are alwaysstored on <strong>the</strong> disk in <strong>the</strong> Disk <strong>Data</strong> Format (DDF).Programs and SubprogramsUnder normal circumstances, programs and subprogramswill be stored on <strong>the</strong> disk in one of twoformats:Disk System Format (DSF)Disk Core Image Format (DCI)The main difference between <strong>the</strong> two lies in what isstored, ra<strong>the</strong>r than how it is stored.A program in DCI format consists of a complete,self-sufficient core load or program package -- <strong>the</strong>mainline program, plus all <strong>the</strong> subroutines it requires.The entire package is in absolute form;that is, all addresses are actual core storage locationsra<strong>the</strong>r than relative locations. Subprogramscannot be in DCI format.On <strong>the</strong> o<strong>the</strong>r hand, an item in DSF consists of thatitem and only that item. Nothing else is includedwith it. It may be:• A program or a subprogram• Absolute or relocatable (but usually relocatable)• In ei<strong>the</strong>r WS or UA (but not in <strong>the</strong> FX)As would be expected, a program occupies morespace on <strong>the</strong> disk in DCI form than it would in DSF,since it includes more material. However, it maybe loaded into core storage (when called by anXEQ card) much faster, since <strong>the</strong> Core Load Builderneed not assemble all <strong>the</strong> necessary subroutines andcalculate actual core storage addresses.


Section Subsections Page60 30 20 01The Most Commonly Used DUP Functions - SingleDisk Drive SystemsOf <strong>the</strong> many things that can be done with DUP, afew stand out as common, everyday tasks in <strong>the</strong>typical <strong>1130</strong> installation. The following is a guideto <strong>the</strong>se common jobs:Store a Program or Subprogram in DSF FormatAfter compiling a program or subprogram, you willcommonly store it on <strong>the</strong> disk for later referenceor execution.Because <strong>the</strong> FORTRAN Compiler (or Assembler)leaves <strong>the</strong> compiled program in Working Storage,all that need be done is to move it from WS to UA.To do this, DUP moves <strong>the</strong> boundary between UAand WS so as to include in UA whatever is in WS.For example, suppose you have just compiled aprogram called PROGZ, which requires 812 wordsof core storage. If you follow <strong>the</strong> END card of <strong>the</strong>program with1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 12 19 20 21 22 23 24 25 26 27 28 29 3001 5233 54152657 5259 4041 42434445E NGD U F0 U 4 p 0 Q zDUP will move this program (move <strong>the</strong> boundary)from WS to UA, and enter <strong>the</strong> name PROGZ in LET,with <strong>the</strong> proper identification codes. UA increasesin size by <strong>about</strong> 812 words; WS decreases by <strong>the</strong>same amount. Note that you did not have to knowhow large <strong>the</strong> program was -- DUP handles that.Note also that <strong>the</strong> DUP card is not preceded by aJOB card.


Section Subsections Page60 30 20 02Store a Program in DCI (Core Image) FormatYou can, after compilation, also store a program inDCI format, by simply using <strong>the</strong> *STORECI card inplace of <strong>the</strong> *STORE card. Note that <strong>the</strong> *FILES,*LOCAL, and *NOCAL cards are placed after <strong>the</strong>*STORECI card and that <strong>the</strong> number of such cardsis punched in columns 27-30 of <strong>the</strong> *STORECI card.Because this takes longer than <strong>the</strong> *STORE option,it usually will not be done unless you are fairlycertain that <strong>the</strong> program is free of bugs.Delete a Program or SubprogramThis is one of <strong>the</strong> simplest of <strong>the</strong> DUP jobs, sinceyou need not be concerned with ei<strong>the</strong>r <strong>the</strong> format,<strong>the</strong> location, or <strong>the</strong> type (program, subprogram, ordata) of <strong>the</strong> item to be deleted.The sequence of cards462 4 9 10 12 15 14 15 16 a l e 19 20 22 23 27 26 30,3 32 34 37 5,9 59 404 42 43 4445.1 O 6aL TA/ A EConvert a DSF Program to DCIFor speed of loading, commonly used programsshould be stored in DCI (core image) format. Thiseliminates <strong>the</strong> need to build a core load each timeyou execute <strong>the</strong> program.If you have a program called MAIN6 stored on <strong>the</strong>disk in DSF (by a STORE card), you can convert it toDCI with <strong>the</strong> following sequence:will delete NAMEP wherever and whatever it is.I 2 3 4 5 6 7 9 910111213141516 a 18 19 20 21 22 23 24 25 27 28 29 303 3233 35 37 38 39 4041 4243 45/ / J015// OUPDI/HP 04 W5 141N6STORECI Pis I/,4 vAHEN 2LUCA L - -C/LES/ 1 J108// 01/CF DELETE 14 ///6Note that <strong>the</strong> name of <strong>the</strong> program had to bechanged.


Section Subsections Page60 30 20 03Dump a DSF Program or Subprogram and Reload ItAs a backup procedure, you can dump your oftenused programs and subprograms onto cards or papertape. If anything happened to <strong>the</strong> disk cartridge,<strong>the</strong>se items could be reloaded much faster than <strong>the</strong>ycould be recompiled. The job2 5 7 9 10 12 14 IS 16 17 18 19 20 23 25 26 26 29 30 32 33 35 36 37 39 40.4 42 43 44-4a Ua ,v 1/ 4 C I 7- E6 a k a r 5 O t n a CDump a DCI (Core Image) Program and Reload ItIf <strong>the</strong> program to be dumped and reloaded is in coreimage format, <strong>the</strong> procedure must be changed somewhat.The dump to cards can be accomplished in <strong>the</strong>same way, with <strong>the</strong> *DUMP card.However, to reload, <strong>the</strong> STOREDATACI optionis required, and <strong>the</strong> card count must appear incolumns 27-30. For example, a program calledXXXXX, dumped into a deck of 108 cards, would bereloaded with <strong>the</strong> card:2 3 4 5 6 75 O E O9 10A12 13 14 17 18 19 20 21 22I C U423x x X x24 25 26 27 28 2908301 32 33 34 37 38 39 404 42 43 44-45will cause ITEM to be punched into <strong>the</strong> deck of blankcards following <strong>the</strong> *DUMP card, 54 words per card.In addition, a header and end-of-program card willbe punched.Since <strong>the</strong> program is punched in such a compactform, very few programs will require more than aninch of cards (<strong>about</strong> 140 cards, or 6300 words).Extra, unpunched cards will be bypassed automaticallyby DUP.To reload this dumped program, <strong>the</strong> *DUMP cardshould be replaced with4 6 7 10 14 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 33 34 36 37 39 404 42 43 4445S r O RE C O A rr(if <strong>the</strong> program was in DSF) and run as ano<strong>the</strong>r job.


Section Subsections Page60 30 20 04Dump a <strong>Data</strong> File and Reload ItMore important as a backup procedure, you candump your data files onto cards or paper tape. Incase anything happens to <strong>the</strong> disk cartridge, <strong>the</strong> datafile may be reloaded.To dump a data file, you must know its size insectors.The sequence of cardsCopy a <strong>Data</strong> File onto Ano<strong>the</strong>r Area on <strong>the</strong> SameDiskAno<strong>the</strong>r method of data file backup is to copy <strong>the</strong>file onto ano<strong>the</strong>r portion of <strong>the</strong> disk. Typically thiswould be done before running a job that modifies <strong>the</strong>file. If <strong>the</strong> file is 100 sectors long and called MEN,<strong>the</strong> job2 4 6 10 14 15 IT 18 19 20 22 23 24 26 27 28 29 3013 32 33 34 35 37 42 4442 14 17 19 20 21 22 24 25 26 27 28 29 301 5439 404 43 45 / B4 6 9 10 12 13 15 23 37 44BOFUN ,4 U A 5 E 0 0B U N B A UA C A- E O 6 5 S 0 ED A 1s/ S U A T AI 0 0 0e /7 0 A 6 C a r 5 0 aewill dump <strong>the</strong> 65-sector data file, FILEX, from <strong>the</strong>UA to cards (CD).The data file is punched into <strong>the</strong> blank card deck,54 words per card. No header or trailer cards arepunched.To reload, you must know <strong>the</strong> number of cardsin <strong>the</strong> dumped deck.To continue <strong>the</strong> previous example of a 65-sectorfile (20,800 words), <strong>the</strong> dumped deck would haverequired <strong>about</strong> 386 cards.will move it to Working Storage, <strong>the</strong>n include it in<strong>the</strong> User Area with a different name (TMEN).If <strong>the</strong> program you wish to run operates satisfactorily,updating <strong>the</strong> file MEN, you need do nothingexcept DELETE TMEN.If on <strong>the</strong> o<strong>the</strong>r hand, some error occurs that ruins<strong>the</strong> file MEN, you have a duplicate file (TMEN)ready to replace it. The steps shown below willreplace MEN, which has been ruined, with TMEN:To reload, <strong>the</strong>n, you need <strong>the</strong> cards2 4 5 6 7 9 10 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 32 33 34 35 37 38 39 40 42 4334 10 12 13 14 15 16 17 20 22 23 24 3011 35 36 37 38 39 420 BU5 r o E A A C B UAX 3 8a 1 a a / (e CUBHE0 U N A U A 5 TH E N 0 1 0 042 5 0 R A 5 U A NE N O 0 CO L F E T AlNow you may rerun <strong>the</strong> job. Be especially carefulnot to *DELETE TMEN until you are sureeverything went according to plan.This protects you from accidental programmedloss of a data file; however, it does not protectagainst physical loss or destruction of <strong>the</strong> diskcartridge itself.


Section Subsections Page60 30 20 05Defining and Modifying <strong>the</strong> Fixed AreaIf you want a Fixed Area on a disk cartridge, youmust not only instruct <strong>the</strong> monitor to create one,but you must specify its size.If you want a Fixed Area of 20 cylinders, you canrun <strong>the</strong> jobor, if you wish to decrease its size by 3 cylinders4 9 10 12 13 14 15 16 17 20 22 23 24 26 27 28 30,3 54 55 37 38 39 404 42 43a0E 4, 4 RE 0 34 6 10 12 13 14 15 17 18 19 20 22 23 24 25 26 27 26 29 30 33 54 36 37 38 39 404 42 45 44 45F /v F A R E4 0 2and you have it. Note that we specified 21 cylindersas <strong>the</strong> size of <strong>the</strong> Fixed Area. One cylinder will beused for FLET; <strong>the</strong> o<strong>the</strong>r 20 are available for yourprograms and data files.If later you wish to increase <strong>the</strong> size of FX by 6cylinders, you can useYou should keep a record of whe<strong>the</strong>r a particularcartridge has a Fixed Area or not. If you ran <strong>the</strong>first job, <strong>the</strong>n forgot you ran it, and ran it again,you would have a 41-cylinder Fixed Area. When indoubt you may use <strong>the</strong> DUMPLET DUP option, whichwill print <strong>the</strong> contents of FLET.4 5 10 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 303 52 55 37 38 39 4'1442 43 44 4594// R E4 a 06


Section Subsections Page60 30 30 01Special Options -- Multiple Disk <strong>1130</strong> UsersCopy a <strong>Data</strong> File onto Ano<strong>the</strong>r DiskIf you have more than one disk drive, you will usuallytake this option ra<strong>the</strong>r than <strong>the</strong> ones describedearlier -- dump to cards for backup, or copy toano<strong>the</strong>r part of thIsame disk. This requires a twostepprocedure, site data files cannot be copieddirectly from <strong>the</strong> UA on one disk into <strong>the</strong> UA onano<strong>the</strong>r disk. The transfer must be via WS.Suppose you have an 88-sector file, called DATAX,in UA on cartridge 1075, and you want to copy it into<strong>the</strong> UA on cartridge 1077. Assume that cartridge1075 is on drive 0, and 1077 is on drive 1. Thefollowing card sequence will accomplish this task:Copy a Program onto Ano<strong>the</strong>r DiskIf you have multiple disks, you may also choose toback up your programs by copying <strong>the</strong>m to ano<strong>the</strong>rdisk, ra<strong>the</strong>r than dumping to cards. This is similarto <strong>the</strong> previous task, but easier, since you do nothave to know <strong>the</strong> size of <strong>the</strong> program, as was <strong>the</strong>case with a data file. You must still, however, govia WS in <strong>the</strong> two-step procedure:4 7 9 10 12 13 1.1 15 is 17 18 19 20 22 23 24 25 25 21 28 29 30'3 32 33 34 30 39 42 43I 0 8 0 7 5 1 0 7 7 1 0 7 5a a S PA, 0 1 0 75 0 7 54 5 TO 5 a O 0 4 0 7 5 0 7 7This copies <strong>the</strong> program or subprogram calledPROGX from cartridge 1075 to cartridge 1077. Asbefore, <strong>the</strong> program now exists on both cartridges,each of which has its own LET.Nei<strong>the</strong>r <strong>the</strong> format (DSF or DCI), nor <strong>the</strong> type(program or subprogram) need be known, or specified.You can see that <strong>the</strong> file was first moved from UAto WS on cartridge 1075, <strong>the</strong>n from WS on 1075 toUA on 1077. The file now exists on both cartridges,and each has <strong>the</strong> same name: DATAX.Copy an Entire Disk onto Ano<strong>the</strong>r DiskThis is not done with <strong>the</strong> Disk Utility Program (DUP)but with a Disk Maintenance Program called COPY,which is supplied with <strong>the</strong> Monitor. If you want tocopy <strong>the</strong> entire contents of cartridge 1967 onto cartridge1968, you execute COPY:16 2713 2 4 5 10 12 io 15 17 18 20 22 26 28 30.3 33 37 se 39 404 42A 4445Ia 1 91 7 1 9 6571 9 6 6


Section SubsectionsPage65 00 00 01Section 65: THE MONITOR - CORE STORAGE MANAGEMENTCONTENTSIntroduction 65. 01. 00The Logical Layout of Core Storage 65.10.00Basic 65.10.10Flipper 65.10.20SOCAL Area 65.10.30GeneralOverlay 1Overlay 2Overlay 3The SOCAL Overlay SchemePossible Improvements to <strong>the</strong>SOCAL SchemeReduce <strong>the</strong> Size of <strong>the</strong> LargestSOCAL OverlayCombine Overlays 1 and 3LOCAL Area 65.10.40General<strong>IBM</strong>-Supplied (Systems)SubroutinesProgram or LINK Area 65.10.50COMMON Area 65.10.60Unused Area 65.10.70Summary 65.20.00


Section SubsectionsPage65 01 00 01INTRODUCTIONThe <strong>1130</strong> Disk Monitor System gives you three extremelypowerful and useful means of managingcore storage. <strong>All</strong> three involve <strong>the</strong> sharing of corestorage by two or more programs (LINKs), subprograms(LOCALs), or groups of subprograms(SOCALs). This section describes <strong>the</strong>se threeschemes in detail, after discussing <strong>the</strong> <strong>1130</strong> corestorage layout in terms of its seven logical areas.


Section Subsections Page65 10 00 01THE LOGICAL LAYOUT OF CORE STORAGEYou can think of core storage as consisting, like <strong>the</strong>disk cartridge, of several logical areas. Again,this layout may bear little or no resemblance to <strong>the</strong>actual, physical layout; it is merely a device to helpyou understand <strong>the</strong> dynamic nature of core storage.The seven logical areas are as follows:BasicFlipperSOCAL AreaLOCAL AreaProgram Or LINK AreaCOMMONUnusedThese areas are described below in general terms.Complete details may be found in <strong>the</strong> appropriateMonitor reference manual. Note that all core sizesgiven are based on:1. A typical FORTRAN program--commerciallyra<strong>the</strong>r than scientifically oriented.2. Approximate subroutine sizes, usually adjustedto multiples of 10.3. Version 2, Modification Level 0, of <strong>the</strong> <strong>1130</strong>Disk Monitor System.Because some of <strong>the</strong> package sizes may increase in<strong>the</strong> future, you should not plan on using all of <strong>the</strong>available core storage; it might be more prudent touse <strong>about</strong> 95% of it.


Section SubsectionsPage65 10 10 01BasicThis is a set of programs that is always in core andwhose size varies only slightly from job to job. Itconsists of:1. Resident Monitor2. Transfer Vector3. Several commonly used subroutines kept incore storage at all times (IFIX, FLOAT, ELD,ESTO, NORM, etc.). These are all subprogramsubtypes 0 -- see discussion of subtype under"SOCAL Area".A good average size for this area is 740 words.UnusedCOMMONProgram areaLOCAL areaSOCAL areaFlipperBasic areaCore Storage


Section Subsections Page65 10 20 01FlipperThis routine handles both <strong>the</strong> SOCAL and LOCALoverlay system. Flipper is not required (core size= 0) if <strong>the</strong>re are no SOCALs or LOCALs: if <strong>the</strong>reare, its size is <strong>about</strong> 100 words.UnusedCOMMONProgram areaLOCAL areaSOCAL areaFlipperBasic areaCore Storage


Section SubsectionsPage65 10 30 01SOCAL AreaGeneralUnusedCOMMONProgram areaLOCAL areaSOCAL areaFlipperBasic areaCore StorageThe word SOCAL is an acronym derived from"System Overlay on Call". The SOCAL area is thatarea of core storage where <strong>the</strong> SOCAL subroutinesreside. The SOCAL subroutines, in turn, are definedas those subprograms that:1. Are used by <strong>the</strong> mainline program to be executed.2. Have been designated as subtype 1, 2, 3, or 8.3. Have not been made LOCAL.If a subprogram has not been designated as subtype1, 2, 3, or 8, it will be located in one of threeareas:1. The LOCAL area if it has been specified asLOCAL.2. The Basic area if it is an <strong>IBM</strong>-supplied subprogram(IFIX, FLOAT, ELD, EST, etc. ) and hasnot been made a LOCAL.3. The Program area if it is a user-suppliedsubprogram and has not been made a LOCAL.The <strong>1130</strong> Monitor system you receive from <strong>IBM</strong>includes a subroutine library in which each subroutineis assigned a subtype number. These maybe called <strong>the</strong> standard subtypes, and will yield aSOCAL system as described in <strong>the</strong> Monitor manualand in later subsections of this Guide. However,<strong>the</strong>se subtype numbers may be changed at yourdiscretion. Fur<strong>the</strong>rmore, you may assign subtypenumbers to your own subprograms. Both steps willyield a nonstandard SOCAL system. Several ideason this subject are presented later in this subsection.The SOCAL system involves <strong>the</strong> grouping of <strong>the</strong>SOCAL subroutines into three groups, called overlays,which will be manipulated by <strong>the</strong> Core Load Builderas it goes <strong>about</strong> its job of loading your program intocore storage.Overlay 1. This is made up of all those subroutinesand functions designated as subtype 2 or 8. TheARITHMETIC, PAUSE, and STOP routines are subtype2; <strong>the</strong> functionals (SIN, COS, etc.) are subtype8.The "typical" commercial-program will probablyadd, subtract, multiply and divide (in extended precision),PAUSE, STOP, and read <strong>the</strong> data switches.The subroutines required to do this will occupy <strong>about</strong>520 words of core storage. If <strong>the</strong> program does notdivide, <strong>the</strong> size of this overlay will be reduced by180 words.Commercially oriented <strong>1130</strong> programs willprobably be limited to <strong>the</strong>se subroutines, whiletechnical-type jobs may use <strong>the</strong> SIN, COS, SQRT,etc. , functions and require up to several hundredmore words.


Section Subsections Page65 10 30 02Overlay 2. Overlay 2 is composed of all subtype 3subroutines--those required for non-disk input/output. The basic component is SFIO, <strong>the</strong> FormatInterpreter, which is required if <strong>the</strong> program to beexecuted contains any non-disk FORTRAN I/0 statements.In addition, each I/0 device requires itsown I/0 subroutine and often several code conversionroutines.The size of this overlay varies considerably,depending on <strong>the</strong> I/0 devices specified on <strong>the</strong> *IOCScard (whe<strong>the</strong>r <strong>the</strong>y are used or not). The followingtable may be used to calculate <strong>the</strong> approximate sizeof this overlay.If your program This many words will becontains any: included in overlay 2:a) Non-disk formatted 1150input/output (SFIO)b) WRITE on <strong>the</strong> 1132 190c) WRITE on <strong>the</strong> 1403 190d) WRITE on <strong>the</strong> 1442-5 70e) WRITE on <strong>the</strong> console 60printer (typewriter)f) READ or WRITE on <strong>the</strong> 1601442-6 or 7g) READ from <strong>the</strong> 2501 60h) READ from <strong>the</strong> key- 30board (cannot bedone without writingon console printer)i) READ from keyboard 190or 2501 or 1442-6, 7j) READ or WRITE on 225paper tapeConsider, for example, a FORTRAN programcompiled with <strong>the</strong> card:*IOCS (1132 PRINTER, TYPEWRITER, KEYBOARD)Referring to <strong>the</strong> table above, this program will require<strong>the</strong> following:ItemReason No. of Wordsa There will be formatted I/O .1150using non-disk units.b The 1132 printer is specified. 190e The typewriter is mentioned. 60f The 1442 is included. 160i The program READs from <strong>the</strong> 1901442.This program, <strong>the</strong>refore, will require a 1750-wordoverlay. (Note again that it is <strong>the</strong> *IOCS card, notyour program, that determines <strong>the</strong> size of thispackage.)Total


Section SubsectionsPage65 10 30 03Overlay 3. This is <strong>the</strong> FORTRAN disk I/0 package,which may contain:SDFIO (620 words), <strong>the</strong> disk I/O packageSDFND (80 words), <strong>the</strong> disk FIND packageSUFIO (730 words), <strong>the</strong> disk unformattedI/O package<strong>All</strong> three subroutines are subtype 1. The size ofthis package, <strong>the</strong>refore, 'ranges from 0 (no diskI/O) to 1430 words.Note that SDFND is not included unless yourFORTRAN program contains a FIND statement.SDFIO is included if <strong>the</strong> *IOCS (DISK) card is present;SUFIO if <strong>the</strong> *IOCS (UDISK) card is present.The typical program will require SDFIO andSDFND, for an overlay size of 700 words.The SOCAL Overlay SchemeJust before you execute a program or store one incore image format (DCI), <strong>the</strong> Core Load Builder(CLB) is given <strong>the</strong> task of building a complete coreload, or program package, which will fit into corestorage.CLB assembles your program and all its requiredsubroutines, and determines how much core storage<strong>the</strong>y will require. In so doing, it considers <strong>the</strong>subroutines that are to be LOCAL. The CLB <strong>the</strong>ntries to include <strong>the</strong> last remaining elements, <strong>the</strong> threeSOCAL overlays, in four steps:1. As a first step, CLB attempts to fit all threeoverlays in core with no sharing. Using <strong>the</strong> typicaloverlay sizes, this will require 520 +1750 +700 or2970 words of core.2. A second step is taken if <strong>the</strong>re is not enoughroom to hold all three packages at <strong>the</strong> same time.This involves <strong>the</strong> sharing of core storage by overlay1 (arithmetic) and overlay 2 (non-disk I/O). The area<strong>the</strong>y share must be large enough for <strong>the</strong> larger of <strong>the</strong>two overlays, in this case (and almost always) <strong>the</strong>non-disk I/O subroutines, overlay 2. The size of<strong>the</strong> SOCAL area will now be 1750+700 or 2450 words,a reduction of 520 words, <strong>the</strong> size of overlay 1.As required by <strong>the</strong> user's program, Flipper willread each overlay from <strong>the</strong> disk whenever it is needed,placing it on top of <strong>the</strong> last overlay. Overlay 3, <strong>the</strong>disk I/O, will remain in core at all times. BecauseFlipper is now needed, your net gain is 520-100 or420 words.3. The third step is taken if <strong>the</strong>re is still notenough room in core storage. It involves <strong>the</strong> sharingof core storage by all three packages, in an area<strong>the</strong> size of <strong>the</strong> largest of <strong>the</strong> 3 overlays. As before,this will probably be <strong>the</strong> non-disk I/O overlay, at1750 words.4. If step 3 fails to provide enough room in core,step 4 will so advise you with a message.Summarizing <strong>the</strong> CLB makes a step-by-stepattempt to fit your program and its subprograms into<strong>the</strong> available core storage space.Step 1 involves <strong>the</strong> most core storage --typically<strong>about</strong> 2970 words.Step 2 requires <strong>about</strong> 520-100 or 420 words lessthan step 1.Step 3 requires <strong>about</strong> 700 words less than step 2.Figure 65.1 shows <strong>the</strong> three steps, or overlay levels,in graphic form. Note that <strong>the</strong> discussion of this typicalprogram did not include <strong>the</strong> program itself. Only<strong>the</strong> subprograms have been considered.


Section Subsections Page65 10 30 04If you place an L in column 14 of <strong>the</strong> 1/ XEQcard, <strong>the</strong> Core Load Builder will print a core mapshowing which subprograms, if any, are in whichSOCAL overlay, and <strong>the</strong> size of each overlay. (SeeFigure 65.5 for such a map.)30002500200015001000500Step 1Overlay Level 0OverlayNon-DiskI/OOverlay2Net GainStep 2 Step 3Overlay Level 1 Overlay Level 2Overlay 3Net Gain- --tNon-DiskI/O Unused I I Unused Overlay Unused2Overlay2Overlay Overlay Overlay Overlay3ArithmeticFli perFigure 65.1. Core storage layout at each overlay levelFlipperPossible Improvements to <strong>the</strong> SOCAL SchemeFigure 65.1 illustrates, to a rough scale, <strong>the</strong> layoutof <strong>the</strong> SOCAL area at each overlay level. One factis apparent: overlay 2 is much larger than ei<strong>the</strong>roverlay 1 or overlay 3, and is, in fact, larger than<strong>the</strong> two combined. Since <strong>the</strong> SOCAL area must be atleast as large as <strong>the</strong> largest of <strong>the</strong> three overlays,a certain amount of core storage is unused in somecircumstances.On <strong>the</strong> basis of this fact, <strong>the</strong>re are two techniquesthat may be used to make <strong>the</strong> standard SOCAL systemmore effective:Reduce <strong>the</strong> size of <strong>the</strong> largest SOCAL overlay.Since LOCALs, discussed later, take precedenceover SOCALs, you have a means to remove subprogramsfrom <strong>the</strong> SOCAL area and to force <strong>the</strong>minto <strong>the</strong> LOCAL area. Naturally, you would do thisonly to subprograms in <strong>the</strong> largest overlay, usually<strong>the</strong> non-disk I/O package.Because one LOCAL cannot call ano<strong>the</strong>r LOCAL,you must be somewhat careful here. For example,you cannot LOCALize both <strong>the</strong> 1132 subroutine anda subroutine that calls it. One or <strong>the</strong> o<strong>the</strong>r may beLOCAL, not both.If you are sure such a situation does not exist,you can make <strong>the</strong> following subroutines LOCAL:ApproximateName Required for Size in WordsCARDZ 1442 Card Read Punch 160PNCHZ 1442-5 Card Punch 70READZ 2501 Card Reader 60TYPE Z Console Printer 60WRTYZ Console Keyboard and 90PrinterPRNTZ 1132 Printer 190PRNZ 1403 Printer 190PAPTZ Paper Tape Units 225(If you accidentally do make one LOCAL callano<strong>the</strong>r LOCAL, <strong>the</strong> LOADER will call it to yourattention with an error message.)Each of <strong>the</strong>se routines, if made LOCAL, releasesas much core storage as <strong>the</strong> size of <strong>the</strong> routine. Itis unlikely, however, that you can reduce overlay 2to <strong>the</strong> same size as <strong>the</strong> o<strong>the</strong>r two overlays unlessyou LOCALize <strong>the</strong> entire 1150-word Format Interpreter(SFI0).


Section SubsectionsPage65 10 30 05To see what that would do to <strong>the</strong> SOCAL system,let us observe what <strong>the</strong> three overlays would be ifSFIO were LOCAL (and <strong>the</strong>refore not SOCAL):Overlay 1 ARITHMETIC (<strong>about</strong> 520)Overlay 2 CARDZ, PRNTZ, TYPEZ,etc. (<strong>about</strong> 600)Overlay 3 DISK I/O (<strong>about</strong> 700)You have not saved <strong>the</strong> entire 1150 words ofSFIO, because now your disk I/O package, overlay3, at 700 words, is <strong>the</strong> largest. Your net gain in<strong>the</strong> SOCAL area is 1750-700 or 1050 words of corestorage. Fur<strong>the</strong>rmore, <strong>the</strong> LOCAL SFIO at 1150may now be <strong>the</strong> largest of <strong>the</strong> LOCALs, consequentlyenlarging your LOCAL area; so you may not reallyhave saved 1050 words. If <strong>the</strong> largest LOCAL previouslywas 800 words in length, and <strong>the</strong> LOCALarea is now 1150-800, or 350, words larger, yournet gain is 1050-350 or 700 words. This is stillsubstantial.Because all READs and WRITEs (except to <strong>the</strong>disk) use SFIO, making SFIO LOCAL rules out <strong>the</strong>possibility of making LOCAL any subroutine containingnon-disk I/O. This may hamper your flexibilityin using LOCALs and fur<strong>the</strong>r reduce your700-word saving.3000Step 1Overlay Level 0Overlay22970Step 2Overlay Level 1Step 3Overlay Level 2Combine Overlays 1 and 3. Again observingFigure 65.1, you see that overlay 2 is larger thanoverlays 1 and 3 toge<strong>the</strong>r (1750 is greater than520+700). Why not, <strong>the</strong>refore, combine <strong>the</strong>se twooverlays into one? This will not save any core, butit may reduce <strong>the</strong> amount of time spent in overlayingone package with ano<strong>the</strong>r.Since <strong>the</strong> subprograms in overlay 1 are all subtypes2 and 8, and those in overlay 3 are all subtype1, you need only change SDFIO, SDFND, and SUFIOfrom subtype 1 to subtype 2, and <strong>the</strong>y will be includedautomatically in overlay 1.To do this, you may *DUMP SDFIO, SDFND andSUFIO from <strong>the</strong> User Area to cards, *DELETE<strong>the</strong>m, <strong>the</strong>n reload <strong>the</strong> cards with a 2 punched incolumn 11 of <strong>the</strong> *STORE cards.If your programs run more slowly or no longerfit in core, *DELETE <strong>the</strong> subtype 2 routines andreload <strong>the</strong> card decks, this time with a 1 in column11 of <strong>the</strong> *STORE card. This will restore <strong>the</strong>m to<strong>the</strong>ir original state.Figure 65.2 illustrates how your SOCAL area isaffected by this change. For <strong>the</strong> typical program,overlay 2 remains at 1750 and overlay 1 grows to520+700 or 1220 words. Since <strong>the</strong>re are no longerany subtype 1 subroutines, overlay 3 will have asize of zero words, and <strong>the</strong> CLB will, in effect,skip step 3.2500Non-DiskI/0Nonexistent20001500UnusedOverlay2Non-DiskI/017501000Overlay1Arith.andDisk I/OOverlay1Arith.andDisk I/O500FlipperFigure 65.2.


Section Subsections Page65 10 40 01Local AreaIf you execute XXXX with <strong>the</strong> cardsGeneral4 5 7 9 11 12 13 14 15 17 18 19 20 22 23 24 26 2/ 28 29 3001 3233 34 3536 38'39 4014 42 43 4443/ / 0 8Unused 2COMMON 4 O C 4 L S U8 2 5 4/ 8 2 // S 9 4 1 U 8 3Program areaLOCAL areaSOCAL areaFlipperBasic areaCore StorageThe LOCAL (LOad-on-CALI) area is a second areain core storage where <strong>the</strong> Monitor will overlay subprograms,although in a manner different from <strong>the</strong>SOCAL scheme in <strong>the</strong>se respects:1. You must specifically designate a subprogramas LOCAL. It is not automatic.2. These subprograms are not grouped by anysubtype. Each subprogram forms one overlay, andeach overlay contains one subprogram.3. You are not limited to three overlays. If youhave 17 subprograms, you may make all of <strong>the</strong>mLOCAL, thus creating 17 LOCAL overlays.Like <strong>the</strong> SOCAL area, <strong>the</strong> LOCAL area will beas large as <strong>the</strong> largest LOCAL subroutine.LOCALs and SOCALs do not overlay one ano<strong>the</strong>r.There are two areas in core storage for subprogramoverlays--one as large as <strong>the</strong> largest SOCAL overlayand ano<strong>the</strong>r as large as <strong>the</strong> largest LOCAL subprogram.To give some examples of how LOCALs areused, take a program that uses five functions and/orsubroutines, called SUB1, SUB2, SUB3, SUB4, andSUB5. You may designate none, one, two, three,four, or all five as LOCAL. Those that are LOCALwill overlay one ano<strong>the</strong>r, being read from <strong>the</strong> diskwhenever required; those that are not LOCAL willremain in core storage at all times.Subroutines must be specified as LOCAL, with<strong>the</strong> *LOCAL card, every time a DSF program isexecuted, or at <strong>the</strong> time a core load is built witha *STORECI card. Suppose you have a main programXXXX, which uses <strong>the</strong> five subprogramsmentioned above:SUB1 300 wordsSUB2 60 wordsSUB3 378 wordsSUB4 406 wordsSUB5 19 wordsyou will reduce your core storage requirements by1153-406 or 747 words, since only enough room for<strong>the</strong> largest, SUB4, at 406 words, is needed, ra<strong>the</strong>rthan enough for all five, 1153 words.If you execute XXXX with <strong>the</strong> cards0 9EqL 0 C 47 10 12 13 14 15 16 1? 18 19 20 21 22 23 24 26 27 26 29 300 33 37 39 40141 42 4325 a 8 S 8 4you will reduce your core requirements by <strong>the</strong> sizeof SUB3 (378 words), since it and SUB4 will overlayeach o<strong>the</strong>r. SUB1, SUB2, and SUB5 will be in coreall <strong>the</strong> time, since <strong>the</strong>y are not mentioned on your*LOCAL card.There are several o<strong>the</strong>r options in <strong>the</strong> preparationof <strong>the</strong> *LOCAL card. For example, <strong>the</strong> aboveexample could also have been5/ 81 XtVL 4 S [Mt 48 12 13 14 15 17 18 19 20 22 23 23 26 27 28 29 33 36 37 39 40•4 42 43 445 C/ 8 CTotal 1163 words


Section SubsectionsPage65 10 40 021 2 '4 5 6 7 a 9 10 11 12 13// JOBx x xL C,4 K SU 301- 0 CA x x x S a 6419/2021 22 23 24 25 26 27 28189 301 323334 353637 3839 40141 42434443If <strong>the</strong> program to be executed has just beencompiled, it is located in Working Storage and <strong>the</strong>reforehas no name. The *LOCAL card in this casewould appear aswhere <strong>the</strong> comma after SUB3 implies continuation, <strong>IBM</strong>-Supplied (Systems) SubroutinesorIn addition to your own subprograms, you mayalso designate many of <strong>the</strong> <strong>IBM</strong>-supplied subprogramsas LOCALs. <strong>All</strong> subroutines and functionsexcept ILSOO, ILS01, ILS02, ILS03, and ILSO4, <strong>the</strong>Interrupt Level subroutines, can be made LOCAL.As a practical matter, however, it is often difficultto LOCALize such subroutines, because many of<strong>the</strong>m call several o<strong>the</strong>r subroutines, and one LOCALcannot call ano<strong>the</strong>r LOCAL.This was mentioned earlier, when it was suggestedthat some subprograms, ordinarily SOCALs,could in fact be made LOCAL instead.1 2 3 4 5 6 7 8 910I1 1 2 1 3 14 1516 1 7 1819 202122 23 04 25 26272829 3031323334 37 9 404142434445// 108/ / KL 0 C 51./8 3 S 4without a name for <strong>the</strong> Mainline (calling) program.(Note <strong>the</strong> comma in its place.)If program XXXX calls program ZZZZ as aLINK ((CALL LINK (ZZZZ)), you must specify <strong>the</strong>LOCALs for ZZZZ also, at <strong>the</strong> time you tell <strong>the</strong>Monitor to execute (or *STORE CI) XXXX2 4 59 10 12 13 14 15 19 20 21 22 23 24 28 29 3Q 31 32 31 39 404 42 430 8K K0 C K I/B 3 5aa 40 C A z 1/8 7 7 3 1 5UB 3where SUB77 and SUB91 are o<strong>the</strong>r subroutinesLOCAL to ZZZZ.


Section Subsections Page65 10 50 01Program or LINK AreaUnusedCOMMONProgram areaLOCAL areaSOCAL areaFlipperBasic areavariable data, subprograms, etc. However, if <strong>the</strong>LINKs must communicate with each o<strong>the</strong>r throughcore-resident data (ra<strong>the</strong>r than disk data), this datamust be placed in <strong>the</strong> COMMON area, with <strong>the</strong>COMMON statement (see next subsection). Duringexecution of such a program, while <strong>the</strong> location andcontents of <strong>the</strong> SOCAL, LOCAL, and LINK areasmay be continually changing, <strong>the</strong> COMMON areadoes not change. It stays in <strong>the</strong> same place and isnot involved in any overlay.Core StorageThis area will contain1. Your mainline program2. <strong>All</strong> of your subprograms that are not LOCALor SOCAL.3. <strong>All</strong> of <strong>the</strong> <strong>IBM</strong>-supplied subprograms that arenot LOCAL, SOCAL, or subtype 0.4. <strong>All</strong> data (variables and constants) used by <strong>the</strong>mainline and/or its subprograms, not placed inCOMMON.This forms <strong>the</strong> third area in core where overlaysmay be employed; in this case one program package,or LINK, will overlay ano<strong>the</strong>r.As in <strong>the</strong> case of LOCALs, this is not done automatically;it must be planned and executed by you.Suppose you have written a very large (10, 000-word) program, named BIG. When you try to executeit, you are informed by <strong>the</strong> Monitor that it istoo big. Looking at <strong>the</strong> program, however, you seethat it can actually be thought of as four programs,connected as shown in Figure 65.3.If you split BIG into four programs and place <strong>the</strong>CALL LINK statements in <strong>the</strong> proper places, <strong>the</strong>four will run essentially <strong>the</strong> same as one large program(although possibly a little slower). Each programor LINK may have its own SOCALs, LOCALs,BIG1CALL LINK (BIG2)BIG2CALL LINK (BIG3)BIG3If not Iffinished: finished:CALL LINK (BIG2) CALL LINK (BIG4)BIG4CALL EXITFigure 65.3. A program, "BIG" , segmented into four links


Section Subsections Page65 10 60 01COMMON AreaUnusedCOMMONProgram areaLOCAL areaSOCA L areaFlipperBasic areaCore StorageThe COMMON area, because it is not over-laid,provides a means by which SOCALs, LOCALs, andLINKs may communicate with each o<strong>the</strong>r via corestorage. SOCALs and LOCALs, because <strong>the</strong>y aresubprograms, may also communicate through <strong>the</strong>arguments in <strong>the</strong> CALLing statement. One LINK,on <strong>the</strong> o<strong>the</strong>r hand, must use COMMON to pass datato ano<strong>the</strong>r LINK.You must determine what data has to be passedfrom one LINK to ano<strong>the</strong>r. If BIG1 obtains X froma card, and BIG2 requires it for a computation, Xmust be placed in COMMON. If BIG1 obtains DATEfrom a card, and BIG4 uses it in a printed summary,DATE must be passed from BIG1 to BIG2, fromBIG2 to BIG3, and from BIG3 to BIG4, even thoughBIG2 and BIG3 do not need it. In o<strong>the</strong>r words, DATE(or its equivalent) must appear in <strong>the</strong> same relativeposition in a COMMON statement in all four LINKs.To illustrate, suppose six items must be passedfrom one program to ano<strong>the</strong>r: DATE, TABLE, K,X, Y, and ANS. The following table shows how <strong>the</strong>four LINKs use <strong>the</strong>se six items:Variable Description BIG1 BIG2 BIG3 BIG4DATE Real variableTABLE Array of 100itemsK IntegerX Real variableY Real variableANS Real variableX X XXXX XThere are many different ways you can accomplishthis, <strong>the</strong> easiest being to compose one COM-MON statementCOMMMON DATE, TABLE (100), K, X, Y, ANSand include it in BIG1, BIG2, BIG3, and BIG4.Ano<strong>the</strong>r way would be to use <strong>the</strong> following COM-MON statements:in BIG1 COMMON DATE, TABLE (100)in BIG2 COMMON DATE, TABLE (100), K, X, Y,in BIG3 COMMON DATE, TABLE (100), K, X, Y, ANSin BIG4 COMMON DATE, TABLE (100), K, X, Y, ANSWRHere you see that <strong>the</strong> size of COMMON in BIG1 andBIG2 is reduced, since unneeded items are notretained. Some unneeded items (like K in BIG3)cannot be eliminated, since you must preserve <strong>the</strong>relative location (structure) of COMMON from oneprogram to <strong>the</strong> next, not just <strong>the</strong> name.Note that <strong>the</strong> name of <strong>the</strong> last variable changesfrom ANS to ANSWR in LINKing from BIG3 to BIG4.This does not matter, since only <strong>the</strong> relative positionin core storage is important, not <strong>the</strong> name.There are many o<strong>the</strong>r ways in which COMMONmay be arranged. To take advantage of <strong>the</strong> factthat BIG4 does not use X, Y, or <strong>the</strong> TABLEarray, we may usein BIG1 COMMON DATE, K, ANS, TABLE (100), X, Yin BIG2 COMMON DATE, K, ANS, TABLE (100), X, Yin BIG3 COMMON DATE , K, ANS, TABLE (100)X, Yin BIG4 COMMON DATE, K, ANSWRwhich reduces <strong>the</strong> core requirements of BIG4 by102x3 (or 2) words, depending on <strong>the</strong> precisionused.


Section Subsections Page65 10 70 01UNUSED AreaThis is whatever core storage remains after <strong>the</strong>o<strong>the</strong>r six areas have been loaded. It must be zeroor more words in length. Good programmingpractice suggests that it should be at least 100words, to provide for future growth of <strong>the</strong> MonitorSystem, <strong>IBM</strong> subroutines, and/or your programs.UnusedCOMMONProgram areaLOCAL areaSOCAL areaFlipperBasic areaCore Storage


Section SubsectionsPage65 20 00 01SUMMARYThis section has described <strong>the</strong> seven logical areasof core storage, with <strong>the</strong> emphasis on <strong>the</strong>ir overallroles ra<strong>the</strong>r than on exact details. As mentionedearlier, all quoted subroutine sizes are approximate,and are based on a so-called "typical" commercialtypeprogram, coded in FORTRAN. You should notnecessarily conclude that <strong>the</strong>se figures will apply toyour "typical" programs; <strong>the</strong>y may or may not.The bulk of <strong>the</strong> material in this chapter concernsSOCALs, LOCALs, and LINKs--how <strong>the</strong>y work.Section 90 concerns how <strong>the</strong>y should be used and how<strong>the</strong>y affect program performance.Figure 65.4 graphically summarizes what hasbeen covered in this chapter.Figure 65.5 shows a "core map", printed if youpunch an L in column 14 of <strong>the</strong> // XEQ card. Fromthis printout you can determine <strong>the</strong> exact sizes ofsome of <strong>the</strong>se packages:• The size of <strong>the</strong> Unused area is contained in<strong>the</strong> R41 message.ApproximateLogical Sub- Typical WhenArea Area Size Present CommentsMonitor Resident 740 words AlwaysMonitorTransfer VectorIn Core Subprog.Subtype 0Flipper — 100 words Only if LOCAL's orSOCA Us are usedSOCAL Overlay 1(Arith)520 words Almost always Approximate, typicalsize will be ei<strong>the</strong>r— — — — — — — — — — — — 2970 or 2450 or 1750Overlay 2 1750 words Almost always words(Non-Disk I/O)— — — — — — — — — — —Overlay 3(Disk 1/01700 words Only if Disk 1/0is usedLOCAL LOCAL No. 1 Size of Only if user in-LOCAL No. 2.largestLOCALsubprogrameludes a LOCALcardLOCAL No. nProgram Non-SOCAL or Unknown; AlwaysOr LOCAL Sub- depends onLink programs programcoding<strong>Data</strong>CommonUnusedObjectMainlineProgram—Unknown;depends onProgramcodingUnknown;whatever isleft overOnly if user ineludesCOMMONstatement onprogramSee <strong>the</strong> R41 messageof <strong>the</strong> core map forexact size• The size of <strong>the</strong> SOCAL area can be determinedfrom <strong>the</strong> largest value contained in <strong>the</strong> R43, R44,and/or R45 message.• The size of <strong>the</strong> LOCAL area may also bedetermined from <strong>the</strong> core map. If SOCALs arepresent, <strong>the</strong> size of <strong>the</strong> LOCAL area is <strong>the</strong> addressof <strong>the</strong> lowest SOCAL subroutine, less <strong>the</strong> addressof <strong>the</strong> next higher non-LOCAL. In this case itwould be 170C - 1567, or, in decimal, 5900-5479or 321 words.• Flipper (FLIPR), if present, is always <strong>about</strong>100 words in length.• The sizes of <strong>the</strong> o<strong>the</strong>r areas--Basic, Program,and COMMON--cannot easily be determinedfrom <strong>the</strong> load map.41 // XEQ PAYRO L 2*FILES112FILEN)*LOCALPAYRO,SUBW,SUBZ,SUBY1,SUBY2,SUBY341 FILES ALLOCATION1 01A3 0001 7061 FILEN22 0000 0001 7061 01A741 STORAGE ALLOCATIONR 40 03E3 (HEX) ADDITIONAL CORE REQUIROR 43 01FC (HEX) ARITH/FUNC SOCAL WO CNT41 R 44 06E8 (HEX) FI/Of I/0 LOCAL WD CNTR 45 02A2 (HEX) DISK FI/O LOCAL WD CNTR 41 00A4 (HEX) WDS UNUSED BY CORE LOAD41 CALL TRANSFER VECTORDATSW 1902 LOCAL 1SUBY3 1701 LOCALlb SUBY2 17C9 LOCALSUBY1 17C9 LOCALSUEZ 1701 LOCALSUER 1765 LOCALLIEF TRANSFER VECTORHOLTE 1EBB LOCAL 241 EADDX 1883 LOCAL 1XDD 1988 SOCAL 1FARC 1966 LOCAL 141 XMD 1924 LOCAL 1ELDX 1528NORM 1594HOLEZ 1E52 LOCAL 241EBCTB 1E4F LOCAL 2GETAD 1E06 LOCAL 2IFIX 1568PAUSE 18EC LOCAL 1ESBR 18D8 LOCAL 1411 EADD 187D LOCAL 1EDIV 1824 LOCAL 1EMPY 17F6 LOCAL 141 EDVR 170E LOCAL 1FLOAT 155ESUBSC 1540E STO 1516E LD 152CPRNTZ 1048 LOCAL 24, CARDZ 1C9E LOCAL 2WRTYZ 1062 LOCAL 2SFIO 1809 LOCAL 241 SDFIO 1885 LOCAL 3SYSTEM SUBROUTINESILSO4 00C440 ILSO2 0083ILSO1 1EC241ILSOO 1EDDFLIPR 15001487 (HEX) IS THE EXECUTIOWFigure 65. 4. Figure 65. 5.


Section SubsectionsPage70 00 00 01Section 70: <strong>1130</strong> FORTRAN AND THE COMMER-CIAL SUBROUTINESCONTENTSIntroduction 70. 01. 00Arithmetic Considerations 70.10.00General 70.10.01Integer Mode 70.10. 10Real Mode 70.10.20GeneralReal -- Floating PointReal -- Fixed PointRoundingAccuracy and MagnitudeOutput of Large Real NumbersMultiplication of Large Real NumbersDecimal Mode 70. 10. 30IntroductionGeneral PrinciplesThe Decimal Arithmetic SubroutinesAdditionSubtractionMultiplicationDivisionConstantsTesting and Modifying SignsMoving SignsComparing Decimal FieldsSummary 70.10.40Overlapped Input/Output 70. 20. 00Introduction 70. 20. 01The Commercial Subroutine PackageOverlapped I/O Subroutines 70. 20. 10GeneralRead a Card, 1442-6 or 7Punch a Card, 1442-6 or 7Select Stacker, 1442-6 or 7Print on 1132Skip on 1132Type on Console PrinterAccept <strong>Data</strong> from Console KeyboardA precaution -- IONDUsing <strong>the</strong> Overlapped I/O System 70. 20. 20GeneralOverlapping and Your ProgramFORTRAN TRACE Not PermittedAlphabetic HeadingsThe Interaction of Arithmetic and I/0 70.30.00Character Handling <strong>Techniques</strong> 70. 40. 00General 70. 40. 01Code Conversion 70. 40. 10Integer to Real -- FLOATReal to Integer -- IFIXAl to Real -- GETAl to IntegerReal to Al -- PUTInteger to AlAl to Decimal -- A1DECDecimal to Al -- DECA1Al to A2 -- PACKA2 to Al UNPACO<strong>the</strong>r Code ConversionsO<strong>the</strong>r Character Handling <strong>Techniques</strong> 70. 40. 20Editing Output -- EDITMoving <strong>Data</strong> Fields -- MOVEFilling a Field with a SpecificCharacter -- FILLComparing Alpha Fields -- NCOMPMatch/No Match Alpha CompareHigh/Low/Equal Alpha CompareWorking with Zone Punches -- NZ ONEThe NZ ONE SubroutineFORTRAN Core Saving Tips 70. 50. 00General 70. 50. 01Reducing Program Size 70. 50. 10Use <strong>the</strong> DATA StatementKeep FORMAT Statements CompactCode Efficient I/0 StatementsAvoid Long Subroutine ArgumentListsAvoid Arithmetic with VariablesHaving Constant SubscriptsReducing Subroutine Requirements 70. 50. 20Raising a Real Number to a WholePowerSQRT vs **. 5Don't Include Unneeded I/O Deviceson *IOCS CardRemove FIND Statements If YouHave SOCAL's or LOCAL'sRemove <strong>the</strong> TRACE from ProductionStatus ProgramsFORTRAN Execution Times 70. 60.00<strong>Processing</strong> 70. 60. 10Summary and Conclusion 70. 60. 20


Section SubsectionsPage70 0 1 00 01INTRODUCTIONThe primary purpose of this chapter is to discuss<strong>the</strong> use of <strong>1130</strong> FORTRAN in a commercial environment.Many of <strong>the</strong> topics, however, will also be ofuse to <strong>the</strong> technically oriented user. Topics include:• Arithmetic considerations -- a discussion ofinteger, real, and decimal arithmetic, with particularattention to <strong>the</strong> accuracy and magnitude ofnumerical values• Input/output--explaining <strong>the</strong> overlapped I/Osubroutines and how <strong>the</strong>y can improve performance• The interaction between input/output andarithmetic• Core storage saving tips for FORTRANprogrammers• Estimating run time of FORTRAN programs


Section Subsections Page70 10 01 01ARITHMETIC CONSIDERATIONSGeneralOf prime interest to commercial <strong>1130</strong> users is <strong>the</strong>precision and accuracy of <strong>the</strong>ir arithmetic calculations.Many engineering and scientific applicationshave very little need for answers with morethan five or six digits of accuracy. Much of <strong>the</strong>input data comes from physical measurements (6.34pounds, 18.97 inches, etc.) that are only approximateanyway, so <strong>the</strong> resulting answers (with some exceptions)must also be considered approximate.However, in an accounting application,$713,403.14 is exactly that--$713,403.14. If youadd up your sales by area, by salesman, by item,by customer, etc. , <strong>the</strong> grand total for each hadbetter be <strong>the</strong> same, right down to <strong>the</strong> last penny.For this reason, commercial programmers mustbe familiar with <strong>the</strong> ways <strong>the</strong> <strong>1130</strong> does arithmetic,and aware of <strong>the</strong>ir advantages and disadvantages.For purposes of discussion, three are four waysto do arithmetic on <strong>the</strong> <strong>1130</strong> system:Integer modeReal mode, floating pointReal mode, fixed pointDecimal mode


Section SubsectionsPage70 10 10 01Integer ModeAn integer is defined as a whole number, a numberwith no fractions. Using <strong>1130</strong> FORTRAN, integersare limited to a magnitude of +32767 to -32768.This range is due to <strong>the</strong> fact that an integer must fitin one 16-bit word. 32767 is <strong>the</strong> largest positivenumber that can fit in one word (0111111111111111,where <strong>the</strong> first bit represents <strong>the</strong> sign); -32768 is<strong>the</strong> largest negative number.Because of <strong>the</strong>se two limitations (magnitude, andlack of fractions) you must be careful in your use ofinteger mode arithmetic. Integer mode is generallyused for counters and indicators. However, if youdesire to keep track of <strong>the</strong> position of <strong>the</strong> decimalpoint yourself, you can use integer arithmetic toprocess data with implied decimal points.For example, if you know that pay rates at yourcompany range from $1.25 to $6.50 per hour, youcould represent <strong>the</strong>se rates as integers ranging from125 to 650 cents per hour. If rates ranged from$1.250 to $6.500 per hour, with some rates involvingfractions of cents (say $3.375 per hour), <strong>the</strong>ycould be represented as integers from 1250 to 6500mills per hour.Since mixed mode arithmetic is permitted in <strong>1130</strong>FORTRAN, <strong>the</strong>re is no problem involved in multiplying<strong>the</strong> integer IRATE by <strong>the</strong> real HOURS:PAY = HOURS * IRATEIf IRATE is 3125 ($3.125 per hour) and HOURS is33.5, PAY will be 104687.5. After <strong>the</strong> multiplicationyou must be careful to reposition <strong>the</strong> decimalpoint in <strong>the</strong> proper place ($104.6875) and round off($104.69) before printing <strong>the</strong> result or accumulatingtotals.


Section Subsections Page70 10 20 01Real ModeGeneralA real number may be defined as a number with adecimal point; fractions are allowed. If you use <strong>1130</strong>FORTRAN for real arithmetic, <strong>the</strong> arithmetic subroutineswill keep track of <strong>the</strong> decimal point for you,and <strong>the</strong> output subroutines will place it in <strong>the</strong> properplace in <strong>the</strong> output results.On <strong>the</strong> <strong>1130</strong>, a real number may be thought of ashaving four components:1. The whole portion2. The fractional portion3. A pointer indicating <strong>the</strong> location of <strong>the</strong>decimal point4. A positive or negative signFor example, <strong>the</strong> number 267.4 has:1. A whole portion, 2672. A fractional portion, .43. A pointer indicating that <strong>the</strong> decimal pointis between <strong>the</strong> 7 and <strong>the</strong> 44. A positive signSince <strong>the</strong> <strong>1130</strong> is a binary computer, <strong>the</strong>se fourcomponents are represented in binary form asfollows:• The 267 as 100001011• The .4 as . 011001100110--• A pointer of 9 showing that <strong>the</strong> binary point isbetween <strong>the</strong> ninth and tenth bits• The sign is positive (a 0 bit)Rearranging and simplifying somewhat, this canbe written as (9, +, 100001011, .011001100110----)The first value, <strong>the</strong> 9, is , in decimal, <strong>the</strong> numberof bits in <strong>the</strong> whole portion; <strong>the</strong> second item is <strong>the</strong>sign; <strong>the</strong> third value is <strong>the</strong> whole portion itself; <strong>the</strong>last value is <strong>the</strong> fraction.The number of bits available for <strong>the</strong> whole and fractioncombined depends on <strong>the</strong> precision option selected:• Standard precision allots 23 bits for <strong>the</strong>setwo items.• Extended precision allots 31 bits for <strong>the</strong>m.The whole portion of <strong>the</strong> number, since it is moresignificant, gets first choice of <strong>the</strong> available bits.In this case, <strong>the</strong> whole portion (267) requires 9 bits,leaving ei<strong>the</strong>r 14 or 22 bits for <strong>the</strong> fraction, dependingon <strong>the</strong> precision chosen.This can cause inaccuracies, since most fractionscannot be represented exactly in 14 or 22 bits, or inany number of bits, for that matter. To see why,let us see how .4 in <strong>the</strong> above example is representedin binary notation. You are probably familiarwith <strong>the</strong> binary system for whole numbers (1,2,4,8,16,32, etc., or 2 , 2 1 , 2 2 , 2 3 , 24 , 2 5 , etc.,respectively). In <strong>the</strong> case of fractions, <strong>the</strong> valuesproceed from <strong>the</strong> decimal (or binary) point to <strong>the</strong>right as 1/2, 1/4, 1/8, 1/16, 1/32, etc., or 2-1,2- 2 , 2- 3 , 2-4 , 2- 5 , etc., respectively.For example, .625 is.1010000000or 1/2 plus 1/8or .5000 plus .125.It can be represented exactly in only three bits;however, this is unusual.The example, .4, appears to be a ra<strong>the</strong>r simplenumber, and you might think that it also can be representedexactly as a binary fraction. The tablebelow shows that this is not true:Bit Used = 1Position Value Not Used = 0 Subtotal1 .5 0 .02 .25 1 . 253 .125 1 .3754 .0625 0 .3755 .03125 0 .3756 .015625 1 .3906257 .0078125 1 .39843758 .00390625 0 .39843759 .001953125 0 .398437510 .0009765625 1 .399414062511 .00048828125 1 .3999023437512 .000244140625 0 .39990234375You see that <strong>the</strong> binary representation can comeclose to .4 but never hit it. With 12 bits(.011001100110) <strong>the</strong> decimal value is . 39990234375;with 16 bits, .399993896484375; with 20 bits,.3999996185302734375; etc.The fraction chosen, .4, is not anunusual number;it is typical of most fractions.Unlike fractions, whole numbers can be representedexactly in binary form. However, you do reach alimit, depending on <strong>the</strong> number of bits available. Instandard precision, if you use all 23 bits for <strong>the</strong>whole portion, you can attain a magnitude of8,388,607. With extended precision, <strong>the</strong> 31 availablebits yield 2,147,483,647.


Section SubsectionsPage70 10 20 02Real--Floating PointThe term "floating point" implies that <strong>the</strong> decimalpoint is permitted to "float" among <strong>the</strong> digits in areal number. In o<strong>the</strong>r words, <strong>the</strong> <strong>1130</strong> arithmeticsubroutines will keep track of <strong>the</strong> location of <strong>the</strong>decimal point and move it <strong>about</strong> to maintain <strong>the</strong>validity of <strong>the</strong> number. If you multiply $1.78 perhour by 32.20 hours, <strong>the</strong> answer becomes $57.3160.The decimal point "floats", thus remaining correctlypositioned at all times.As you saw before, though, <strong>the</strong> result may not beexact, since .316 probably cannot be representedexactly as a binary number. In fact, <strong>the</strong> 1.78 and<strong>the</strong> 32.20 were both probably inexact, too.If you are doing an engineering or o<strong>the</strong>r noncommercialjob, <strong>the</strong> answer is probably good enough;it matters little whe<strong>the</strong>r <strong>the</strong> result is 57.316000 or57.316003 or 57.315999. If your application is commerciallyoriented, however, close is not goodenough, since you are probably dealing with cash.Because accounting balances are so important,answers must be exact, down to <strong>the</strong> last unit(penny, box). It is not that people will worry <strong>about</strong><strong>the</strong> penny itself, but that unbalanced totals traditionallyindicate an error. If <strong>the</strong> face value of600 payroll checks totals $12345.67, while <strong>the</strong>system's grand total is $12345.68, something maybe seriously wrong somewhere. The fact that <strong>the</strong>net error is only one cent is immaterial; <strong>the</strong>remay be 300 people overpaid by one cent, and 299underpaid by one cent.Real--Fixed Point 'To eliminate <strong>the</strong> inaccuracies described above, youcan use real arithmetic in a "fixed point" mode."Fixed point" means that <strong>the</strong> decimal point is keptfixed to <strong>the</strong> right of <strong>the</strong> least significant digit, eliminatingfractions altoge<strong>the</strong>r.Earlier, you saw that 1.78 times 32.20 gave57.3160, an answer that probably was inexact. If,however, you had used real, fixed point arithmetic,you would have multiplied 1 A78. by 3A220. , andobtained 57A3160. , exactly. <strong>All</strong> three numbers,since <strong>the</strong>y involve no fractions, will be exact, notjust close. Note that <strong>the</strong> A is used to locate <strong>the</strong>implied decimal point.This puts a slight burden on your programmer:instead of letting <strong>the</strong> subroutines keep track of <strong>the</strong>decimal point for him, he must now do it himself.Using <strong>the</strong> values mentioned above, 1.78 times32.20 is 57.3160 (dollars), while 1 A78. times 32A20.is 57A3160. (ten thousandths of dollars). In <strong>the</strong>latter case, you must remember that <strong>the</strong> truedecimal point is four places to <strong>the</strong> left of <strong>the</strong> onesupplied by <strong>the</strong> system.


Section Subsections Page70 10 20 03RoundingSuppose you have just calculated an employee's grosspay as 107A5673. (understood to be $107.5673) andwish to apply a deduction of $19.733 (represented as19A733.). Notice that <strong>the</strong> decimal points are not"lined up"; <strong>the</strong> units are not <strong>the</strong> same--<strong>the</strong> gross isin hundredths of cents, and <strong>the</strong> deductions are intenths of cents.How do you perform this subtraction?a. 107A5673. - (19A733. x 10.)b. (107A5673. /10.) - 19A733.c. (107A5673./10000.) - (19A733./1000.)None of <strong>the</strong>se is correct. Before subtracting, youmust round <strong>the</strong>se two quantities -- commonly to <strong>the</strong>nearest cent.In <strong>the</strong> case of <strong>the</strong> 107A5673. gross, you must add1/2 cent or 50. hundredths, obtaining 107A5723.,<strong>the</strong>n divide by 100, to get 107A57.23. Now, since<strong>the</strong> .23 is both inexact and meaningless, it must beeliminated. The WHOLE function supplied with <strong>the</strong>Commercial Subroutine Package converts <strong>the</strong>fractional part of <strong>the</strong> number to zeros.<strong>All</strong> three functions-- round, shift and clearfractions -- can be done in one statement. ThestatementGROSS = WHOLE ((GROSS + 50. )*0.01+0.5)rounds off GROSS, shifts it two places to <strong>the</strong> right,and clears everything remaining to <strong>the</strong> right of <strong>the</strong>decimal point to zeros. Note that multiplicationra<strong>the</strong>r than division was used (see Section 70.50.00).In <strong>the</strong> case of <strong>the</strong> deduction, you would sayDEDUC = WHOLE ((DEDUC +5.) *0.1+0.5)Now both values have been rounded and are in wholecents, with all extraneous fractions cleared. Notewhat would have happened if <strong>the</strong> fractions had notbeen cleared:10757.231973.808783.43The correct answer is:10757.000001973.000008784.00000You may wish to code several arithmetic statementfunctions, each one shifting a predetermined numberof places to <strong>the</strong> right:RND1 (X) = WHOLE ((X+X/ABS(X)*5.0)/10. +0.5)RND2(X) = WHOLE ((X+X/ABS(X)*50.0)/100. +0.5)RND3 (X) = WHOLE ((X+X/ABS(X)*500.0)/1000. +0.5)etc.where <strong>the</strong> fourth character of <strong>the</strong> FUNCTIONname indicates <strong>the</strong> number of places to be shifted.Accuracy and MagnitudeSuppose you are using extended precision realnumbers, where 31 bits are available for <strong>the</strong> wholenumber and fraction combined. How large a numbercan you have? 2,147,483,647? No, that is just<strong>the</strong> largest number that can fit in 31 bits. Valuesmuch larger are possible-- for example,1,000,000,000,000,666,777,888. , which can easilybe handled in <strong>the</strong> <strong>1130</strong>.The decimal point indicator can be as large as64 in binary, or <strong>about</strong> 38 in decimal, meaningthat extremely large real numbers can be representedon <strong>the</strong> <strong>1130</strong>.The drawback is <strong>the</strong>ir accuracy. Especially incommercial applications, numbers must be precise.The number 1,000,000,000,000,666,777,888. can beread into <strong>the</strong> <strong>1130</strong>, but it will be accurate only tonine or ten decimal digits. In o<strong>the</strong>r words, <strong>the</strong> ninemost significant digits will be retained, but <strong>the</strong> remainingdigits will be lost. The decimal point indicatorwill show <strong>the</strong> proper magnitude, but <strong>the</strong>number is not accurate.If you want accurate results, you must not exceed<strong>the</strong> 31 bits (2,147,483,647.) or 23 bits (8,388,607.)available.Fur<strong>the</strong>rmore, if you want accurate numbers, youmust not allow any fractions to be generated.Combining <strong>the</strong> above two warnings, <strong>the</strong>n, meansthat you should limit real numerical values to <strong>the</strong>whole numbers between -2,147,483,648. and+2,147,483,647. Any number outside this rangewill probably not be exact; most fractions willprobably be inexact.If you work commercial problems in cents, youare limited to $21,474,836.47 (carried as a whole ,fixed point real number). The limit is $2,147,483.647if you wish to work in mills.These limits are usually ample for jobs such aspayroll, etc. , but may be troublesome inaccounting-type work, where year-to-date sales,total assets, etc. , may exceed $21 million. If thisis <strong>the</strong> case, <strong>the</strong> decimal arithmetic subroutines of<strong>the</strong> <strong>1130</strong> Commercial Subroutine Package may beused.


Section SubsectionsPage70 10 20 04Output of Large Real NumbersA second precaution must be taken with very largenumbers, and it falls in <strong>the</strong> area of output. Becausemost fractions are inexactly represented and willalways be less than <strong>the</strong> true decimal value, <strong>the</strong>FORTRAN output routines (including <strong>the</strong> TRACE)always add a single bit in <strong>the</strong> low-order position of<strong>the</strong> number, attempting to compensate for thisinaccuracy. For this reason, you rarely notice <strong>the</strong>inaccuracy.For example, if you multiplied 0.35 by 100.0,you would expect to get 35. , exactly. The binaryresult, however, converted to decimal, is34.9999999999999999757138713...(because <strong>the</strong> multiplier of 0.35 is an inexactfraction). That is not <strong>the</strong> result you see, though,since <strong>the</strong> FORTRAN output routine adds its one loworderbit, resulting in35.0000000298023223634091838...Although that is no more exact than <strong>the</strong> previousvalue, it looks better; in fact, you would nevernotice <strong>the</strong> extra.0000000298023223876953125unless you output <strong>the</strong> number with a format likeF40.20, which would be unusual.If your number is large, however, this "littleextra" can cause <strong>the</strong> output to be noticeably in error.For example, <strong>the</strong> whole number 2111111111. , whilerepresented exactly in core storage, will be outputas 2111111112. , an error of 1. unit.This problem will occur with numbers in <strong>the</strong>range 1,073,741,824. to 2,147,483,647. if <strong>the</strong>y areoutput with a standard FORTRAN F format. Forthis reason, you may wish to limit <strong>the</strong> magnitude ofall numbers to 1,073,741,824. , or, easier toremember, nine digits (999,999,999.)This problem does not occur if <strong>the</strong> value is printedas alphabetic data, converted by <strong>the</strong> PUT subroutineof <strong>the</strong> Commercial Subroutine Package. Thisroutine will not add <strong>the</strong> extra bit, and all wholenumbers up to 2,147,483,647. will be output exactly.Multiplication of Large Real NumbersBecause of <strong>the</strong> manner in which <strong>the</strong> <strong>1130</strong> performsmultiplication, a product is accurate only to 30 bits.This means that a product exceeding 1,073,741,823.may not be exactly correct. In fact, <strong>the</strong>re is a 75-25chance that it will be correct, and a 25-75 chancethat it will be off by 1. unit.While this is quite satisfactory for technicalwork, it cannot be permitted in most commercialapplications. For this reason, you should avoidmultiplications that might yield such a large product.Note that this limitation does not apply to additionand subtraction, where all 31 bits may be used -and <strong>the</strong> upper limit is 2,147,483,647.


Section Subsections Page70 10 30 01Decimal ModeIntroductionIn addition to integer and real mode arithmetic,<strong>the</strong>re is a third alternative: decimal arithmetic.This capability is furnished by a group of subroutinessupplied with <strong>the</strong> Commercial SubroutinePackage (<strong>1130</strong>-SE-25X). This mode of arithmeticpermits variable precision.Using <strong>the</strong> decimal arithmetic system, you select<strong>the</strong> number of digits to be used for each variable.If a grand total can attain a magnitude of 15, 000,000,000.00, you can allocate 13 digits for it; if <strong>the</strong>number of employee dependents never exceeds 99,you may allocate only two digits for that value.You are not limited by magnitudes of 32767,2, 147, 483, 647. , etc. You decide how large anumber can become and set aside enough digitsfor its storage.General PrinciplesThis arithmetic system operates on digits storedas integers, one digit per word. For example, <strong>the</strong>value 1968 would be stored in a four-position arrayNYEAR asNYEAR (1) = 1NYEAR (2) = 9NYEAR (3) = 6NYEAR (4) = 8or in a six-position array asNYEAR (1) = 0NYEAR (2) = 0NYEAR (31 = 1NYEAR (4) = 9NYEAR (5) = 6NYEAR (6) = 8or in any size array you desire.Negative values carry <strong>the</strong> minus sign with <strong>the</strong>low-order (or rightmost) digit. However, since<strong>the</strong> <strong>1130</strong> cannot represent -0, a special method hasbeen devised to show negative numbers. If <strong>the</strong>number is negative, <strong>the</strong> low-order digit is carried asone less than its true value.For example, -1968 is actually held in corestorage asNYEAR (1) = 1NYEAR (2) = 9NYEAR (3) = 6NYEAR (4) = -9For ease of reference, we will refer to this as1968, where <strong>the</strong> minus sign is written over <strong>the</strong>low-order digit.You need not worry <strong>about</strong> this unless you are definingnegative constants, which should be unusual.If a negative number is read from a card, this conversionwill be done for you, with <strong>the</strong> AlDECsubroutine.The magnitude of each value will be shown by <strong>the</strong>number of digits: 001968 implies a six-digit orsix-word value, 0000001968 implies a ten-wordvalue.Each decimal arithmetic value requires threeidentifying parameters:• The NAME of <strong>the</strong> array in which it is stored.• KSTRT, <strong>the</strong> position (or subscript) of <strong>the</strong>high-order (leftmost) digit in <strong>the</strong> array.• KLAST, <strong>the</strong> position of <strong>the</strong> low-order digit in<strong>the</strong> arrayWhen referring to decimal arithmetic values, ashorthand abbreviation will be used, enclosing <strong>the</strong>sethree parameters in paren<strong>the</strong>ses:(NAME, KSTRT, KLAST)For example, if you had a 20-word array calledNUMBR:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 200 0 0 1 3 6 4 3 0 0 7 7 8 3 0 0 0 8 1 3<strong>the</strong>n(NUMBR, 1, 6) = 000136 or -136(NUMBR, 1, 5) = 00013 or 13(NUMBR, 7,19) = 4300778300081(NUMBR, 15, 20) = 000813 or -813


Section SubsectionsPage70 10 30 02The Decimal Arithmetic SubroutinesThe <strong>IBM</strong> <strong>1130</strong> Commercial Subroutine Package furnishessubroutines to perform <strong>the</strong> following fourarithmetic operations:ADD to add two decimal valuesSUB to subtract two decimal valuesMPY to multiply two decimal valuesDIV to divide two decimal values<strong>All</strong> four have similar calling sequences, requiringthree basic elements:The identification of <strong>the</strong> first variableThe identification of <strong>the</strong> second variableAn error codeSince <strong>the</strong> identification of each variable requiresthree parameters (e.g., NUMBR, 1, 6), each subroutinehas a total of seven parameters.If no error conditions occur, <strong>the</strong> subroutineleaves <strong>the</strong> error code, NER, set to whatever valueit had when <strong>the</strong> subroutine was called. Note that <strong>the</strong>subroutines merely set <strong>the</strong> indicator NER. Theydo not pause, print a message, or take any o<strong>the</strong>rdefinite action. It is up to you to set NER beforecalling <strong>the</strong> subroutines, and to test it after each iscomplete.Addition. The general form of <strong>the</strong> ADD subroutineisCALL ADD (addend, augend, error code)where <strong>the</strong> addend is added to <strong>the</strong> augend, and <strong>the</strong>result is left in <strong>the</strong> augend.There are two possible error conditions. Bothare illustrated in <strong>the</strong> accompanying examples (Figures70.1 through 70.6).Subtraction. The general form of <strong>the</strong> Subtractsubroutine isCALL SUB (subtrahend, minuend, error code)where <strong>the</strong> subtrahend is subtracted from <strong>the</strong> minuend,and <strong>the</strong> result replaces <strong>the</strong> minuend.There are two possible error conditions. Bothare included in <strong>the</strong> accompanying examples (Figures70.7 through 70.11).Multiplication. Because of its nature, multiplicationis somewhat more involved than addition andsubtraction. For example, if you multiply twotwo-digit numbers, 95 and 86, your result is 8220,a four-digit number. If you multiply a three-digitnumber, 666, by a two-digit number, 55, youranswer is 36630, a five-digit number. The resultof a multiplication, <strong>the</strong> product, may have as manydigits as <strong>the</strong> sum of <strong>the</strong> number of digits in <strong>the</strong>multiplier and <strong>the</strong> multiplicand. Therefore, youmust provide that many digits for <strong>the</strong> result.The MPY subroutine accomplishes this in a verystraightforward manner. The multiplicand field,which will be <strong>the</strong> eventual location of <strong>the</strong> product,is extended to <strong>the</strong> left <strong>the</strong> same number of digits asare contained in <strong>the</strong> multiplier. For example, ifyou multiply a four-digit number by a two-digitnumber, <strong>the</strong> subroutine will extend <strong>the</strong> four-digitfield to <strong>the</strong> left two places, to hold <strong>the</strong> six-digitproduct.It does this regardless of what was in <strong>the</strong>se positionspreviously. Obviously, you must consider thisfact when laying out your data areas in core storage.Figures 70.12 and 70.13 present several examplesof <strong>the</strong> use of <strong>the</strong> MPY subroutine.Division. The divide subroutine, DIV, has <strong>the</strong>calling sequenceCALL DIV (divisor, dividend, error code)with <strong>the</strong> result placed in <strong>the</strong> dividend field.Before covering <strong>the</strong> DIV subroutine, a quick reviewof division might be in order. If you divide13 by 4, <strong>the</strong> result is 3 1/4, where13 is <strong>the</strong> dividend4 is <strong>the</strong> divisor3 is <strong>the</strong> quotient1 is <strong>the</strong> remainderIn o<strong>the</strong>r words:dividend remainder- quotient +divisor divisorThis is <strong>the</strong> form of <strong>the</strong> result after use of DIV --a quotient of 3 and a remainder of 1. Note that <strong>the</strong>result is not 3.25. For this reason special caremust be taken when half-adjusting <strong>the</strong> result of adivision. Also note in Figures 70.14 through 70.17that <strong>the</strong> length of <strong>the</strong> remainder field will be <strong>the</strong>same as <strong>the</strong> length of <strong>the</strong> divisor.


Section Subsections Page70 10 30 03DESCRIPTION<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETBEFOREX = Extraneous <strong>Data</strong>!WORK: Will remain unchanged1 2 3 4 5 6 7 8 9 10 11KWORK: Will contain result1 2 3 4 5 6 7 8 9 10 11 12 13CODING441 ADDEND ► 40 AUGEND, THEN SUM 811.NER =CALL(41 SUBTRAHEND MINUEND, THEN SUM •"la MULTIPLIERII. 7MULTIPLICANDTHEN PRODUCT411 DIVISOR caw — DIVIDEND, _iti.rTHEN QUOT AND REMA(.._____.....).________‘9 9 9 99 _ 9tNER,AFTERIWORK: Unchanged1 2 3 4 5 6 7 8 9 10 11NER = FY-1KWORK: Result 11 2 3 4 5 6 7 8 9 10 11 12 13COMMENTS


Section SubsectionsPage70 10 30 04<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION /100/7/OA/ OF 774/e2 A/ 1/E-1)/GI7 FEEL D5BEFORE!WORK:X = Extraneous <strong>Data</strong>Will remain unchanged1 2 3 4 5 6 7 8 9 10 11KWORK: Will contain result00036000/300049O0 0 / X X X 1 2 3 4 5 6 7 8 9 10 11 12 13X X xaeo 6xxxNxCODINGADDENDtAUGEND, THEN SUMSUBTRAHENDMINUEND, THEN SUMNER= c,CALL m42-V (.274/aee / 3 A14/0.47,e .5( e1 9 9 —7 9NE R )AFTER!WORK:1 2 3 4 5 6 7 8 9 10 11KWORK: ResultNER =DO/ 3 XXX XX 1 2 3 4 5 6 7 8 9 10 11 12 130XX X001 Xxxx XCOMMENTSNER /$ STILL 0, SO THEA DD/7/0/V Wid9.5 CORRECT.Figure 70, 1,


Section Subsections Page70 10 30 05<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION 4,47„0/7762A/ e2,4-- Ty/c7 ;1 - 2...)/Gi 7- PZEZ OS,"V/1E/PE ONE /,5" A/E-6-4,-/ve-. sszmix572a5/7-7v.E'BEFORE X = Extraneous <strong>Data</strong>003000 260004!WORK: Will remain unchanged1 2 3 4 5 7 8 9 10 11XXxXCO2 g X X KKWORK: Will contain result1 2 3 4 5 6 7 8 9 10 11 12 13THEE /5ACTUALLYINCORE 57-oeAGEAS-7OOgOXxxxxxX XCODINGADDENDAUGEND, THEN SUM1SUBTRAHENDMINUEND, THEN SUMNER= DCALL ADD (Z 14/622/r.5 ,53 fr-14/e).ek-- / .•9 - 9 9 9-9 t1 )AFTERNER =IWORK: IIV''''.....a..94...1 2 3 4 5 6 7 8 9 10 11KWORK Result /X x X X D 0 2 6 , X X X 1 2 3 4 5 6 7 8 9 10 11 12 13o0004x xxx XXXXXCOMMENTSFigure 70, 2


Section Subsections Page70 10 30 06<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION OF 771/42 6--z;v6-/ 7- 2,5,'4 ONE' /5 /1/6-G.4 77 VE7 Sat, /5 /1/6 -6,471 /Z.BEFORE X = Extraneous <strong>Data</strong> - 0000650000 /- 000055!WORK: Will remain unchanged2 4 6 7 8 9 10 11KWORK Will contain resultX x 1 4 5 6 8 -10 11 12 130 0 0 x xD O 0 6 5THE 3" /5 /A/ co,E,STORAGE AS-6CODINGADDENDSUBTRAHENDAUGEND, THEN SUMMINUEND, THEN SUMNER =OCALL /OD (z-frvo,e, 9 / 9 44/40, t / 9 6 9 NER )AFTERIWORK:1 5 6 7 9 10 110 O O x XCOMMENTSKWORK Result 1NER =1 2 3 4 5 6 7 9 10 11 12 13O O 0 5 X X X X x1W COPE 4.5-6Figure 70, 3.


Section Subsections Page70 10 30 07<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION ADO/r/O/V OA- A _1 - D/ • / 7 - / -/L---"z D 7e:, A„5--z7/d/7- A---tezG; eo7-/-7/ /C7C:2-5/77i/BEFORE X = Extraneous <strong>Data</strong> 000 7 7/000 78IWORK: Will remain unchanged1 2 3 4 5 6 7 8 9 10 11x x .1 x >< X X XKWORK: Will contain result1 2 3 4 5 6 7 8 9 10 11 12 13xxxxx xCODINGADDEND AUGEND, THEN SUMSUBTRAHENDMINUEND, THEN SUMNER = c,CALL A z)z) (1-WO,EDA 9 —5 9 -5 9AWD,fw 9 / 9 -5- NER )l 9L------Y---)L—Y—CAFTERIWORK:1 2 3 6 7 8 9 10 11xxxxiXx X XX XNER = I 0 IKWORK: Result1 2 3 4 5 6 7 8 9 10 11 12 130 0 0 76 xxxxx X X >


Section SubsectionsPage70 10 30 08<strong>1130</strong> COMMERCIAL SUBROUTINES - DECIMAL ARITHMETIC WORKSHEETDESCRIPTION -.,4/2Z)/7/at/ 2/ 774411:7 2-2)/G/7- /-/ZZ..e:)s-51//1 POE:5 4/07' . -17-- /A/ -4ZZDTTE.2) APEABEFOREX = Extraneous <strong>Data</strong>SO75IWORK: Will remain unchanged1 2 3 4 5 6 7 8 9 10 11KWOR K. Will contain resultx X x 7 .5 xxxX X 1 2 3 4 5 6 7 8 9 10 11 12 13X50 X x x x x x x X X XCODINGADDENDSUBTRAHENDAUGEND, THEN SUMMINUEND, THEN SUMAFTERNER= (9CALL „eiRp (zwc2E,e< 4 ,...5-- A-kve2ex 2 5. 9 — 9 — 9 9 9L---y.---)L)9NER =!WORK:1 2 3 471 5 6 7 10 11KWORK. ResultX x 5 X X )( )( X X 1 2 3 4 5 6 7 8 9 10 11 12 13NERjX 99xxxxxx xxxX)COMMENTS— 777/E. 514ki .444 /5 A-/Z.LEZ) 1V/7/7/ 9_s--NEA7 45- ,5Ē7- TD THE v4Z l./E Oz' ?WECc ''.4 /C2.4/e4/Pie-7-nide*Figure 70.5.


Section Subsections Page70 10 30 09<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION ,4Z3Z2/77aA/ C2. --4 0. 0 EA/Z2 /5TWO ,/EL OS, , /4//.1.4%:?E' 7:4 4--ZOA/e",Q TA/4/V 7.47 -- A t/GEA/Z7BEFOREX = Extraneous <strong>Data</strong>0008+00660IWORK: Will remain unchanged1 2 3 4 5 6 7 8 9 10 11KWORK: Will contain resulto 6 80X XX X X 1 2 3 4 5 6 7 8 9 10 11 12 130008 XXXX xxXCODINGADDEND Il■ AUGEND, THEN SUMt SUBTRAHENDMINUEND, THEN SUM•NER= 6CALL 4.0,0 ..714/0,9A--- / ,....6- A-74/4240/1- / ¢9%---v---)L)NERAFTERifNER = F71IWORK:1 2 3 4 5 6 7 8 9 10 11KWORK: Result0068 )1/XX X X 1 2 3 4 5 6 7 8 9 10 11 12 13000cSXXxxXxx XCOMMENTSA/07-E- z/4"-/V TA/DC/GA/ 7",‘,.-- A7z3 eyz 7; 668,1/1/0/Z Z.) A/7" //V - ,/G-/73, Th/E4.0.17sexe,e0L./7-/A/E 11//L L. A/7- .4.0.0, 574/ce--TA/As /$ 41 /C)c77-E4/744LL > 2),4A/0--zPov.5--sire./..vr/o.c./. //ER /s s7-- TD 4f.Figure 70. 6.


Section SubsectionsPage70 10 30 10<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION „5. ./.3 7,e,4 C7" 6:7/v .- ,5--,z7/G7 7- .--*/--z,c) ic-,43o4is- z;/o./7- A7EZZ),o/vori-iz*.e .BEFORE X = Extraneous <strong>Data</strong> 6700/4'— 00043' 0 00 6;4!WORK: Will remain unchanged1 2 3 4 5 6 7 8 9 10 11KWORK: Will contain resultXxxx00 c; / 8 Z X 1 2 3 4 5 6 7 8 9 10 11 12 13oovi 4CODINGADDEND • AUGEND, THEN SUMSUBTRAHENDMINUEND, THEN SUMNER =e2_ThCALL sag (ifrvaeg .....3- 9 9 A-14/04',5" 9 /3 NER )9 19 ••—• 9y----) L_________y_____) F__IAFTERadlle!WORK:1 2 3 4 5 6 7 8 9 10 11NER =XXXX00 /6/XXKWORK. Result1 2 3 4 5 6 7 8 9 10 11 12 13xx XxxxXx00004C.2COMMENTSFigure 70, 7.


Section Subsections Page70 10 30 11<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION ,.5-eze7-,e4c 7- OA/ z- Ao _ 2,/ a / 7 ,cye-z D fr-;e6:74,-,4 /Z-Z7//7 , -/E-L2). /9±-3-e/z 7 As 4ve-a47/1/ZBEFOREX = Extraneous <strong>Data</strong>000005555555___p o o 66 ‘ 66 6(WORK: Will remain unchanged-00000 / / / / / / /1 2 3 4 5 6 7 8 9 10 11O 0 a 6 6 6 6 XKWORK: Will contain result2 3 4 5 6 7 8 9 10 11 12 13X DC' 0 D 4 555 5 -5- 5CODINGADDEND►AUGEND, THEN SUM -11111.rj SUBTRAHENDMINUEND, THEN SUM -IIII.NER = 0______A____ThCALL Se/8 (.7WOR y /e,/41/PRA 2 45 NER )AFTER!WORK:1 3 4 5 6 8 9 10 11O o o 6 66 6 6 XKWORK ResultCOMMENTSNER = 01 2 3 4 5 6 7 8 9 10 11 12 13xo00 / /// //1i /..5" /4/ C 0,ee 4 5 2,ieFigure 70. 8.


Section SubsectionsPage70 10 30 12<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION Se./.57:4,16-7- '4 ,C/EL 0 FOP 2412-1)/G/ 7- E/ELD.BEFORE X = Extraneous <strong>Data</strong> 09- 003IWORK: Will remain unchanged2 3 5 6 8 9 10 11KWORK Will contain result1 2 3 4 5 6 7 8 9 10 11 12 13X X X X X X. X x0 0 3 X x X X11CODINGADDENDAUGEND, THEN SUMSUBTRAHENDMINUEND, THEN SUM,NER =CALL SeigAFTERIWORK:2 3 4 5 6 7 8 9 10L0 3 x >


Section Subsections Page70 10 30 13<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION 5e/4:37-A2,4c7- 4 A/G4 77 1/E ,.. - . 0 / & / 7- , -,/, -'z z)FAPOAd 4 /70,57771/E .0 - Z3/G/7" ,-,,--4.,e3,BEFOREX = Extraneous <strong>Data</strong>c,988— (-45)/ 033(WORK: Will remain unchanged1 2 3 4 5 6 7 8 9 10 11KWORK Will contain resultX X X X a SXX X 1 2 3 4 5 6 7 8 9 10 11 12 13.3" As /A/coREAs-6X XXX095 XXXCODINGADDENDrj SUBTRAHENDaAUGEND, THEN SUMMINUEND, THEN SUM•NER= C2CALL Se/e (.7-WaqH 9‘:'- , 0 1-1/f/k),zl 9-5 9e —r- 9NER )AFTERNER = c,!WORK:1 2 3 4 5 7 8 9 10 11KWORK ResultX XXXXO45XXX 1 2 3 4 5 6 7 8 9 10 11 - 12 13›( X x 1 O3 3 / X X, XCOMMENTSFigure 70, 10,


Section SubsectionsPage70 10 30 14DESCRIPTION<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETSUBTRACT A NEGATIVE 2- D/G/T F/ELDFROM A POZ/T/VE 2-0/6/T FIELD.RE,SULTTOOLAe6S.BEFOREX = Extraneous <strong>Data</strong>88(---)- 68IWORK: Will remain unchanged1 2 3 4 5 6 7 8 9 10 11KWORK Will contain resultX XX6 8X X X X X X 1 2 3 4 5 6 7 8 9 10 11 12 13XX88 XXX X XXXXCODINGADDENDAUGEND, THEN SUMSUBTRAHENDfirMINUEND, THEN SUM•NER =Qv________A_ThCALL .5013(I-WORK 4 5 Kwaee .3 49 9 99 9 -- 9JkJNER )AFTERNER = +1!WORK:411".....°....°.e.°°......°.-1 2 3 4 5 6 7 8 9 10 11KWORK ResultX XX68XXXXXX 1 2 3 4 5 6 7 8 9 10 11 12 13X X 9X X X X X X XX XCOMMENTSNOTE- eg.seLT FIELD FILLED kV/TN 9's- A/ER SET TO 4Figure 70.11.


Section Subsections Page70 10 30 15DESCRIPTION<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETMULT/PLY TWO 4- 0/6/7- NUMBERS1111* 2222 = 02468642BEFOREX = Extraneous <strong>Data</strong>!WORK: Will remain unchanged1 2 3 4 5 6 7 8 9 10 11KWORK: Will contain result.1 1 .1 XXXX X X 1 2 3 4 5 6 7 8 9 10 11 12 13X X X X 2 2 2 2 X X XXXCODINGADDEND AUGEND, THEN SUM -11I.NER= 0SUBTRAHEND MINUEND, THEN SUM -0.MULTIPLIERDIVISOR•• "'MULTIPLICAND,PRODUCTDIVIDEND,THENQUOT AND REM••CALL AIA)>' ( ?WORK 4L KWORK 5 45 NER ),9 — 9 1 9 -•-•9L___---y.---)AFTERNER =e.)IWORK: Unchanged1 2 5 6 8 9 10 11/ / / / XXXXX X XKWORK Result I1 2 3 4 5 6 7 8 9 10 11 12 130 2 4- 6 8 6 4 2XXXXXCOMMENTS NOTE THAT THE PRODUCT A eE,4 ( k WO .E' K )H45 BEEN EXTENDED 4 PL 4CES TO 7-14k- LEA-T,Figure 70.12.


Section SubsectionsPage70 10 30 16<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION /Vl-/Z 77,17Z}-' TWO 4- .o/6/7- A/a/tilf.ezt-5,3-Nopt///t/G- 4A/ EA:),POie CO/V.2)/ T./4.2A/BEFOREX = Extraneous <strong>Data</strong>IWORK: Will remain unchanged1 2 3 4 5 6 7 8 9 10 11KWORK: Will contain result1x XXX XX X 1 2 3 4 5 6 7 8 9 10 11 12 13Xx 2 2 2 2 XX )


Section Subsections Page70 10 30 17<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION D/V/DE 0/3 By 04BEFOREX = Extraneous <strong>Data</strong>IWORK: Will remain unchanged1 2 3 4 5 6 7 8 • 9 10 11KWORK Will contain resultX X X0 4 XXX X 2 3 4 5 6 7 8 9 10 11 12 13X X / 3 X X X X x XCODINGADDEND • • AUGEND, THEN SUM IIWNER = 0SUBTRAHEND • .4 MINUEND, THEN SUM-0.MULTIPLICAND,[IIMULTIPLI MULTIPLIER11. 4THEN PRODUCT•DIVISOR •••• DIVIDEND,10.THEN QUOT AND REMAA____ThCALL D/V (I14/ORK6 7 ewoek- 3 $ NER )9 9 9 9y __--)L._._____y)AFTER!WORK: Unchanged1 2 3 4 5 6 7 8 9 10 110 4s—,,,,—.•NER =KWORK Result1 2 3 4 5 6I 7 8 10 11 12 130030/ I■—....Thr—..___v__,COMMENTSRESULT /5 3-1// BEC4C/SE 77/LII. 7D/1//SOAP /5 2 40/6/7".5 WIDE,7WE KWORKFVEL.0 NA.5 BEEN EXTENDED 2 PC2,51770A/.5 TO THE LEA'TjAND THE •Ek>"9/Noee OCCUPYEZ THE 4:76A1rm0 ST2 0/6/T5fFigure 70.14


Section SubsectionsPage70 10 30 18<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION D/V/OE 0/5 $9, 008BEFOREX = Extraneous <strong>Data</strong>!WORK: Will remain unchanged1 2 3 4 5 6 7 8 9 10 11KWORK Will contain result0 D 8 X X X X X X X X 1 2 3 4 5 6 7 8 9 10 11 12 13X X X 0 / 5CODINGADDEND I. • AUGEND, THEN SUM •NER = 0SUBTRAHEND MINUEND, THEN SUM li.MULTIPLIERDIVISOR • 4MULTIPLICAND,THEN PRODUCTDIVIDEND,THEN QUOT AND REM...—A—_m•CALL 40/1/ ( /WORK' / 3 KWORK 4 6 NER )99 9 9 9 9L.__y_____JAFTERNER =0!WORK: Unchanged1 2 3 4 5 6 7 8 9 10 11KWORK: Result0 0 6 X X X X X X X X 1 2 3 4 5 6 7 8 9 10 11 12 13\---v--/0 0 / 0 0 7COMMENTSABECAUSE THE— RESULT / 6 / _■•-----/ ;11.8D/V/SOR /5 .3 0/6/73W/OE .0 THE 101/0e1c- F/EL.40H,95 BEEN EXTENDED e ROS/T/ONS TO THE L. ANDTHE 'PEW/A/DER OCCUP/E.5 THE R/6RTMOST 3 D/6/Ts."Figure 70, 15.


Section Subsections Page70 10 30 19<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION D/V/DE A NEGA7/VE NUMBER BY A 4-1,POSVTIVE NUMBER -5/2 = —2 -1/2 OR — 3 72BEFOREX = Extraneous <strong>Data</strong>IWORK: Will remain unchanged1 2 3 4 5 6 7 8 9 10 11O 2 X XXXXXXXKWORK. Will contain result1 2 3 4 5 6 7 8 9 10 11 12 130 0 5CODING .4 ADDEND • 46 AUGEND, THEN SUMS•SUBTRAHEND MINUEND, THEN SUM ID.• MULTIPLIER4 DIVISOR I •MULTIPLICAND,THEN PRODUCTDIVIDEND,THEN QUOT AND REM•NER = 0A_______.,r_._._._.__A_____.ThCALL 0/V (IWORK / 2 ,t-wafelt- ,3 6- NER )9 9 — 9 9 , .—K-- 9L-------y.-----)L__________y---)AFTERIWORK: Unchanged1 2 3 4 5 7 8 10 112 X X X X X X X X XNER = 0KWORK Result 11 2 3 4 5 6 7 8 9 10 11 12 1300 3COMMENTS — THE 5/6/s/ /...5 CARR/ED WITH THE - Q007.Figure 70.16.


Section Subsections Page70 10 30 20<strong>1130</strong> COMMERCIAL SUBROUTINES — DECIMAL ARITHMETIC WORKSHEETDESCRIPTION Z.)/ WS/ C:)/V BY Z1fQ /s /A/VAL/0BEFOREX = Extraneous <strong>Data</strong>!WORK: Will remain unchanged2 3 4 5 6 7 8 10 11OXKWORK: Will contain result1 2 3 4 5 6 7 8 9 10 11 12 13X x 7 8 x x xCODINGADDENliNER =O4 SUBTRAHEND4 MULTIPLIERDIVISORMULTIPLICAND,THEN PRODUCT•DIVIDEND,THEN QUOT AND REM•CALL 0/ V (21/VORA" 9 / 9 Z.,12 ) 4 96 NER )AFTERNER =!WORK: Unchanged1 2 5 6 7 8 9 10 11KWORK . Result1 2 3O O O x X 5 6 7 10 11 12 13O O 7 8 x xCOMMENTS - NO 40/ V/ 57 CA/ /5 A2E,4?P.0,4)/14, 4)NE-' /5 SET TO c$Figure 70.17.


Section Subsections Page70 10 30 21ConstantsThere are four ways in which you may create constantssuch as 1968, 40, 6600, etc. To illustrate,suppose you wish to create <strong>the</strong> constant 660000 (<strong>the</strong>Social Security deduction base, in cents) to bestored in an array named ISSD, DIMENSIONed asISSD (6). The four options are:1. Use FORTRAN equalities.ISSD (1) = 6ISSD (2) = 6ISSD (3) = 0ISSD (4) = 0ISSD (5) = 0ISSD (6) = 02. Use <strong>the</strong> DATA statement.DATA ISSD/6, 6, 0, 0, 0, 0/orDATA ISSD/2*6, 4*0/3. Use <strong>the</strong> FILL subroutine.CALL FILL (ISSD, 1, 2, 6)CALL FILL (ISSD, 3, 6, 0)4. Read it from a card, tape, keyboard, or disk.Option 2 is preferred, since it consumes less corestorage than <strong>the</strong> o<strong>the</strong>r three methods.Negative constants are handled in much <strong>the</strong> sameway. Because of <strong>the</strong>ir special representation, however,it wouldbe wise to make <strong>the</strong> constants positiveand change <strong>the</strong> arithmetic. For example, ra<strong>the</strong>rthan set up -1 and add it to something, it would beeasier to subtract +1.Testing and Modifying SignsTo facilitate testing and modifying <strong>the</strong> signs of decimalarithmetic fields, <strong>the</strong> subroutine NSIGN isavailable. It has four parameters:NARRY The name of <strong>the</strong> arrayNPOS The position in <strong>the</strong> array to be testedNEWS "New sign", indicating what you wantdone to <strong>the</strong> previous sign:+1 Make it positive0 Reverse it- 1 Make it negativeNOLDS Leave it aloneNOLDS "Old sign", returned to you, indicatingwhat <strong>the</strong> previous sign was:+1 It was positive- 1 It was negativeYou, <strong>the</strong> programmer, send <strong>the</strong> subroutine <strong>the</strong>first three parameters; it returns <strong>the</strong> last. Toillustrate, suppose you wish to test <strong>the</strong> sign of <strong>the</strong>18th position in <strong>the</strong> K array:• Case 1: It Is Now Positive:NOLDS is returned as +1K(18) is made + if you saidCALL NSIGN (K, 18, +1, NOLDS)K(18) is changed to - if you saidCALL NSIGN (K,18, 0, NOLDS)K(18) is made - if you saidCALL NSIGN (K,18, -1, NOLDS)K(18) remains + if you saidCALL NSIGN((K, 18, NOLDS, NOLDS)• Case 2: It Is Now Negative:NOLDS is returned as -1 andK(18) is made + if you saidCALL NSIGN (K, 18, +1, NOLDS)K(18) is changed to + if you saidCALL NSIGN (K,18, 0, NOLDS)K(18) is made - if you saidCALL NSIGN (K,18, -1, NOLDS)K(18) remains - if you saidCALL NSIGN (K, 18, NOLDS, NOLDS)


Section SubsectionsPage70 10 30 22Moving SignsThe NSIGN routine may also be used to move signs.The two statementsCALL NSIGN (NARRY, I, NOLD, NOLD)CALL NSIGN (KARRY, J, NOLD, JUNK)will make KARRY (J) have <strong>the</strong> same as NARRY (I).Comparing Decimal FieldsThe FUNCTION ICOMP is used to compare twovariable length decimal fields. In practice, it istypically used within <strong>the</strong> paren<strong>the</strong>ses of an IF statement;IF (ICOMP (IWORK, 1, 5, KWORK, 6, 10))1, 2, 3This statement will compare (IWORK,1, 5) with(KWORK, 6,10), and branch toStatement 1 if <strong>the</strong> first is less than <strong>the</strong> second.Statement 2 if <strong>the</strong>y are equal.Statement 3 if <strong>the</strong> first is greater than <strong>the</strong> second.As was true with <strong>the</strong> ADD and SUB subroutines,<strong>the</strong> first field must not be longer than <strong>the</strong> second.Since no error code is returned from this subprogram,<strong>the</strong>re is no way to tell that such an errorhas occurred, and <strong>the</strong> results will <strong>the</strong>refore bemeaningless.


Section Subsections Page70 10 40 01SummaryIf exact results are desired, you must take certainprecautions regarding arithmetic calculations.1. Use one of <strong>the</strong> following:Integer arithmeticDecimal arithmeticReal, fixed-point arithmetic, with nofractions2. If fractions are allowed to occur (floatingpointreal arithmetic), your results are likely toshow inaccuracies. These inaccuracies will beslight, but enough to cause significant problems.3. If no number will ever exceed 8,388,607.,you may use standard precision, real, fixed-pointarithmetic.4. If no addition will ever exceed2,147,483,647. , you may use extended precision,real, fixed-point arithmetic.5. If <strong>the</strong> result of a multiplication will exceed1,073,741,823. , you should consider using decimalarithmetic, since real extended precisionarithmetic will be inaccurate above this limit.6. If <strong>the</strong> result of an addition or subtractionfalls in <strong>the</strong> range 1,073,741,824. to2,147,483,647. , you should not attempt to outputit with <strong>the</strong> standard FORTRAN F Format; use <strong>the</strong>PUT subroutine instead.7. If any number will exceed 2,147,483,647.(now or in <strong>the</strong> foreseeable future), use decimalarithmetic ra<strong>the</strong>r than real arithmetic.


Section SubsectionsPage70 20 01 01OVERLAPPED INPUT/OUTPUTIntroductionAs a machine, <strong>the</strong> <strong>IBM</strong> <strong>1130</strong> <strong>Computing</strong> System iscapable of performing many tasks simultaneously.For example, it can print, type, read a card, andcompute, all at <strong>the</strong> same time. This can be donethrough its "cycle-stealing" I/O channels and <strong>the</strong>priority interrupt system. Each I/O device may,through an interrupt, signal <strong>the</strong> CPU that it requiresservice, and steal a cycle (3.6 or 2.2 microseconds)from some o<strong>the</strong>r process to do what it needs done.This process is commonly referred to as "over-For example, in <strong>the</strong> case of <strong>the</strong> disk, one dataword travels past <strong>the</strong> read/write heads every 27.8microseconds. However, it only takes one cycle(3.2 or 2.2 microseconds) to transfer that wordfrom core storage to <strong>the</strong> disk (if it is being written)or from <strong>the</strong> disk to core storage (if it is being read).This means that only a little more than 10% of <strong>the</strong>CPU time is required to read and write on <strong>the</strong> disk;<strong>the</strong> remainder is available for o<strong>the</strong>r use.Although most of <strong>the</strong> <strong>1130</strong>'s I/O devices can beoverlapped, standard <strong>1130</strong> FORTRAN permits onlytwo of <strong>the</strong>m to operate in this fashion: <strong>the</strong> disk and<strong>the</strong> 1403 Printer. There are several good reasonsfor this limitation. For example, suppose youwrote a program to read two numbers from a card,add <strong>the</strong>m toge<strong>the</strong>r, and print <strong>the</strong> result. With fulloverlap, <strong>the</strong> addition could conceivably be underway before <strong>the</strong> two numbers had even been placed incore. Obviously, this would not be satisfactory.To take full advantage of <strong>the</strong> potential of <strong>the</strong>machine, in FORTRAN, it would be necessary todevelop a special FORTRAN, which would <strong>the</strong>nviolate <strong>the</strong> USASI standards set up for that programminglanguage. Avoiding this, <strong>IBM</strong> hasdeveloped <strong>the</strong> Commercial Subroutine Package(CSP) -- a set of subroutines operating within <strong>the</strong>FORTRAN system, ra<strong>the</strong>r than as part of <strong>the</strong>FORTRAN language itself.


Section Subsections Page70 20 10 01The Commercial Subroutine Package OverlappedI/O SubroutinesCSP subroutines may be divided into three groups:The I/O subroutines <strong>the</strong>mselvesSeveral I/O utility subroutinesThose character handling routines necessary forproper use of <strong>the</strong> I/O routinesThis section discusses <strong>the</strong> former two groups; <strong>the</strong>latter is covered later in this section under "CharacterHandling <strong>Techniques</strong>".General<strong>All</strong> of <strong>the</strong> overlapped I/O subroutines operate ondata in Al format -- one alphabetic character perword, left-justified. If you wish to read 80 cardcolumns, you must set up an array 80 positions longto receive <strong>the</strong> data, and convert <strong>the</strong> Al data to whateverformat yourequire for later processing. Thereare no FORMAT statements; you must handle allconversions (see "Character Handling <strong>Techniques</strong>").Unlike standard FORTRAN, <strong>the</strong> overlapped I/Osubroutines are oriented toward a sign punch over<strong>the</strong> low-order digit of a field. For example, a negativenumber or credit of -$6.50 would be punchedwith an 11-punch over <strong>the</strong> zero, ra<strong>the</strong>r than in aseparate column, as would be done if FORTRANFORMAT were used.In general, for your non-disk I/O, you mustchoose ei<strong>the</strong>r one system or <strong>the</strong> o<strong>the</strong>r: FORTRANFORMAT or overlapped I/O. They may not be mixedwithin <strong>the</strong> same program.For fur<strong>the</strong>r detail on <strong>the</strong>se subroutines, see <strong>the</strong>SRL manual H20-0241.READ a Card, 1442-6 or 7The subroutine READ will read a card from <strong>the</strong> 1442Model 6 or 7, overlapping reading with<strong>the</strong> conversionfrom card code to Al format. The CPU will notproceed any fur<strong>the</strong>r until <strong>the</strong> last desired cardcolumn has been read and converted. Therefore youneed not be concerned that processing will be startedbefore <strong>the</strong> desired values have reached core storage.A typical call to this routine would beNER = -ICALL READ (INOUT , 1,80, NER)which would read and convert 80 columns, and place<strong>the</strong> result in <strong>the</strong> array INOUT. It should be followedby aIF (NER) xxx, xxx, xxxIf NER is still -1, everything is normal; if it iszero, <strong>the</strong> card just read was <strong>the</strong> last card in <strong>the</strong>hopper; if it is +1, <strong>the</strong>re was a read or feed check(1442 malfunction).It is equivalent toDIMENSION INOUT(80)77 FORMAT (80A1)READ (2,77) INOUT


Section SubsectionsPage70 20 10 02PUNCH a Card, 1442-6 or 7The subroutine PUNCH will punch a card on <strong>the</strong> 1442Model 6 or 7. Nothing will be overlapped with thisactivity. A typical use isNER = -1CALL PUNCH (INOUT, 1, 20, NER)which will punch <strong>the</strong> first 20 words of <strong>the</strong> INOUTarray into <strong>the</strong> first 20 columns of a card.It is equivalent toDIMENSION INOUT (80)77 FORMAT (80A1)WRITE (2, 77) (INOUT(K), K=1, 20)The use of <strong>the</strong> error parameter, NER, is identicalto <strong>the</strong> READ subroutine.Select STACKer, 1442-6 or 7Subroutine STACK permits <strong>the</strong> FORTRAN programmerto direct a card into <strong>the</strong> alternate stacker on <strong>the</strong> 1442Model 6 or 7. After <strong>the</strong> statementCALL STACK<strong>the</strong> last card read (and only <strong>the</strong> last card) will beselected into <strong>the</strong> alternate stacker.The placement of <strong>the</strong> CALL STACK statement isimportant:• If <strong>the</strong> program reads and punches into <strong>the</strong> samecard, <strong>the</strong> statement may be placed between <strong>the</strong> READand WRITE, or after <strong>the</strong> WRITE.• If <strong>the</strong> program reads (but doesn't punch), <strong>the</strong>CALL STACK goes after <strong>the</strong> READ statement thatread <strong>the</strong> card to be stacked.• If <strong>the</strong> program only punches (and does not read),<strong>the</strong> CALL STACK should be placed after <strong>the</strong> WRITEstatement that punches <strong>the</strong> card to be stacked.


Section Subsections Page70 20 10 03PRINT on 1132SKIP on 1132Subroutine PRINT enables you to write on <strong>the</strong> 1132Printer, overlapping printing with o<strong>the</strong>r processing.A typical use of this routine isNER = 1CALL PRINT (INOUT, 1,120, NER)This will initiate <strong>the</strong> printing of <strong>the</strong> 120-word arrayINOUT on <strong>the</strong> 1132, <strong>the</strong>n continue processing. Becauseof its overlapped capability, it can drive <strong>the</strong>1132 Printer substantially faster than <strong>the</strong> equivalentFORTRAN/FORMAT statements:DIMENSION INOUT (120)88 FORMAT (120A1)WRITE (3,88) INOUTLike READ and PUNCH, it should be followedwith a test of NER:• If it is still 1, nothing unusual happened.• If it is 3, <strong>the</strong> line being printed matches witha channel 9 punch on <strong>the</strong> carriage control tape.• If it is 4, <strong>the</strong> line being printed matches witha channel 12 punch in <strong>the</strong> carriage control tape.Note that <strong>the</strong> first position is not used to control<strong>the</strong> printer carriage, as it is with standard FORTRAN.The SKIP routine must be used if you wish to skip tochannel 1, double-space, etc.Subroutine SKIP permits full use of <strong>the</strong> carriage controltape mechanism on <strong>the</strong> 1132. Skipping is significantlyfaster than printing blank lines and should beused wherever possible. A typical use of this routineisCALL SKIP (KODE)where <strong>the</strong> allowable values of KODE, and <strong>the</strong>irmeaning, are as shown in Figure 70.18.ValueAction Takenof KODE by <strong>the</strong> 113212544 Immediate skip to channel 112800 Immediate skip to channel 213056 Immediate skip to channel 313312 Immediate skip to channel 413568 Immediate skip to channel 513824 Immediate skip to channel 614592 Immediate skip to channel 915360 Immediate skip to channel 1215616 Immediate space of 1 space15872 Immediate space of 2 spaces16128 Immediate space of 3 spaces0 Suppress space after printingFigure 70.18. SKIP codes for 1132 Printer


Section SubsectionsPage70 20 10 04Type on Console PrinterSubroutine TYPER will initiate typing on <strong>the</strong> consoleprinter, and <strong>the</strong>n continue processing. Actual printingtime will be overlapped with o<strong>the</strong>r processing(printing on <strong>the</strong> 1132, reading cards, computing,etc.). A typical call isCALL TYPER (INOUT, 1,50)which will type <strong>the</strong> first 50 values of <strong>the</strong> INOUTarray. There is no error parameter connected withthis routine.In addition to printing, this subroutine also permitsseveral typewriter control functions. If <strong>the</strong>values listed below are inserted in <strong>the</strong> INOUT array,<strong>the</strong> corresponding action will be performed at thatpoint:Accept <strong>Data</strong> from Console KeyboardSubroutine KEYBD will read characters entered from<strong>the</strong> console keyboard, Only 60 characters at a timemay be read with this routine. This activity is notoverlapped with any o<strong>the</strong>r function. An example of<strong>the</strong> use of this subroutine isCALL KEYBD (INOUT, 1,30)which will read 30 characters from <strong>the</strong> keyboard.This is no error parameter.Value1344518413632569654409536ActionTabulateShift to blackShift to redBackspaceCarrier returnLine feedBecause TYPER does not start each line with anautomatic carrier return, you may want to place a5440 in position 1 of <strong>the</strong> output array.


Section Subsections Page70 20 10 05A Precaution -- IONDBecause of <strong>the</strong> properties of <strong>the</strong> overlapped I/O subroutines,all I/O activity must be completed beforeyou cause <strong>the</strong> <strong>1130</strong> to PAUSE or STOP. The subroutineIOND will do this for you by testing <strong>the</strong> status orof <strong>the</strong> interrupts and looping until none are pending.IOND is required only when Version 1 of <strong>the</strong>Monitor is used; it should not be used if Version 2 of<strong>the</strong> Monitor is in use.The call to IOND should always be placed immediatelybefore each PAUSE or STOP statement:CALL IONDPAUSE 1234CALL IONDSTOP 5678


Section SubsectionsPage70 20 20 01Using The Overlapped I/O System Alternative A Alternative BGeneralIf you are to gain <strong>the</strong> full potential of <strong>the</strong> overlappedI/O routines, you should know several basic principlesof this system:• You must decide whe<strong>the</strong>r your non-disk I/0will be done by FORTRAN FORMAT READs andWRITEs or by <strong>the</strong> overlapped I/O subroutines. Aprogram cannot use both. Note that <strong>the</strong> disk I/O iscompletely independent of <strong>the</strong> overlapped I/O systemand does not enter into this discussion.• Certain devices are not overlapped by <strong>the</strong>seroutines, making <strong>the</strong> placement of <strong>the</strong> subroutinesCALLs quite important.Overlapping and Your ProgramDevelop results Develop resultsCALL PRINT ( ) CALL PUNCH ( )CALL PUNCH ( ) CALL PRINT ( )With alternative A, PRINTing is initiated, <strong>the</strong>nPUNCHing, and <strong>the</strong> two I/O functions are overlapped.Alternative B, on <strong>the</strong> o<strong>the</strong>r hand, does not overlap<strong>the</strong>se two functions, since <strong>the</strong> <strong>1130</strong> will wait untilPUNCHing is completed before starting PRINTing.Alternative B does, however, overlap whateverfollows <strong>the</strong> PRINT statement.To gain maximum overlap, <strong>the</strong>n, <strong>the</strong> three trulyoverlapped routines (PRINT, SKIP, and TYPER)should be placed as early in <strong>the</strong> processing cycleas possible. Figure 70.19 gives some examplesof good and bad usage of <strong>the</strong>se routines.As far as your program is concerned, only two I/Odevices are really overlapped: <strong>the</strong> 1132 Printer and<strong>the</strong> console printer. The o<strong>the</strong>r devices are ei<strong>the</strong>rnot overlapped at all or overlapped with varioushousekeeping chores (for example, code conversion)ra<strong>the</strong>r than with your program. In o<strong>the</strong>r words:These subroutines These subroutines startinitiate an action, an action and finish it<strong>the</strong>n continue before <strong>the</strong>y continueprocessing: processing:PRINTSKIPTYPERREADPUNCHKEYBDExample Bad Practice123processingprocessingCALL PRINTCALL SKIPprocessingprocessingCALL PRINTCALL PRINTCALL PUNCHCALL PRINTGood ProgrammingprocessingprocessingCALL SKIPCALL PRINTprocessingCALL PRINTprocessingCALL PRINT( CALL PRINTCALL PUNCHThus <strong>the</strong> sequence in which you use <strong>the</strong>se routinesbecomes important. For example, supposeyou have a program that develops some result, <strong>the</strong>nmust print a line on <strong>the</strong> 1132 and punch a card. Howshould this be done?4Figure 70. 19.WRITE diskCALL PRINTCALL PRINTWRITE disk


Section Subsections Page70 20 20 02FORTRAN TRACE Not Permitted with OverlappedI/O RoutinesIf you use <strong>the</strong> overlapped I/O routines, you must notinclude any of <strong>the</strong> non-disk I/O devices on <strong>the</strong> *IOCScontrol record; only *IOCS (DISK) is permitted.This means that you may not take advantage of <strong>the</strong>standard FORTRAN TRACE facility, but mustinstead program your own trace. If this is donewhile <strong>the</strong> program is being developed, it presentslittle difficulty.Several methods may be used -- for example:• A series of numbered pauses, to display yourprogress through <strong>the</strong> program.• A set of extra PRINT or TYPER statements,to function much <strong>the</strong> same as <strong>the</strong> standard TRACE.It might be useful to code a subroutine called TRACE,which would do this after testing <strong>Data</strong> Switch 15.Alphabetic Headings with <strong>the</strong> Overlapped I/O SystemSince you may not use FORMAT statements in conjunctionwith <strong>the</strong> overlapped I/O routines, you mustenter alphabetic headings and o<strong>the</strong>r constants insome o<strong>the</strong>r manner. Several methods are available.1. Use <strong>the</strong> DATA statement. This allows alphabeticconstants to be entered, in <strong>the</strong> proper format,at <strong>the</strong> start of <strong>the</strong> program.2. Read <strong>the</strong> alphabetic data from <strong>the</strong> card deck.You may lay out all <strong>the</strong> alphabetic data required(headings, error messages, etc.) so as to fit in onelarge array, <strong>the</strong>n read that array from a deck ofcards each time <strong>the</strong> program is executed. Becauseit is done only once, those program steps could bemade into a LINK, in which case it could useFORTRAN I/O, regardless of which system <strong>the</strong>main program used.3. Same as 2, except that <strong>the</strong> read-in programis run only once and places <strong>the</strong> array of headinginformation on <strong>the</strong> disk. This data is <strong>the</strong>n read from<strong>the</strong> disk each time <strong>the</strong> main program is executed.This is somewhat more foolproof, since you do nothave to worry <strong>about</strong> assembling <strong>the</strong> card deck eachtime <strong>the</strong> main program is run.


Section Subsections Page70 30 00 01THE INTERACTION OF ARITHMETIC AND I/OYou have seen that two options are available for I/O:Standard FORTRAN FORMATOverlapped I/O subroutinesYou have also seen that, for all practical purposes,two options are available for arithmetic:FORTRAN real arithmeticDecimal arithmetic, variable length.While you may choose any desired combination,certain combinations appear easier to use than o<strong>the</strong>rs.You can see from Figure 70.21 that some provisionmust in all cases be made for conversion from inputcode to some arithmetic code, <strong>the</strong>n from somearithmetic code to output code. If you use standardFORTRAN exclusively, you specify, with <strong>the</strong> FORMATstatement, what conversions you want. If you useany of <strong>the</strong> o<strong>the</strong>r three combinations, you must specify<strong>the</strong> desired code conversion with <strong>the</strong> characterhandling routines supplied by <strong>the</strong> Commercial SubroutinePackage: GET, PUT, EDIT, DECA1, A1DEC,PACK, and UNPAC. (These routines are covered inlater sections of this Guide.)Figure 70.22 summarizes <strong>the</strong> advantages anddisavantages of each alternative. You can see that<strong>the</strong> convenience items (ease of programming, readability,etc. ) are gradually sacrificed in order tomake gains in <strong>the</strong> area of capability and performance.DecimalArithmetic,VariableLengthConvenienceItemsCapability and PerformanceItemsEasilyProgrammed?EasilyReadableProgram?Easy toDebug?Trace?MaximumSize ofNumericalValues7Read aRecordof UnknownFormat?EditedOutput?ZonePunches<strong>All</strong>owed7I/OOverlapped?Standard FORTRAN easy very good yes 9 digits no no no noStandard FORTRANExtended with GET, PUTand EDITStandard FORTRAN Arith,with GET, PUT and EDIT,and overlapped I/Oa littlehardera littlehardervery good yes 9 digits yes yes no novery good no 9 digits yes yes yes yesFORTRAN I/O withGET, PUT, EDIT andDecimal Arith.a littlehardergoodcan trace,but not tooeffectivelyunlimited yes yes no noOverlapped I/O withDecimal Arith.a littlehardergoodto fairno unlimited yes yes yes yesFigure 70, 22.


Section Subsections Page70 40 01 01CHARACTER HANDLING TECHNIQUESGeneralA great deal of <strong>the</strong> programming effort in most commercialapplications falls into <strong>the</strong> general classificationof character handling -- code conversion, editing,moving data, testing zone punches, comparing alphabeticdata, etc. This section covers many of <strong>the</strong>setasks in detail, showing how <strong>the</strong>y may be accomplishedwith <strong>the</strong> Commercial Subroutines.


Section SubsectionsPage70 40 10 01Code ConversionAs you saw earlier, code conversion is essential toany program, commercial or technical. If you usestandard FORTRAN, you must specify <strong>the</strong> desiredconversions with <strong>the</strong> FORMAT statement. If youare using FORTRAN augmented by <strong>the</strong> CommercialSubroutines, you can also use <strong>the</strong> GET, PUT andEDIT subroutines for special formatting. If youare using <strong>the</strong> overlapped I/O routines, you mustspecify all <strong>the</strong> code conversions with <strong>the</strong> CommercialSubroutines (except Al format), since no FORMATstatements may be used.Basically <strong>the</strong>re are five internal codes with whichyou might be concerned:IntegerRealAlphabetic -- one character per word (Al)Alphabetic -- two characters per word (A2)Decimal -- one digit per wordVery few programs can avoid converting from onecode to <strong>the</strong> o<strong>the</strong>r. Figure 70.23 shows <strong>the</strong> tools atyour disposal to effect all possible conversions. Thecommon ones are handled by a single subroutine;those less often needed require a combination of twoor three subroutines.The Al code is particularly important since all<strong>the</strong> overlapped I/O routines require data in thatformat. In addition, GET, PUT, and EDIT workwith data in <strong>the</strong> Al format.The A2 code is used primarily when writingalphabetic data on <strong>the</strong> disk, since it holds twice asmuch data per word as Al format.Decimal code is encountered only if you are using<strong>the</strong> decimal arithmetic, variable length routines ofCSP.Integer to Real -- FLOATThe FLOAT function, a FORTRAN standard, is usedto convert an integer to a real number. A typicaluse of this function isX = FLOAT (K)which will set <strong>the</strong> real variable X equal to <strong>the</strong> valueof K. The same conversion can also be accomplishedby codingX = KThis also uses <strong>the</strong> FLOAT function, even though itdoes not appear.Real to Integer -- IFIXThe IFIX function, also a FORTRAN standard, isused to convert a real number to an integer. Atypical use isK = IFIX(X)which will take <strong>the</strong> real variable X, convert it to aninteger, and store it as K. If X is 6.0, <strong>the</strong>n K = 6;if X is 87.9, <strong>the</strong>n K = 87; and so on.This can also be accomplished by coding K = X;this too uses <strong>the</strong> IFIX function.TOFROMInteger Real Alpha (A1) Alpha (A2) DecimalInteger FLOAT PUT IF LOAT) FLOAT, <strong>the</strong>nPUT, <strong>the</strong>nPACKReal IFIX PUT PUT, <strong>the</strong>nPACKFLOAT, <strong>the</strong>nPUT, <strong>the</strong>nA1DECPUT, <strong>the</strong>nA1DECAlphabetic (Al) IFIX (GET) GET PACK A1DECAlphabetic (A21UNPAC, <strong>the</strong>nGET, <strong>the</strong>nIFIXUNPAC, <strong>the</strong>nGETUNPACUNPAC, <strong>the</strong>nAIDECVariable LengthDecimalDECA1, <strong>the</strong>nGET, <strong>the</strong>nIFIXDECA1, <strong>the</strong>nGETDECALDECA1, <strong>the</strong>nPACKFigure 70, 23.


Section Subsections Page70 40 10 02Al to Real -- GET<strong>IBM</strong> supplies <strong>the</strong> GET function as part of <strong>the</strong> <strong>1130</strong>Commercial Subroutine Package (CSP). The originalAl data may have resulted from a FORTRAN READwith an Al FORMAT, or from use of one of <strong>the</strong> CSPOverlapped Input routines, which always results inAl format.If you have a five-place array, in Al formatK(1) = 1K(2) = 9K(3) = 8K(4) = 6K(5) = 8Al to IntegerAs shown in Figure 70.23, this step requires useof both TIT( and GET, in <strong>the</strong> following manner:J = IFIX(GET(K,10,12,1.0))where positions 10 through 12 of <strong>the</strong> K array areconverted first to a real number, <strong>the</strong>n to an integercalled J.and you sayX =GET(K,1,5,1.0)<strong>the</strong>n X = 19868.The last parameter (1.0) is a shift factor, andwill usually be 1.0 if you want accurate results. (Ifit had been .1, X would be 1986. 8; however, since<strong>the</strong> fraction . 8 is present, you could expect it to beinaccurate.) Subsection 70.10.20 explains whyfractions should be avoided in commercial work.Basically, <strong>the</strong> above use of GET can be thoughtof as equivalent to an F5. 0 in a FORMAT statement.A shift factor of .1 would be an F5. 1; a shift of .01would be F5.2; a shift of .001 would be F5.3; etc.


Section SubsectionsPage70 40 10 03Real to Al -- PUTThis step is quite commonly required -- if you areusing <strong>the</strong> overlapped I/O routines, if you wish to dofur<strong>the</strong>r editing, etc. It is accomplished with <strong>the</strong>PUT subroutine supplied with CSP.Suppose you have just computed a gross pay figure,GROSS, which might have a typical value of 275869. ,understood to be mills. Again, note that you areworking ,in whole numbers, so that no fraction problemsare encountered. This value is to be roundedoff and <strong>the</strong> result placed in <strong>the</strong> first ten postions ofarray KGROS for-later editing and output. ThestatementCALL PUT (KGROS, 1,10, GROSS, 5. , 1)Integer to AlThis requires two steps, since PUT operates onreal numbers, not integers. If you have an integerI, which you want converted to Al format, you mustfirst convert it to real format:X=Ior X = FLOAT(I)<strong>the</strong>n use <strong>the</strong> PUT subroutine. Or, in one step:CALL PUT (KGROS, 1,10, FLOAT (I) , 5. ,1)will perform this conversion.will take GRASS, add 5. to it, truncate <strong>the</strong> last 1digit, and place it in Al format in <strong>the</strong> KGROS arrayas 0000027587, with leading zeros and no decimalpoint.The last two parameters, <strong>the</strong> adjust factor and <strong>the</strong>truncate factor, usually form a logical pair. Obviously,if you add 5. to half-adjust, you won't wantto print <strong>the</strong> resulting digit. The table below shows<strong>the</strong> common pairs:5th parameter(half-adjust factor).55.50.500.etc.6th parameter(how many digits totruncate from right end)0123etc.Half-adjust factors of less than .5 should not beused, since this will bring up <strong>the</strong> problem of inexactfractions.If GROSS is negative, an 11-zone punch will beadded to <strong>the</strong> code for <strong>the</strong> low-order digit. For example,if GROSS is -275869. , <strong>the</strong> result will be000002758P, where <strong>the</strong> character P is equivalent toa 7,11 punch.


Section Subsections Page70 40 10 04Al to Decimal -- A1DECThis conversion will be needed if you have chosento use <strong>the</strong> decimal arithmetic system of CSP. TheAl field being converted was read by FORTRAN withan Al format, or by <strong>the</strong> overlapped I/O routines.Suppose a card contained 1968 in columns 1 through4, and you read it with <strong>the</strong> overlapped I/O CALLREAD. It would be in Al format, in an array KOL,one character per word:KOL (1) contains <strong>the</strong> alphabetic lbKOL (2) contains <strong>the</strong> alphabetic 9bKOL (3) contains <strong>the</strong> alphabetic 6bKOL (4) contains <strong>the</strong> alphabetic 8bIf you want to use this value in decimal arithmeticcomputations, it must be converted to decimalformat, one digit per word. To do this, you simplycodeCALL A1DEC (KOL, 1, 4, NER)Decimal to Al -- DECALIf you are using decimal arithmetic, you must print<strong>the</strong> answers ei<strong>the</strong>r with a series of Il formats, orin Al format. The latter will be <strong>the</strong> case if youdesire any editing or are using <strong>the</strong> overlapped I/Oroutines.The DECAL subroutines will perform this conversion,thus operating in reverse fashion fromA1DEC.A typical use would beCALL DECAL (IWORK, 6, 10, NER)which will convert <strong>the</strong> 6th through <strong>the</strong> 10th items in<strong>the</strong> IWORK array from decimal to Al format. TheNER error parameter is present but should be oflimited use, since <strong>the</strong> decimal arithmetic routinesshould not leave any invalid digits in <strong>the</strong> field.The rightmost digit is assumed to carry <strong>the</strong> signand, if negative, will be converted to <strong>the</strong> propercharacter plus an 11 punch.and it will be converted, in place. Note that <strong>the</strong> Alcoding is replaced by <strong>the</strong> decimal coding. The NERis an error parameter, and will be set to <strong>the</strong> positionat which it last encountered an invalid character(not 0 through 9 or a blank).The exception to this is <strong>the</strong> last (rightmost)character, which may contain an 11 or 12 punch,indicating a sign. See <strong>the</strong> table below for allowablepunches:Digit orcharacterwithout azone punchblank0123456789with an 11 punch with a 12 punch- (dash)(- zero) (+ zero)JAKBLCMDNEOFGQHRI


Section SubsectionsPage70 40 10 05Al to A2 -- PACKA2 to Al . -- UNPACThis conversion is very desirable if you wish to To convert A2 data back to Al, <strong>the</strong> UNPAC substorealphabetic data on <strong>the</strong> disk. For input, output, routine may be used. A typical call to UNPAC wouldand editing, your data must be in Al format, how- beever, A2 format will pack twice as much data in anequivalent number of words. CALL UNPAC (IPAKD, 1,3, IUNPK, 1)The PACK subroutine gives you <strong>the</strong> ability to convertfrom Al to A2 format. For example, suppose which would unpack <strong>the</strong> 123bGO packed in <strong>the</strong> pre<strong>the</strong>array IUNPK contains 123bGO: vious example.IUNPK (1) contains an alphabetic 1IUNPK (2) contains an alphabetic 2IUNPK (3) contains an alphabetic 3IUNPK (4) contains an alphabetic blankIUNPK (5) contains an slphabetic GIUNPK (6) contains an alphabetic 0Now suppose we sayCALL PACK (IUNPK, 1,6, IPAKD, 1)The data is packed and moved from IUNPK to IPAKD:IPAKD (1) contains an alphabetic 1 and 2IPAKD (2) contains an alphabetic 3 and blankIPAKD (3) contains an alphabetic G and 0The IUNPK array remains unchanged. An even numberof characters will be packed. Therefore, <strong>the</strong>Al field should contain an even number of characterso<strong>the</strong>rwise, <strong>the</strong> last character in <strong>the</strong> IPAKD arraywill be meaningless.


Section Subsections Page70 40 10 06O<strong>the</strong>r Code ConversionsAs Figure 70.23 shows, <strong>the</strong>re are o<strong>the</strong>r code conversionsthat you may require. However, since<strong>the</strong>y are unusual and can be performed as a combinationof several o<strong>the</strong>r steps, <strong>the</strong>y will not bediscussed in detail.


Section SubsectionsPage70 40 20 01O<strong>the</strong>r Character Handling <strong>Techniques</strong>Editing Output--EDITMost commercial applications are strongly orientedtoward <strong>the</strong> format and appearance of <strong>the</strong> output results,as opposed to <strong>the</strong> technical job, where allyou want is <strong>the</strong> answer. For example:• Dollar amounts should have commas, dollarsigns, and so on.• Invoices should show a CR symbol after negativevalues.• Balance sheets should have a minus sign followinga negative item.• Punched card output should have leading zeros,so that <strong>the</strong> cards may be handled properly with amechanical sorter.The EDIT subroutine enables you to do all <strong>the</strong>seformatting tasks. Its use requires two fields,stored in Al format in integer arrays:1. The source field or <strong>the</strong> field which will beedited2. The edit mask, a field which you have codedto indicate how you want <strong>the</strong> edited output to appear.A typical call to <strong>the</strong> EDIT subroutine isCALL EDIT (KSOUR, 1,10,1VIASK, 1,13)where <strong>the</strong> source field consists of items 1-10 in <strong>the</strong>KSOUR array, and <strong>the</strong> mask consists of items 1-13 in<strong>the</strong> MASK array. After editing, <strong>the</strong> MASK field isreplaced by <strong>the</strong> edited source field; if you wish touse it again, <strong>the</strong>refore, you must save it somewhereelse. Usually, <strong>the</strong> mask will be moved into<strong>the</strong> output area, and <strong>the</strong> source field will be editedinto <strong>the</strong> output array. Thus <strong>the</strong> original mask isnot destroyed. For example:CALL MOVE (MASK, 1,13, KOUT, 36)CALL EDIT (KSOUR, 1,10, KOUT, 36,48)Figure 70.24 is a worksheet that you may usefor setting up an edit mask. The principles involvedare shown best by examples (see Figures70.25-70.30).Moving <strong>Data</strong> Fields--MOVEOften it becomes necessary to move <strong>the</strong> data in onearray into ano<strong>the</strong>r array--especially if you areusing CSP. The MOVE subroutine has been includedin CSP to facilitate such operations. Its useis quite simple, since it does no more than movedata from one place to ano<strong>the</strong>r. For example:will moveCALL MOVE (IFROM, 6,8, IT0,14)IFROM (6) to ITO (14)IFROM (7) to ITO (15)IFROM (8) to ITO (16)leaving <strong>the</strong> IFROM array undisturbed.Note that <strong>the</strong> ending position in <strong>the</strong> ITO array isnot supplied-as one of <strong>the</strong> parameters.The format of <strong>the</strong> data items is not affected.They may be Al, A2, decimal, or integer (but notreal).


Section Subsections Page70 40 20 02EDIT WORKSHEETPROGRAM PROGRAMMER DATECOMMENTS:STEP 1. FILL IN LINE a, SHOWING THE LARGEST POSSIBLE SOURCE FIELD, AND WHAT YOU WANT IT TO LOOK LIKE AFTER EDITING.HINT: PUT POSITION 1 OF THE SOURCE FIELD IN POSITION 2 OF THE MASK, AND SO ON, LEFT TO RIGHT.STEP 2. IF YOU HAVE INSERTED ANY SPECIAL CHARACTERS INTO THE EDITED OUTPUT, PUT THEM IN THE EDIT MASK IN THE SAMEPOSITION IN WHICH THEY APPEAR.NOTE: THIS DOES NOT APPLY TO `'s (ASTERISKS), b's (BLANKS), OR $'s (DOLLAR SIGNS). DO NOT PLACE THEM INTHE EDIT MASK YET.NOTE: ALLOWABLE SPECIAL CHARACTERS ARE A THRU Z, 1 THRU 9, AND /, -+ = etc.STEP 3. FILL IN LINE b, SHOWING HOW YOU WANT ZERO TO APPEAR IN YOUR EDITED OUTPUT.STEP 4. WHAT DID YOU DO WITH LEADING ZEROS? (YOU MAY ONLY CHOOSE ONE OPTION)a) LEFT THEM AS ZEROS? THEN DO NOTHING TO THE MASK.b) REPLACED THEM WITH ASTERISKS? IF SO, NOTE THE RIGHTMOST ASTERISK AND PUT AN ASTERISK IN THE MASK IN THE SAMEPOSITION.c) REPLACED THEM WITH BLANKS? IF SO NOTE THE RIGHTMOST BLANK AND PUT A ZERO IN THE MASK IN THE SAME POSITION.d) REPLACED THEM WITH A STRING OF BLANKS AND A DOLLAR SIGN? (FOR EXAMPLE bbbb$1. IF SO, NOTE THE POSITION OF THEDOLLAR SIGN AND PUT A DOLLAR SIGN IN THAT POSITION IN THE MASK.STEP 5. FILL IN LINE c, SHOWING A TYPICAL NEGATIVE FIELD, AND HOW YOU WANT IT TO APPEAR.STEP 6. WHAT DO YOU WANT DONE WITH A NEGATIVE FIELD INDICATOR? CHOOSE ONE.a) NOTHING, FIELD WILL NEVER BE NEGATIVE DO NOTHING.b) LETTERS 'CR' AFTER THE FIELD PUT A 'CR' IN THE MASK TO THE RIGHT OFTHE FIELD.c) MINUS SIGN IN ITS OWN COLUMN, AFTER THE FIELD PUT A MINUS SIGN IN THE POSITION RIGHTAFTER THE FIELD.d) 11-PUNCH OVER ONE OF THE CHARACTERS SAME AS OPTION C, THEN USE NZONE SUBROUTINETO MOVE ZONE PUNCH TO THE DESIRED POSITION'CALL NZONE ,y, 5, NOLDZMOVE ZONE FROM HE RE TO HERE7CALL NZONE (MASK,. NOLDZ, JUNK)CAUTION: "CERTAIN ZONE PUNCHES (11, 0 AND12, 01 CANNOT BE HANDLED BY 'FORTRAN I/O. IF THESE PUNCHESWILL OCCUR, YOU MUST USE CSP I/0."STEP 7. HOW MANY CHARACTERS WERE IN THE FIRST SOURCE FIELD?... aHOW MANY BLANKS REMAIN IN THE MASK' ^ bCAUTION: a CAN BE EQUAL TO OR LESS THAN b, BUT CANNOT BE LARGER!STEP 8. DON'T FORGET; THE SOURCE FIELD MUST BE IN Al FORMAT, WITH THE SIGN OVER THE RIGHTMOST CHARACTER.abcSOURCE FIELDDESIRED EDITED OUTPUT1 i 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 181 LINE a — LARGEST aLINE b — ZERObLINE c— TYPICAL NEGATIVEc1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18IMPLIED SIGNREQUIRED EDIT MASKFigure 70, 24,


Section SubsectionFPage70 40 20 03EDIT WORKSHEETPROGRAM PROGRAMMER DATECOMMENTS: MONETARY P/ELO, TO BE PZ/NC1/40 /NTO eRRD A//771 ZEAD/mV zekos.044 -/RED, dal' A/0 corY1144:1' OR DEC Pr it PiliVeil 01/ER .2./4/iTmo.97-(ibvizs) Pas/rioni NE4AT/ Ye:STEP 1. FILL IN LINE a, SHOWING THE LARGEST POSSIBLE SOURCE FIELD, AND WHAT YOU WANT IT TO LOOK LIKE AFTER EDITING.HINT: PUT POSITION 1 OF THE SOURCE FIELD IN POSITION 2 OF THE MASK, AND SOON, LEFT TO RIGHT.STEP 2. IF YOU HAVE INSERTED ANY SPECIAL CHARACTERS INTO THE EDITED OUTPUT, PUT THEM IN THE EDIT MASK IN THE SAMEPOSITION IN WHICH THEY APPEAR.NOTE: THIS DOES NOT APPLY TO ''s (ASTERISKS), b's (BLANKS), OR $'s (DOLLAR SIGNS). DO NOT PLACE THEM INTHE EDIT MASK YET.NOTE: ALLOWABLE SPECIAL CHARACTERS ARE A THRU Z, 1 THRU 9, AND /, -+= etc.STEP 3. FILL IN LINE b, SHOWING HOW YOU WANT ZERO TO APPEAR IN YOUR EDITED OUTPUT.STEP 4. WHAT DID YOU DO WITH LEADING ZEROS? (YOU MAY ONLY CHOOSE ONE OPTION)a) LEFT THEM AS ZEROS? THEN DO NOTHING TO THE MASK.STEP 5.b) REPLACED THEM WITH ASTERISKS? IF SO, NOTE THE RIGHTMOST ASTERISK AND PUT AN ASTERISK IN THE MASK IN THE SAMEPOSITION.c) REPLACED THEM WITH BLANKS? IF SO NOTE THE RIGHTMOST BLANK AND PUT A ZERO IN THE MASK IN THE SAME POSITION.dl REPLACED THEM WITH A STRING OF BLANKS AND A DOLLAR SIGN? (FOR EXAMPLE bbbb$). IF SO, NOTE THE POSITION OF THEDOLLAR SIGN AND PUT A DOLLAR SIGN IN THAT POSITION IN THE MASK.FILL IN LINE c, SHOWING A TYPICAL NEGATIVE FIELD, AND HOW YOU WANT IT TO APPEAR.STEP 6. WHAT DO YOU WANT DONE WITH A NEGATIVE FIELD INDICATOR? CHOOSE ONE.a) NOTHING, FIELD WILL NEVER BE NEGATIVE DO NOTHING.b) LETTERS 'CR' AFTER THE FIELD PUT A 'CR' IN THE MASK TO THE RIGHT OFTHE FIELD.c) MINUS SIGN IN ITS OWN COLUMN, AFTER THE FIELD PUT A MINUS SIGN IN THE POSITION RIGHTAFTER THE FIELD.d) 11-PUNCH OVER ONE OF THE CHARACTERS SAME AS OPTION C, THEN USE NZONE SUBROUTINETO MOVE ZONE PUNCH TO THE DESIRED POSITION'CALL NZONE (MASK,y, 5, NOLDZ)MOVE ZONE FROM HERE TO HE RE7CALL NZONE NOLDZ, JUNK)CAUTION: "CERTAIN ZONE PUNCHES (11, 0 AND12, 0) CANNOT BE HANDLED BYFORTRAN I/O. IF THESE PUNCHESWILL OCCUR, YOU MUST USE CSP I/O."STEP 7. HOW MANY CHARACTERS WERE IN THE FIRST SOURCE FIELD?... 9 aHOW MANY BLANKS REMAIN IN THE MASK?/0 bCAUTION: a CAN BE EQUAL TO OR LESS THAN b, BUT CANNOT BE LARGER!STEP 8. DON'T FORGET; THE SOURCE FIELD MUST BE IN Al FORMAT, WITH THE SIGN OVER THE RIGHTMOST CHARACTER.abSOURCE FIELD1 2 3 4 5 6 7 8 9 10 11 129 9 9 9 9 9 9 9O 0 0 0 . 0 0 0 0 06 6 6;IMPLIED SIGNLINE a — LARGESTLINE b — ZEROLINE c— TYPICAL NEGATIVEREQUIRED EDIT MASKDESIRED EDITED OUTPUT1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 189999999990000000004000066 6 Z1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18h 66 66666abFigure 70, 2S.


Section Subsections Pega70 40 20 04EDIT WORKSHEETPROGRAMṖROGRAMMERCOMMENTS: MONETARY A-*/ ezo, /V/7/71 .47(0,977A/0 7i, "7/V0 Aitc"0.9 T/ i'e /.440/CNTOR (A-/NCOLUMN drOZIOW/Al ADATESTEP 1. FILL IN LINE a, SHOWING THE LARGEST POSSIBLE SOURCE FIELD, AND WHAT YOU WANT IT TO LOOK LIKE AFTER EDITING.HINT: PUT POSITION 1 OF THE SOURCE FIELD IN POSITION 2 OF THE MASK, AND SO ON, LEFT TO RIGHT.STEP 2. IF YOU HAVE INSERTED ANY SPECIAL CHARACTERS INTO THE EDITED OUTPUT, PUT THEM IN THE EDIT MASK IN THE SAMEPOSITION IN WHICH THEY APPEAR.NOTE: THIS DOES NOT APPLY TO "s (ASTERISKS), b's (BLANKS), OR $'s (DOLLAR SIGNS). DO NOT PLACE THEM INTHE EDIT MASK YET.NOTE: ALLOWABLE SPECIAL CHARACTERS ARE A THRU Z, 1 THRU 9, AND /, - + .. etc.STEP 3. FILL IN LINE b, SHOWING HOW YOU WANT ZERO TO APPEAR IN YOUR EDITED OUTPUT.STEP 4. WHAT DID YOU DO WITH LEADING ZEROS? (YOU MAY ONLY CHOOSE ONE OPTION)a) LEFT THEM AS ZEROS? THEN DO NOTHING TO THE MASK.b) REPLACED THEM WITH ASTERISKS? IF SO, NOTE THE RIGHTMOST ASTERISK AND PUT AN ASTERISK IN THE MASK IN THE SAMEPOSITION.c) REPLACED THEM WITH BLANKS? IF SO NOTE THE RIGHTMOST BLANK AND PUT A ZERO IN THE MASK IN THE SAME POSITION.d) REPLACED THEM WITH A STRING OF BLANKS AND A DOLLAR SIGN? (FOR EXAMPLE bbbb$1. IF SO, NOTE THE POSITION OF THEDOLLAR SIGN AND PUT A DOLLAR SIGN IN THAT POSITION IN THE MASK.STEP 5. FILL IN LINE c, SHOWING A TYPICAL NEGATIVE FIELD, AND HOW YOU WANT IT TO APPEAR.STEP 6. WHAT DO YOU WANT DONE WITH A NEGATIVE FIELD INDICATOR? CHOOSE ONE.a) NOTHING, FIELD WILL NEVER BE NEGATIVE DO NOTHING.b) LETTERS 'CR' AFTER THE FIELD PUT A 'CR' IN THE MASK TO THE RIGHT OFTHE FIELD.c) MINUS SIGN IN ITS OWN COLUMN, AFTER THE FIELD PUT A MINUS SIGN IN THE POSITION RIGHTAFTER THE FIELD.dl 11 -PUNCH OVER ONE OF THE CHARACTERSCALL NZONE (MASK,9 5, NOLDZ)MOVE ZONE FROM HERE TO HERECALL NZONE (MASK,111 NOLDZ, JUNK)SAME AS OPTION C, THEN USE NZONE SUBROUTINETO MOVE ZONE PUNCH TO THE DESIRED POSITION'CAUTION: "CERTAIN ZONE PUNCHES (11, 0 AND12,0) CANNOT BE HANDLED BYFORTRAN I/0. IF THESE PUNCHESWILL OCCUR, YOU MUST USE CSP I/0."aHOW MANY BLANKS REMAIN IN THE MASK? IQ bSTEP 7. HOW MANY CHARACTERS WERE IN THE FIRST SOURCE FIELD?... /0CAUTION: a CAN BE EQUAL TO OR LESS THAN b, BUT CANNOT BE LARGER)STEP 8. DON'T FORGET; THE SOURCE FIELD MUST BE IN Al FORMAT, WITH THE SIGN OVER THE RIGHTMOST CHARACTER.SOURCE FIELDDESIRED EDITED OUTPUT1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18a LINE9 9 9 9 9 9 9a — LARGEST$ 99,999,9 9 9.99aLINEbb— ZERO0000000000 $0. 00bc LINE/ / / 7 c— TYPICAL NEGATIVE$ / / / . / / . cIMPLIED SIGNt1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18REQUIRED EDIT MASK b b b 66, b $b.bb-Figure 70, 26.


Section SubsectionsPage70 40 20 05EDIT WORKSHEETPROGRAM PROGRAMMER DATECOMMENTS: ,sociaz SECURITY NO.STEP 1. FILL IN LINE a, SHOWING THE LARGEST POSSIBLE SOURCE FIELD, AND WHAT YOU WANT IT TO LOOK LIKE AFTER EDITING.HINT: PUT POSITION 1 OF THE SOURCE FIELD IN POSITION 2 OF THE MASK, AND SO ON, LEFT TO RIGHT.STEP 2. IF YOU HAVE INSERTED ANY SPECIAL CHARACTERS INTO THE EDITED OUTPUT, PUT THEM IN THE EDIT MASK IN THE SAMEPOSITION IN WHICH THEY APPEAR.NOTE: THIS DOES NOT APPLY TO ''s (ASTERISKS), b's (BLANKS), OR $'s (DOLLAR SIGNS). DO NOT PLACE THEM INTHE EDIT MASK YET.NOTE: ALLOWABLE SPECIAL CHARACTERS ARE A THRU Z, 1 THRU 9, AND /, - + = etc.STEP 3. FILL IN LINE b, SHOWING HOW YOU WANT ZERO TO APPEAR IN YOUR EDITED OUTPUT.STEP 4. WHAT DID YOU DO WITH LEADING ZEROS? (YOU MAY ONLY CHOOSE ONE OPTION)a) LEFT THEM AS ZEROS? THEN DO NOTHING TO THE MASK.b) REPLACED THEM WITH ASTERISKS? IF SO, NOTE THE RIGHTMOST ASTERISK AND PUT AN ASTERISK IN THE MASK IN THE SAMEPOSITION.c) REPLACED THEM WITH BLANKS? IF SO NOTE THE RIGHTMOST BLANK AND PUT A ZERO IN THE MASK IN THE SAME POSITION.d) REPLACED THEM WITH A STRING OF BLANKS AND A DOLLAR SIGN? (FOR EXAMPLE bbbb$). IF SO, NOTE THE POSITION OF THEDOLLAR SIGN AND PUT A DOLLAR SIGN IN THAT POSITION IN THE MASK.STEP 5. FILL IN LINE c, SHOWING A TYPICAL NEGATIVE FIELD, AND HOW YOU WANT IT TO APPEAR.STEP 6. WHAT DO YOU WANT DONE WITH A NEGATIVE FIELD INDICATOR? CHOOSE ONE.a) NOTHING, FIELD WILL NEVER BE NEGATIVE DO NOTHING.b) LETTERS 'CR' AFTER THE FIELD PUT A 'CR' IN THE MASK TO THE RIGHT OFTHE FIELD.c) MINUS SIGN IN ITS OWN COLUMN, AFTER THE FIELD PUT A MINUS SIGN IN THE POSITION RIGHTAFTER THE FIELD.d) 11-PUNCH OVER ONE OF THE CHARACTERS SAME AS OPTION C, THEN USE NZONE SUBROUTINETO MOVE ZONE PUNCH TO THE DESIRED POSITION'CALL NZONE IMASK, 5, NOLDZ)MOVE ZONE FROM HERE 9 TO HE RE7CALL NZONE (MASK,O, NOLDZ, JUNK)CAUTION: "CERTAIN ZONE PUNCHES (11, 0 AND12,0) CANNOT BE HANDLED BYFORTRAN I/O. IF THESE PUNCHESWILL OCCUR, YOU MUST USE CSP I/0."STEP 7. HOW MANY CHARACTERS WERE IN THE FIRST SOURCE FIELD?... 9 aHOW MANY BLANKS REMAIN IN THE MASK?9 bCAUTION: a CAN BE EQUAL TO OR LESS THAN b, BUT CANNOT BE LARGER!STEP 8. DON'T FORGET; THE SOURCE FIELD MUST BE IN Al FORMAT, WITH THE SIGN OVER THE RIGHTMOST CHARACTER.abSOURCE FIELD1 2 3 5 6 7 8 9 10 11 122 2 3 33LINE a – LARGESTLINE b – ZERODESIRED EDITED OUTPUT1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 181 / 1 - 2 2 - 3 3 3 3abcLINE c– TYPICAL NEGATIVEIMPLIED SIGNREQUIRED EDIT MASK1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1866 -66-6 46Figure 70. 27.


Section Subsections Page70 40 20 06EDIT WORKSHEETPROGRAM PROGRAMMER DATECOMMENTS: BAreSTEP 1. FILL IN LINE a, SHOWING THE LARGEST POSSIBLE SOURCE FIELD, AND WHAT YOU WANT IT TO LOOK LIKE AFTER EDITING.HINT: PUT POSITION 1 OF THE SOURCE FIELD IN POSITION 2 OF THE MASK, AND SO ON, LEFT TO RIGHT.STEP 2. IF YOU HAVE INSERTED ANY SPECIAL CHARACTERS INTO THE EDITED OUTPUT, PUT THEM IN THE EDIT MASK IN THE SAMEPOSITION IN WHICH THEY APPEAR.NOTE: THIS DOES NOT APPLY TO "'s (ASTERISKS), b's (BLANKS), OR $'s (DOLLAR SIGNS). DO NOT PLACE THEM INTHE EDIT MASK YET.NOTE: ALLOWABLE SPECIAL CHARACTERS ARE A THRU Z, 1 THRU 9, AND I, - + = etc.STEP 3. FILL IN LINE b, SHOWING HOW YOU WANT ZERO TO APPEAR IN YOUR EDITED OUTPUT.STEP 4. WHAT DID YOU DO WITH LEADING ZEROS? (YOU MAY ONLY CHOOSE ONE OPTION)a) LEFT THEM AS ZEROS? THEN DO NOTHING TO THE MASK.b) REPLACED THEM WITH ASTERISKS? IF SO, NOTE THE RIGHTMOST ASTERISK AND PUT AN ASTERISK IN THE MASK IN THE SAMEPOSITION.c) REPLACED THEM WITH BLANKS? IF SO NOTE THE RIGHTMOST BLANK AND PUT A ZERO IN THE MASK IN THE SAME POSITION.d) REPLACED THEM WITH A STRING OF BLANKS AND A DOLLAR SIGN? (FOR EXAMPLE bbbb$(. IF SO, NOTE THE POSITION OF THEDOLLAR SIGN AND PUT A DOLLAR SIGN IN THAT POSITION IN THE MASK.STEP 5. FILL IN LINE c, SHOWING A TYPICAL NEGATIVE FIELD, AND HOW YOU WANT IT TO APPEAR.STEP 6. WHAT DO YOU WANT DONE WITH A NEGATIVE FIELD INDICATOR? CHOOSE ONE.a) NOTHING, FIELD WILL NEVER BE NEGATIVE DO NOTHING.b) LETTERS 'CR' AFTER THE FIELD PUT A 'CR' IN THE MASK TO THE RIGHT OFTHE FIELD.cl MINUS SIGN IN ITS OWN COLUMN, AFTER THE FIELD PUT A MINUS SIGN IN THE POSITION RIGHTAFTER THE FIELD.dl 11-PUNCH OVER ONE OF THE CHARACTERSCALL NZONE (MASK,y, 5, NOLDZ)MOVE ZONE FROM HERE TO HERE7CALL NZONE (MASK,E, NOLDZ, JUNK)SAME AS OPTION C, THEN USE NZONE SUBROUTINETO MOVE ZONE PUNCH TO THE DESIRED POSITION'CAUTION: "CERTAIN ZONE PUNCHES 111, 0 AND12, 01 CANNOT BE HANDLED BYFORTRAN I/0. IF THESE PUNCHESWILL OCCUR, YOU MUST USE CSP I/0."STEP 7. HOW MANY CHARACTERS WERE IN THE FIRST SOURCE FIELD?...5 aHOW MANY BLANKS REMAIN IN THE MASK', 5 bCAUTION: a CAN BE EQUAL TO OR LESS THAN b, BUT CANNOT BE LARGER!STEP 8. DON'T FORGET; THE SOURCE FIELD MUST BE IN Al FORMAT, WITH THE SIGN OVER THE RIGHTMOST CHARACTER.SOURCE FIELDDESIRED EDITED OUTPUTabc1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18J ? 0 9 7LINE a— LARGESTLINE b — ZEROLINE c— TYPICAL NEGATIVE/ 2/ 0 9/ 6 7abcMPLI E DSIGNREQUIRED EDIT MASK b / b b 6 h1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18Figure 70, 28.


Section SubsectionsPage70 40 20 07EDIT WORKSHEETPROGRAM PROGRAMMER DATECOMMENTS: f)/ireSTEP 1. FILL IN LINE a, SHOWING THE LARGEST POSSIBLE SOURCE FIELD, AND WHAT YOU WANT IT TO LOOK LIKE AFTER EDITING.HINT: PUT POSITION 1 OF THE SOURCE FIELD IN POSITION 2 OF THE MASK, AND SOON, LEFT TO RIGHT.STEP 2. IF YOU HAVE INSERTED ANY SPECIAL CHARACTERS INTO THE EDITED OUTPUT, PUT THEM IN THE EDIT MASK IN THE SAMEPOSITION IN WHICH THEY APPEAR.NOTE: THIS DOES NOT APPLY TO "s (ASTERISKS), b's (BLANKS), OR S's (DOLLAR SIGNS). DO NOT PLACE THEM INTHE EDIT MASK YET.NOTE: ALLOWABLE SPECIAL CHARACTERS ARE A THRU Z, 1 THRU 9, AND /, - + = etc.STEP 3. FILL IN LINE b, SHOWING HOW YOU WANT ZERO TO APPEAR IN YOUR EDITED OUTPUT.STEP 4. WHAT DID YOU DO WITH LEADING ZEROS? (YOU MAY ONLY CHOOSE ONE OPTION)a) LEFT THEM AS ZEROS? THEN DO NOTHING TO THE MASK.b) REPLACED THEM WITH ASTERISKS? IF SO, NOTE THE RIGHTMOST ASTERISK AND PUT AN ASTERISK IN THE MASK IN THE SAMEPOSITION.c) REPLACED THEM WITH BLANKS? IF SO NOTE THE RIGHTMOST BLANK AND PUT A ZERO IN THE MASK IN THE SAME POSITION.dl REPLACED THEM WITH A STRING OF BLANKS AND A DOLLAR SIGN? (FOR EXAMPLE bbbbS). IF SO, NOTE THE POSITION OF THEDOLLAR SIGN AND PUT A DOLLAR SIGN IN THAT POSITION IN THE MASK.STEP 5. FILL IN LINE c, SHOWING A TYPICAL NEGATIVE FIELD, AND HOW YOU WANT IT TO APPEAR.STEP 6. WHAT DO YOU WANT DONE WITH A NEGATIVE FIELD INDICATOR? CHOOSE ONE.a) NOTHING, FIELD WILL NEVER BE NEGATIVE DO NOTHING.OR bl LETTERS 'CR' AFTER THE FIELDPUT A 'CR' IN THE MASK TO THE RIGHT OFTHE FIELD.c) MINUS SIGN IN ITS OWN COLUMN, AFTER THE FIELD PUT A MINUS SIGN IN THE POSITION RIGHTAFTER THE FIELD.d) 11-PUNCH OVER ONE OF THE CHARACTERS SAME AS OPTION C, THEN USE NZONE SUBROUTINETO MOVE ZONE PUNCH TO THE DESIRED POSITION'CALL NZONE (MASK,y, 5, NOLDZ)MOVE ZONE FROM HERE TO HERE?CALL NZONE (MASK,D, NOLDZ, JUNK)CAUTION: "CERTAIN ZONE PUNCHES Ill, 0 AND12,0) CANNOT BE HANDLED BYFORTRAN I/O. IF THESE PUNCHESWILL OCCUR, YOU MUST USE CSP I/0."STEP 7. HOW MANY CHARACTERS WERE IN THE FIRST SOURCE FIELD?... 5 aHOW MANY BLANKS REMAIN IN THE MASK?5 bCAUTION: a CAN BE EQUAL TO OR LESS THAN b, BUT CANNOT BE LARGER!STEP 8. DON'T FORGET; THE SOURCE FIELD MUST BE IN Al FORMAT. WITH THE SIGN OVER THE RIGHTMOST CHARACTER.SOURCE FIELDDESIRED EDITED OUTPUT1 2 3 5 6 7 8 910 11 121 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18a2 O7LINE a — LARGESTRabLINE b — ZERObLINE c— TYPICAL NEGATIVEc1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18IMPLIED SIGNREQUIRED EDIT MASK,tio.6 , DAy .h ,Y yz= 6 bFigure 70.29.


Section Subsections Page70 40 20 08EDIT WORKSHEETPROGRAM PROGRAMMER DATECOMMENTS: AfONET4Ry pia°, 14//741/ 4",q SYMBOL, LE417iNa fSTEP 1. FILL IN LINE a, SHOWING THE LARGEST POSSIBLE SOURCE FIELD, AND WHAT YOU WANT IT TO LOOK LIKE AFTER EDITING.HINT: PUT POSITION 1 OF THE SOURCE FIELD IN POSITION 2 OF THE MASK, AND SO ON, LEFT TO RIGHT.STEP 2. IF YOU HAVE INSERTED ANY SPECIAL CHARACTERS INTO THE EDITED OUTPUT, PUT THEM IN THE EDIT MASK IN THE SAMEPOSITION IN WHICH THEY APPEAR.NOTE: THIS DOES Ng" APPLY TO "s (ASTERISKS), b's (BLANKS), OR $'s (DOLLAR SIGNS). DO NOT PLACE THEM INTHE EDIT MASK YET.NOTE: ALLOWABLE SPECIAL CHARACTERS ARE A THRU Z, 1 THRU 9, AND /, -+ = etc.STEP 3. FILL IN LINE b, SHOWING HOW YOU WANT ZERO TO APPEAR IN YOUR EDITED OUTPUT.STEP 4. WHAT DID YOU DO WITH LEADING ZEROS? (YOU MAY ONLY CHOOSE ONE OPTION)a) LEFT THEM AS ZEROS? THEN DO NOTHING TO THE MASK.b) REPLACED THEM WITH ASTERISKS? IF SO, NOTE THE RIGHTMOST ASTERISK AND PUT AN ASTERISK IN THE MASK IN THE SAMEPOSITION.c) REPLACED THEM WITH BLANKS? IF SO NOTE THE RIGHTMOST BLANK AND PUT A ZERO IN THE MASK IN THE SAME POSITION.d) REPLACED THEM WITH A STRING OF BLANKS AND A DOLLAR SIGN? (FOR EXAMPLE bbbb$). IF SO, NOTE THE POSITION OF THEDOLLAR SIGN AND PUT A DOLLAR SIGN IN THAT POSITION IN THE MASK.STEP 5. FILL IN LINE c, SHOWING A TYPICAL NEGATIVE FIELD, AND HOW YOU WANT IT TO APPEAR.STEP 6. WHAT DO YOU WANT DONE WITH A NEGATIVE FIELD INDICATOR? CHOOSE ONE.a) NOTHING, FIELD WILL NEVER BE NEGATIVE DO NOTHING.b) LETTERS 'CR' AFTER THE FIELD PUT A 'CR' IN THE MASK TO THE RIGHT OFTHE FIELD.c) MINUS SIGN IN ITS OWN COLUMN, AFTER THE FIELD PUT A MINUS SIGN IN THE POSITION RIGHTAFTER THE FIELD.d) 11-PUNCH OVER ONE OF THE CHARACTERS SAME AS OPTION C, THEN USE NZONE SUBROUTINETO MOVE ZONE PUNCH TO THE DESIRED POSITION'CALL NZONE (MASK,y, 5, NOLDZ)MOVEZONE FROM HERETO HE RE7CALL NZONE (MASK,• NOLDZ, JUNK)CAUTION: "CERTAIN ZONE PUNCHES (11, 0 AND12, 0) CANNOT BE HANDLED BYFORTRAN I/0. IF THESE PUNCHESWILL OCCUR, YOU MUST USE CSP I/0."STEP 7. HOW MANY CHARACTERS WERE IN THE FIRST SOURCE FIELD?... B aHOW MANY BLANKS REMAIN IN THE MASK? B bCAUTION: a CAN BE EQUAL TO OR LESS THAN b, BUT CANNOT BE LARGER!STEP 8. DON'T FORGET; THE SOURCE FIELD MUST BE IN Al FORMAT, WITH THE SIGN OVER THE RIGHTMOST CHARACTER.SOURCE FIELD1 2 3 4 5 6 7 8 9 10 11 12DESIRED EDITED OUTPUT1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18aLINE a — LARGESTa9 9 9 9 9 9 * 9 9 ) 9 9 9. 9 9b 00 0LINE b — ZERO* * * If ,t * ,t, 0. 0 0 bc / 2 .3 ;LINE c— TYPICAL NEGATIVE * * *N***2 . .9 C Rc1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18IMPLIED SIGNREQUIRED EDIT MASK b b , 6. * • 6 6 RFigure 70. 30.


Section SubsectionsPage70 40 20 09Filling a Field with a Specific Character--FILLIf your program requires that you create long stringsof <strong>the</strong> same digit or character, <strong>the</strong> FILL subroutinemay be used. The statementCALL FILL (KARRY, 10,36, IT)will place <strong>the</strong> coding of IT in positions 10-36 of <strong>the</strong>array KARRY. IT may be any integer between+32767 and -32768.In a standard FORTRAN program, this is auseful way to clear a set of totals to zero.If you are using <strong>the</strong> decimal arithmetic routines,this can also be used to clear a total field to zero.When using <strong>the</strong> overlapped I/O routines, it isoften necessary to fill an area with blanks, dashes,or some o<strong>the</strong>r character.A table of <strong>the</strong> decimal equivalent of variousEBCDIC (Al) characters may be found in <strong>the</strong> CSPmanual. However, it is usually easier to obtain<strong>the</strong>ir value indirectly with a DATA statement. Forexample, to fill a printer output line with dashes,you would place a DATA statement in <strong>the</strong> beginningof your program:DATA IDASH/ 1 -Comparing Alphabetic Fields--NCOMPThe requirements for alphabetic comparisonscan usually be broken into two main classifications:1. Comparing to determine whe<strong>the</strong>r <strong>the</strong>re is amatch/no match condition.2. Comparing to determine whe<strong>the</strong>r one field ishigher than, lower than or equal to ano<strong>the</strong>rfield.Because <strong>the</strong> first is quite a bit simpler than <strong>the</strong>second, <strong>the</strong>se two types of alphabetic compares willbe discussed separately.placing <strong>the</strong> dash character between <strong>the</strong> quotes orapostrophes. Then <strong>the</strong> FILL statementCALL FILL (IOUT,1,120, IDASH)would fill <strong>the</strong> IOUT array with <strong>the</strong> Al code for adash.


Section Subsections Page70 40 20 10Match/No Match Alpha Compare. This operationis common to many commercial applications:• An employee time card may contain a fourlettercode describing what job he worked on,and <strong>the</strong> program must look up a correspondingrate.• An inventory card may contain a two-lettercode indicating unit of measure--LB, GR, EA,etc.• The name field on each input card is comparedwith <strong>the</strong> name field on <strong>the</strong> preceding card; if <strong>the</strong>yare not <strong>the</strong> same, branch to <strong>the</strong> "control break"section of <strong>the</strong> program.If <strong>the</strong> fields to be compared are one or twocharacters long, <strong>the</strong>y may be read into a singleinteger variable and compared like any o<strong>the</strong>rintergers. For example, if <strong>the</strong>ir names are ITHISand ITHAT, <strong>the</strong> statement:IF (ITHIS-ITHAT) 1, 2,1will branch to statement number 2 if <strong>the</strong>y are identical,and statement number 1 if <strong>the</strong>y are different,The format (Al or A2) does not matter, except, ofcourse, that it must be <strong>the</strong> same for both.If <strong>the</strong> fields are longer than two characters,<strong>the</strong>y should be read into integer arrays, in Alformat, and compared with <strong>the</strong> NCOMP function.Using <strong>the</strong> previous example, suppose ITHIS andITHAT are arrays, each containing ten alphabeticcharacters.IF(NCOMP(ITHIS, 1, 10, ITHAT, 1))1, 2,1will work <strong>the</strong> same as <strong>the</strong> simple IF statementshown earlier.Don't try to compare alphabetic fields that havebeen stored as real variables. Two six-characterfields, called THIS and THAT, may be read froma card and moved <strong>about</strong> in core just like any o<strong>the</strong>rreal variables; however, <strong>the</strong>y cannot be comparedvalidly. The statementIF(THIS-THAT)1, 2, 1will not always branch to statement number 1 if<strong>the</strong> two fields are different.


Section SubsectionsPage70 40 20 11High/Low/Equal Alpha Compare. Everything said<strong>about</strong> <strong>the</strong> Match/No Match compare also applieshere, with two exceptions:1. The fields to be compared should always bein Al format.2. The Al representation for a blank must bechanged if you want it to fall in <strong>the</strong> propercollating sequence.Figure 70.31 shows <strong>the</strong> decimal representation ofvarious characters in Al format. Note that <strong>the</strong>blank falls after <strong>the</strong> letters and numbers. If it isleft <strong>the</strong>re, alphabetic compares will yield an ascendingsequence--for example:WILLIAMSONWILLIAMSbbWILLIAMbbbra<strong>the</strong>r than <strong>the</strong> correctWILLIAMbbbWILLIAMSbbWILLIAMSONThis can easily be corrected if blanks areconverted from 16448 to something less than-16064, <strong>the</strong> letter A. In fact, you might as wellchange it to -16448. With a DO loop, <strong>the</strong> inputrecord can be scanned for +16448s, and each onefound can be changed to -16448.They need not be converted back to +16448 forprinted output, since any invalid character (suchas -16448) will be printed as a blank anyway. Forpunched output, however, this will not be so, and<strong>the</strong> -16448s should be changed back to +16448s.CharacterAlDecimalEquivalentCharacterAlDecimalEquivalentCharacterAlDecimalEquivalentA —16064B —15808S —7616T —7360blank16448-f--. (period) 19264Notepositionof blankC —15552U —7104


Section Subsections Page70 40 20 12Working with Zone Punches -- NZONEThe top three rows of <strong>the</strong> data processing card arecommonly called <strong>the</strong> "zone" rows, and a punch inone of <strong>the</strong>m is called a zone punch. The top row iscalled <strong>the</strong> 12 zone; <strong>the</strong> next, <strong>the</strong> 11 zone; and <strong>the</strong>next (<strong>the</strong> 0 row), <strong>the</strong> 0 zone. (See Figure 70.32. )A digit overpunched with a 12 zone punch is takento be positive; an 11 punch indicates negative. Thisis quite reasonable, since an 11 punch alone is aminus sign, and a 12 punch is an ampersand (&) orplus sign (+), depending on <strong>the</strong> coding scheme andcardpunch used. (While many people use <strong>the</strong> term"X punch" instead of 11 punch, both mean <strong>the</strong> same. )The 12 punch is rarely used, since it is easierto have no zone punch for positive numbers.The zone punch, when used to indicate <strong>the</strong> sign,should be placed over <strong>the</strong> units (rightmost) positionof <strong>the</strong> field. For example, -1675 would be punchedwith an 11 punch over <strong>the</strong> 5.This practice will result in a card code equivalentto one of <strong>the</strong> letters J through R, or a negativezero. The table below shows <strong>the</strong> card code equivalents:These punches11,011,111,211,311,411,511,611,711,811,9Mean ei<strong>the</strong>r this Or this- 0- 1-2-3-4- 5- 6- 7-8- 90JKLM0PQIf <strong>the</strong> card containing <strong>the</strong> 1675 field were interpreted,or listed character for character, it wouldappear as 167N, where <strong>the</strong> character N is equivalentto a 5 and an 11 punch.In a few cases, zone punches may also be foundin card columns o<strong>the</strong>r than <strong>the</strong> low-order digits ofa numeric field. This is particularly true in installationsthat once had a unit record, or punched card,system. In such a system, zone punches providedan easy way to pack additional data into a punchedcard.One of <strong>the</strong> advantages of <strong>the</strong> CSP overlappedI/O routines is that <strong>the</strong>y allow <strong>the</strong> input and outputof fields with zone punches. This is normally quitedifficult with standard FORTRAN READs andWRITEs, since <strong>the</strong> 11,0 (- zero) punch is not permitted.12 row--►11 11:11N.y.0 rowetc.R Figure 70.32.HAn 11-punch, X-punch, or minus signA 12-punch, &, or plus signAn N or a 5 with an 11-punch08000000000007000000000000011000000000000I ) 3 4 31/II 411113 14 n isittannlinnunnynntonnuussuniniu11111 1111111111111111111111111111111111122222222222222222222222222222222222222222\333333333333333333333333333333333333333334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 455555551555555555555555555555555555555555566666656666666666666668685666666866668138551711117771171717711171711111111111111111181188888801111111111881838111118118811111181111011118111\ 99399999999:1999999999e999999999199999989.....113451/111111113131113 autlitatinnzirsuansimmusinsinuna


Section SubsectionsPage70 40 20 13The NZ ONE Subroutine. The NZ ONE subroutine You supply <strong>the</strong> NEWZ parameter, indicating tohas been included in CSP to allow you to interrogate <strong>the</strong> subroutine what you want done with <strong>the</strong> old zonea zone punch, obtaining a code that indicates its punch:status, and to modify a zone punch. If you wishedto operate on <strong>the</strong> 18th character in <strong>the</strong> INOUT array, NEWZ Action Taken<strong>the</strong> call to NZ ONE would be1 Make <strong>the</strong> zone a 12CALL NZ ONE (INOUT, 18, NEWZ, NOLDZ) 2 Make <strong>the</strong> zone an 11NOLDZ will be returned to you, indicating whatzone punch was present:NOLDZ Zone Punch Character3 Make <strong>the</strong> zone a 04 Remove <strong>the</strong> zonemore than 4 Let <strong>the</strong> zone alone1 12 A--I2 11 J--R3 0 S--Z4 none 0--9more than 4 - special characterNote that an NOLDZ of 4 or more does not tellyou what zone punch was present, but only thatINOUT(18) contains a special character.


Section Subsections Page70 50 01 01FORTRAN CORE SAVING TIPSGeneralThe way in which you code your FORTRAN programswill have a considerable effect on <strong>the</strong>ir size. Thedifference between efficient and inefficient codingmight be as much as several hundred words. Thismay mean <strong>the</strong> difference between a program thatfits in core and one that doesn't, or <strong>the</strong> differencebetween one that requires many time-consumingoverlays and one that requires none.In general, <strong>the</strong> larger a program, <strong>the</strong> moreslowly it will run--not because it does more, butbecause of <strong>the</strong> overlays (SOCALs, LOCALs andLINKs) required to fit it into core. When writingyour programs, <strong>the</strong>refore, you should make everyeffort to keep <strong>the</strong>m small. One way to do this isto know which FORTRAN techniques save corestorage, and which ones consume it excessively.A better way is to design programs that do just onejob, ra<strong>the</strong>r than many. (Subsection 25.30.20 containsa discussion of <strong>the</strong> advantages of modularprogramming.) Still ano<strong>the</strong>r way is to use efficientoverlays (see Section 65).The core storage requirements for any particularprogram can be split into three major elements:• The object code generated by <strong>the</strong> compiler• The subroutines, which actually do <strong>the</strong>work• The data area, where all variables andconstants are storedYou should realize that very little actual workis done "in line" by your program; when <strong>the</strong> end-ofcompilationsummary says your program size is1000 words, it means that your program has beentranslated into 1000 words of branches or linkagesto subroutines, plus some housekeeping to prepare<strong>the</strong> linkages. The exception to this statement isinteger arithmetic, which is done in line, withoutsubroutines. However, all subscript calculation,real arithmetic, and input/output is accomplishedby subroutines.Some of <strong>the</strong> core saving tips in this section aredirected toward reducing <strong>the</strong> subroutine requirements,while o<strong>the</strong>rs will reduce <strong>the</strong> amount ofin-line coding.If you modify an existing program, incorporatingsome of <strong>the</strong>se tips, don't expect to find all <strong>the</strong> savingsreflected in <strong>the</strong> end-of-compilation summary.Check <strong>the</strong> list of required subroutines; you mayhave eliminated some of <strong>the</strong>m.


Section SubsectionsPage70 50 10 01Reducing Program SizeUse <strong>the</strong> DATA StatementThe DATA statement is a recent addition to <strong>1130</strong>FORTRAN, having been incorporated into Version 2of <strong>the</strong> <strong>1130</strong> Monitor System. Basically, it is usedto create constants at <strong>the</strong> time <strong>the</strong> program is compiled,ra<strong>the</strong>r than each time <strong>the</strong> program is executed.It saves some time, but this should not beenough to notice in <strong>the</strong> overall run time of mostprograms. Much more important, <strong>the</strong> DATA statementsaves core storage.It is a nonexecutable statement, like <strong>the</strong> TYPE,DIMENSION, EQUIVALENCE, etc. , statements,and requires no core storage. It provides only astarting value for variables. For exact rules concerning<strong>the</strong> use of <strong>the</strong> DATA statement, see <strong>the</strong> <strong>1130</strong>FORTRAN manual; in this section you will see someexamples of its use.• Case 1: Initialize Tables at <strong>the</strong> Beginning ofer*N a ProgramAlmost every program begins with statementssuch asDO 16 J = 1,50TOT (J) = 0.016 SUBT(J) = 0.0This coding, which requires <strong>about</strong> 27 words ofstorage, can be replaced withDATA TOT/50*0.0/, SUBT/50*0. 0/which requires no storage.Let us stress three facts at this point:1. You still require two 50-position arrays.The DATA statement merely takes care of initializing<strong>the</strong>ir values.2. If you say TOT (1) = 1.5 later in <strong>the</strong> program,this will be done, and TOT (1) will no longer be 0.0.3. If you want to clear out <strong>the</strong>se tables againduring <strong>the</strong> execution of <strong>the</strong> program, you must use<strong>the</strong> conventional DO loop. You cannot GO TO orreexecute <strong>the</strong> DATA statement, since it is a nonexecutablestatement and, in fact, no longer existsonce <strong>the</strong> program is loaded.• Case 2: Initialize Indicators, etc.The program PAY04, listed in Subsection70.50.30, contains <strong>the</strong> following FORTRANstatements:T= 0.IERR = 0ICOL = 1IN1 = 1XOT =. 0.XBN = 0.XSP = 0.XREG = 0.IPAGE = 0LINE = 50which require 40 words of object coding. They maybe replaced byDATA T/0./, IERR/0/, ICOL/1/, etc. , etc.• Case 3: Setting a Variable to Different ValuesAgain inspecting <strong>the</strong> same program, PAY04, wefindGO TO (76,77, 78,79,80,81),NOPLT76 ILST=250GO TO 8377 ILST=90GO TO 8378 ILST-200GO TO 8379 ILST=50GO TO 8380 ILST=150GO TO 8381 ILST=3083 continuewhich requires 44 words of object coding. It maybereplaced by a combination ofDIMENSION IFACT (6)DATA IFACT/250, 90, 200, 50, 150, 30/and <strong>the</strong> statement (using eight words)ILST = IFACT(NOPLT)Placing <strong>the</strong> six constants in <strong>the</strong> IFACT array addsno core requirements, since <strong>the</strong>y were in corebefore, as INTEGER CONSTANTS (see listing atend of compilation).


Section Subsections Page70 50 10 02• Case 4: Creating Alphabetic Masks for <strong>the</strong>EDIT SubroutineIf you want to print or punch your FORTRAN resultswith commas, floating dollar signs, etc. , youare probably using <strong>the</strong> EDIT subroutine found in CSP.This subroutine requires an Edit mask, which maylook likebb, bb$. bbCRThere are two ways to obtain this mask, which mustbe in Al format in an eleven-word integer array(call it MASK). You can read it off a card, or youcan look up <strong>the</strong> decimal equivalents of <strong>the</strong> EBCDICcodes, and set each one equal to <strong>the</strong> desiredcharacter:MASK (1) = 16448 blankMASK (2) = 16448 blankMASK (3) = 27456 commaMASK (4) = 16448 blankMASK (5) = 16448 blankMASK (6) = 23360 dollar signMASK (7) = 19264 periodMASK (8) = 16448 blankMASK (9) = 16448 blankMASK (10) = -15552 letter CMASK (11) = -9920 letter RThe DATA statement allows you to eliminate thissixty-six-word series of commands, replacing it withDATA MASK/W,'13',',','bt,'13',1$1,'•','b',11Y,'C','R'/where b indicates a blank.Keep FORMAT Statements Compact<strong>1130</strong> FORTRAN includes a very flexible repertoireof FORMAT codes, and often gives you severaldifferent ways to achieve <strong>the</strong> same results. Forexample, you can specify ei<strong>the</strong>r (F6.2, F6.2, F6.2)or (3F6. 2). With alphabetic heading data, <strong>the</strong>re aremore options. To type a line which readsbbbbbbbbbTOTALyou can use as FORMAT statements <strong>the</strong> following:a. FORMAT(14HbbbbbbbbbTOTAL)b. FORMAT('bbbbbbbbbTOTAL')c. FORMAT(9X, 'TOTAL')d. FORMAT(9X, 5HTOTAL)etc.If you suspected that some options used more corestorage than o<strong>the</strong>rs, you would be correct. Optionsa and b force <strong>the</strong> compiler to allocate nine words forthis FORMAT STATEMENT; options c and d onlyrequire six words.The main difference between <strong>the</strong> two styles is <strong>the</strong>manner in which you have generated nine blankcolumns -- 9X or 'bbbbbbbbb'. The 9X is coded andcompressed into one word; <strong>the</strong> 'bbbbbbbbb' requiresone word, plus a string of five words, each containingtwo alphabetic blanks.The difference does not appear to be great, butconsider your typical commercial report writingprogram with its many long FORMAT statements.The difference between <strong>the</strong> best (smallest corerequirement) and what <strong>the</strong> programmer has actuallyused may be substantial.This topic is fur<strong>the</strong>r complicated by <strong>the</strong> fact that<strong>the</strong> X specification is best for large numbers ofspaces, while <strong>the</strong> literal or ' specification is bestfor small numbers. In summary, to get one or twospaces, it is best to enclose blanks within quotes(or use <strong>the</strong> H specification). To get three or morespaces, use <strong>the</strong> X specification.


Section SubsectionsPage70 50 10 03Code Efficient I/0 StatementsThe manner in which you code your I/O statementscan have a significant effect on <strong>the</strong> size of yourprogram. The FORTRAN compiler will generate acertain fixed amount of coding for each READ orWRITE:READ 3 wordsWRITE 4 wordsplus a certain additional amount (average) for eachitem in <strong>the</strong> I/0 list:variable -- e. g. , AB or I 2 wordsvariable, constant subscript --e. g. , X(3) 4 wordsvariable, variable subscript --e.g. , X(J)5 wordsarray name3 wordsimplied DO loop e. g. , (X(N), N=1, 6)19 wordsIf you wish to WRITE a line containing eight realvariables, you may codeWRITE (3, XXX) A, B, C, D, E, F, G, Hand use 4 + (8 x 2)or 20 words. Or you couldEQUIVALENCE each of <strong>the</strong> eight items to a variablein <strong>the</strong> ANSWR arrayEQUIVALENCE (A, ANSWR(1))EQUIVALENCE (B,ANSWR(2))etc.and codeWRITE (3, XXX) ANSWRwhich would require only 4 + (1 x 3) or 7 words.You would not want to useWRITE (3, XXX) (ANSWR (K), K=1, 8)since that would require 23 words, more than <strong>the</strong>original. In fact, <strong>the</strong> implied DO loop I/O formatshould be avoided wherever possible. This canusually be accomplished with <strong>the</strong> EQUIVALENCEstatement. For example, if you want to WRITE<strong>the</strong> first six items of <strong>the</strong> eight-item ANSWR array,you would codeDIMENSION ANSWR(8), ANS6(6)EQUIVALENCE (ANS6(1), ANSWR(1))• • • •WRITE (3, XXX) ANS6saving 23-7 or 16 words.Avoid Long Subroutine Argument ListsThe coding generated for CALLs to subroutines isquite similar to that of READs and WRITEs -- aninitial CALL (two words) plus a certain number ofwords for each argument:ApproximateType of ArgumentCore RequiredNone0 wordsConstant — e. g. , 61 wordUnsubscribed Variable -- e.g., X or I 1 wordArray Name, -- e. g. , LARRY1 wordVariable with Constant Subscript --e.g. , A(7)8 wordsVariable with Variable Subscript --e.g. , A(N)13 wordsYou can see that <strong>the</strong>re is quite a difference betweena. CALL SUB 2 wordsb. CALL SUB (X, Y, Z) 5 wordsc. CALL SUB (LARRY) 3 wordsd. CALL SUB (A(1), A(2), A(3)) 26 wordse. CALL SUB (A(I), A(J), A(K)) 41 wordsThere are many ways to avoid those types of CALLSthat consume core storage.Item d, CALL SUB (A(1), A(2), A(3)), could bereplaced byEQUIVALENCE (A(1), X)EQUIVALENCE (A(2), Y)EQUIVALENCE (A(3), Z)andCALL SUB (X, Y, Z)or byDIMENSION XA(3)EQUIVALENCE (XA (1) , A(1))andCALL SUB (XA)or by placing <strong>the</strong> A array in COMMON and usingCALL SUBwith no arguments.Item e, CALL SUB (A(I),A(J), A(K)), could bereplaced byCALL SUB (A, I, J, K)which would require a revised subroutine but wouldsave 41 -6 or 35 words. Or it could be replaced byCALL SUB (I, J, K)with <strong>the</strong> A array placed in COMMON.


Section Subsections Page70 50 10 04Avoid Arithmetic with Variables Having ConstantSubscriptsIn <strong>the</strong> average arithmetic statement, a variable witha constant subscript (TOTAL(10)) will require twowords more coding than an unsubscripted variable(TOTDF). Such usage can always be avoided by anEQUIVALENCE statement such asEQUIVALENCE (TOTDF, TOTAL(10))Then, ra<strong>the</strong>r than sayTOTAL(10) = TOTAL(10) + AMTyou would codeTOTDF = TOTDF + AMTand save two words.In a large program, <strong>the</strong> saving can be considerable.Fur<strong>the</strong>rmore, it makes <strong>the</strong> program morereadable, since TOTDF can be a more descriptivename than TOTAL(10).The data can be referred to by ei<strong>the</strong>r name:• TOTDF when doing arithmetic• TOTAL(10) when you want it subscripted --for example, when clearing an array of totals, whenwriting an array of totals on <strong>the</strong> disk, etc.


Section SubsectionsPage70 50 20 01Reducing Subroutine RequirementsRaising a Real Number to a Whole PowerFORTRAN allows you two ways to do this. Forexample, to square X, a real number, ei<strong>the</strong>r X**2or X**2. may be used. While <strong>the</strong> two look almostidentical, <strong>the</strong> first will use <strong>the</strong> "real base to integerexponent" routines (<strong>about</strong> 82 words) and <strong>the</strong> secondwill use <strong>the</strong> "real base to a real exponent" routines(<strong>about</strong> 242 words).In this case you should code X**2 and save <strong>about</strong>160 words of core storage, unless, of course, yourprogram really requires a real base to a realexponent somewhere else.A programmer will often use this form of arithmeticto obtain <strong>the</strong> various powers of ten -- forexample:10**N10**0 = 110**1 = 1010**2 = 100However, if this is <strong>the</strong> only way in which <strong>the</strong>double asterisk is used in a particular program, itwill usually be more economical to code:DATA TEN/1. ,10. ,100. ,1000. , etc./and <strong>the</strong>n use subscripting...TEN (N+1)This will eliminate <strong>the</strong> 82-word subroutine.SQRT vs **.5To take <strong>the</strong> square root of a number, you have twoalternatives: <strong>the</strong> SQRT function or <strong>the</strong> 1/2 poweroption (**. 5). While both will give <strong>the</strong> same result,<strong>the</strong> core storage required is quite different. TheSQRT routine is <strong>about</strong> 76 words in length; <strong>the</strong> "realbase to real exponent" routine, <strong>about</strong> 242 words.The difference, <strong>about</strong> 166 words, is substantial.Of course, if your program must use <strong>the</strong> "realbase to real exponent" routine (for example X**A),you need those routines anyway. If that is so, use<strong>the</strong> **. 5 option ra<strong>the</strong>r than SQRT; o<strong>the</strong>rwise, youwill have both packages in core storage.


Section Subsections Page70 50 20 02Don't Include Unneeded I/O Devices on *IOCS CardIn many installations, a stack of all-purpose *IOCScards is left on <strong>the</strong> card reader, or nearby, to save<strong>the</strong> trouble of punching a new card for every program.However, you should be aware that <strong>the</strong> card*IOCS(CARD, DISK, TYPEWRITER, KEYBOARD,1132 PRINTER)will cause all those I/O routines to be added to yourprogram, whe<strong>the</strong>r you use <strong>the</strong> devices or not. Thesize of <strong>the</strong> package to handle those devices listedabove is <strong>about</strong> 620 words for <strong>the</strong> disk, and 1780words for <strong>the</strong> non-disk group. Because of <strong>the</strong> wayin which <strong>the</strong> SOCAL system operates, your programmay still fit in core, but with more overlays, thuscausing it to run more slowly.It would be wiser to maintain a set of cards withonly one device per card*IOCS(CARD)*IOCS(1132 PRINTER)*IOCS(DISK)etc.and use only those that are really needed. In thisway no unnecessary I/O packages will be includedwith your program.Remove FIND Statements If You Have SOCALs orLOCALsEven if you have included FIND statements in yourprogram, <strong>the</strong>y will not be executed if SOCALs orLOCALs are being used. The FIND subroutine(SDFND), however, remains in core storage.Therefore, if you know you are going to haveSOCALs or LOCALs, remove all FIND statements,and you will save <strong>about</strong> 80 words of core storage,plus three words for each statement.


Section SubsectionsPage70 50 20 03Remove <strong>the</strong> TRACE from Production-StatusProgramsThe trace features furnished in <strong>1130</strong> FORTRAN arean invaluable aid in debugging. Most users, when<strong>the</strong>y compile <strong>the</strong>ir programs, include <strong>the</strong> *ARITH-METIC TRACE and *TRANSFER TRACE cards,just in case something goes wrong. However, since<strong>the</strong>se features consume both core space and time,<strong>the</strong>y should be eliminated when no longer needed.Core requirements are increased by <strong>about</strong> 140words, and execution time is slowed down for eachequal (---) sign, IF statement, or computed GO TOexecuted. This is true regardless of <strong>the</strong> status ofSense Switch 15. In addition, <strong>the</strong> object codinggenerated may be slightly greater.


Section Subsections Page70 60 10 01FORTRAN EXECUTION TIMES<strong>Processing</strong>It is possible to estimate <strong>the</strong> length of time it willtake to execute an arithmetic block of FORTRANcoding. Inspect your coding sheets, or programlistings, and count <strong>the</strong> average number of times <strong>the</strong>operations shown in Figure 70.33 will be executed.Then use <strong>the</strong> times shown in Figure 70.33 toestimate <strong>the</strong> total execution time.Note that you must consider <strong>the</strong> probability ofexecution, not just <strong>the</strong> number of appearances. Ifa certain loop will be executed 15 times, on <strong>the</strong>OperationApproximate` time inMicroseconds,• each execution(time for standard precisionuse in paren<strong>the</strong>ses)OperationApproximate* time inMicroseconds,'" each execution(time for standard precisionuse in paren<strong>the</strong>ses)GET 2250 + 2190C real = 300 (360)PUT 3450 + 3090 C integer = 22EDIT630+ 90 S + 180 MMOVE 300 + 45 C +real 440 (460FILL 300 + 30 C +integer 12WHOLE 1400 -real 490 (560)NCOMP 250 + 75 C -integer 12NZONE 350 *real 790 (560)!COMP 500 + 95 C *integer 30NSIGN 240 /real 2100 (800)ADD 2160+ 216 L /integer 80SUB2160+ 216 LMPY 2400+ 120 P real”real 13300 (8000)DIV 4000 + 0(445 + 667 DIV) integer*•integer 4700 (3800)Al DEC 700+ 54A FLOAT 330DECA1 180+ 117 A FIX 140Al A3 470+ 1084 A subscript (no variable) 25A3A1545+ 156 APACK 360 + 63 A subscript (one variable) 280UNPAC420+ 66 ADPACK 392 D subscript (two variables) 390DUNPK360 DSIN 5400 13000) subscript (three variables) 530COS 5900 (3400)ATAN 8900 (5300) DO 22 + 50 NSORT 10400 (4500) IF (real) 190 (210)EXP 4400 (2000) IF (integer) 30ALOG 8000 (5100)TANH 8100 (4300) GO TO 7GO TO ( 1, N 7N = The number of times through <strong>the</strong> DO loopC = Length of <strong>the</strong> field, in charactersS = Length of <strong>the</strong> source fieldM = Length of <strong>the</strong> edit maskP = Length of <strong>the</strong> multiplier field x length of <strong>the</strong> multiplicand field(significant digits only — don't count leading zeros)A = Length of <strong>the</strong> Al fieldD = Length of <strong>the</strong> packed decimal (D4) fieldL = Length of <strong>the</strong> longer of <strong>the</strong> two fields (significant digits onlydon't count leading zeros)Q = Number of significant digits in <strong>the</strong> quotient (result) fieldDIV = Number of significant digits in <strong>the</strong> divisor (denominator) field• Most timings are approximate and are based on test runs of "typical" cases, using fields of "average" size,magnitude, etc. Unusual cases may (or may not) differ significantly from <strong>the</strong> timings obtained from <strong>the</strong>given equations. This is particularly true of <strong>the</strong> decimal arithmetic routines (ADD, SUB, MPY, DIV).** Based on 3.6-microsecond CPU cycle speed. Multiply by 0.6 to obtain timings on 2.2-microsecond CPU.Figure 70. 33,


Section Subsections Page70 60 10 02average, every operation within it should be counted15 times. If, in <strong>the</strong> o<strong>the</strong>r hand, a certain routine isonly executed half <strong>the</strong> time, it should be counted ashalf an execution. To illustrate:X=X+6IF(X-77.)1,2,11 Z=X*14.GO TO 32 Z=X*16. /W3 CONTINUEIf you assume extended precision, and a probabilityof one-third for path 1 and two-thirds forpath 2, <strong>the</strong> estimated execution time isOperation No. of Times x Unit Time * Total*1+1/3+2/3=2 330 6601 440 4401 490 4901/3+2/3=1 790 7902/3 2100 1400FLOAT 1 330 330(6 to 6.0)IF (real) 1 190 190GO TO 1 7 74307*In microsecondsOn <strong>the</strong> average, <strong>the</strong>n, this portion of your programwill require 4307 microseconds, or 4.307milliseconds, or .004307 seconds.Figures 70.34 through 70.40 show someadditional examples.


Section Subsections Page70 60 10 03FORTRAN TIMING ESTIMATE WORKSHEETCODING1CzX ---- X + 61 F ( X - 77.) /, 2, /z = x * /47",GO 70 ....0A/t--- DZ/T 6'.=' E1/ER)/ & 7-//wE's. x * /61 ,/l() Two OUT a,- r/7,/ez-3 G-A/r//t/e/riAie:.5-ComponentNumberofExecutionsTime per Execution,MicrosecondsExtension,Microseconds/nea/ = Ahee '4(3 ,930 074 re,a/ / 4.0D 4 1 G,zo,i7-- / 250 3 3 42– /-4.0:W / 4 0 1 9 O//c-Y#--e,-7/) / / 9eV / 9 ,e22 7-6,- , / 7 77\e" /W/ °Z.9 790 7 9 0/f-,/ 2 /e7d.-.2 / 1 o aTOTAL = / 7Figure 70, 34.


Section SubsectionsPage70 60 10 04FORTRAN TIMING ESTIMATE WORKSHEETCODINGx(r) - x (r) ,, a/F(X (11)-77.) I, 2) ZI z. x(r) * /4t.GO 77 32 z - x rri* /a.41/3 cow,/ /e../.e-Same as /rag ace 70.31 exceo/ ii-A.it‘x As -5-4,6sc:-.. .e, l'etteComponentNumberofExecutionsTime per Execution,MicrosecondsExtension,Microseconds.rarie .01.5 A./.6,‘../.-d. 70.3I i 2 / 7,f;.thscr/A i Yor. I 22:0 / / Z DTOTAL =3 3 3 7Figure 70. 35.


Section Subsections Page70 60 10 05FORTRAN TIMING ESTIMATE WORKSHEETCODINGC .7",K2/4'///7 72 /DIJO — DO i,e)0/%'.90 /7 Z = _Ili /000. . .. . .. ,. .,• "/ 7 /./7./r/f/i.f.."--ComponentNumberofExecutionsTime per Execution,MicrosecondsExtension,Microsecondsre-,Z.4.9 /oc/o 22 0 IL. .r.5-2.; ,,3 ,L," c O 2 2TOTAL=5O a 2 gFigure 70. 36.


Section SubsectionsPage70 60 10 06FORTRAN TIMING ESTIMATE WORKSHEETCODINGC COUNT 7-o IDOD (//v7E6:e-Rs)2- --- 4°7 /,.(z• -/ao0) /) 2) 21 z ---i- 7, YGO 7Z2 72 ca.v.r/x../ve-ComponentNumberofExecutionsTime per Execution,MicrosecondsExtension,Microseconds//Weyer-- /000 22 2 0 e) 0-/),4-yer /4 0 .€ /2 / 2 0 //,C /ever) /ea.? .90 3 e 0 3 0GO, 70 /eeo 7 7 a 074-.41efe.-. /000 /2 /2000TOTAL =3 a 4 2Figure 70. 37.


Section Subsections Page70 60 I 10 07FORTRAN TIMING ESTIMATE WORKSHEETCODING c 6-0 6/4/7— TO /04520C 57 4 A/z7 -4/eZ) ic2R,E-C/ -5/0A./X = 0. 07 i (X - /000) ;2 , 2i X = X 7' I,GO TO 7f ea/t/r/eltraComponentNumberofExecutionsTime per Execution,MicrosecondsExtension,Microsecondstw/_ /a 00 360 30000- fled/ Zoo/ s60 5'‘ 0 s6 0//c(f40/) /.,0/ /90' / 0/90Go 7-0 /&e,0 7 70 ,o e974 .--ea/ /.° 4 6 o 4 6 a 0 0 0TOTAL =/ .5 7,75OFigure 70. 38,


Section Subsections Page70 60 10 08FORTRAN TIMING ESTIMATE WORKSHEETCODINGC COUNT 7D /.aC X 7.-/V1,4.01 ic)/C'EG-/-570AlX' i.,.7 bc- (x -/oaa.) /, 2, 2.1 x = x -,' 2 1 .ao 7'0 72 G0,4/7/A//.41"ComponentNumberofExecutionsTime per Execution,MicrosecondsExtension,Microseconds/ea/ = /000 330 3 0000-7-ea/ Atoo/ 400 4 90¢90/4-6-gdi) /oo/ /90 / 9 0 / 9 67GO 7-0 /4,00 7 7 o 62071 /led/ X000 itio 4 4 0 0 0 z;TOTAL =/437 8 OFigure 70, 39,


Section Subsections Page70 60 10 09FORTRAN TIMING ESTIMATE WORKSHEETCODINGC COUNT TO /aoa, z7z-c/Ad4z ,4,P/77/C ASSUME zx /47 2 0 7--&--N ,f)//715- ZOO 1/-c 4551//wE 7-14/.0--/7/ -/7 c-,;(/.5-7--.9x/r Oz' a/v4c. ('r 1)C ,4550/wE re.t/ -D /a /7 cart/S7744/7" ac. /00d2(/./06V.c4zz / -*/zZ (rX) /) /4 O)7 / C (A. fo/wP(2-x, /.2 /o) S/o0o, /2 /0)) 6 0, 2i CALL 40.0 (rX,/, /42) /-(1) 6 2, NE)GO 7-0 72 coA/7"?.veetEComponentNumberofExecutionsTime per Execution,MicrosecondsExtension,Microseconds/A"- ii/e194p.:j /00/ ,.., 3 a c) „5' 4L)Go io /o 0 v 7 7 0 0 ‘:-..)C/ZZ .1 30774/0x 3© 6 0 ,:3/17.2e/ii /oo / 2_507=/vx 75 / a 0 / 0 0 044V /D00 2/aa 74 4 x e/. 3 o 2 e2 0 0TOTAL = ¢j0 6 29 3 oFigure 70, 40.


Section SubsectionsPage70 60 20 01Summary and ConclusionFrom <strong>the</strong> examples shown you may draw someconclusions:1. Integer arithmetic is much faster than realarithmetic.2. Extended precision and standard precisionreal arithmetic are of essentially <strong>the</strong> same speed.3. Decimal arithmetic is fairly slow.4. Subscripting adds a considerable amount oftime to arithmetic calculations. (It also increases<strong>the</strong> size of your program. )5. Unnecessary use of mixed mode expressionscan add somewhat to execution time.


Section70Subsections60 20Page02FORTRAN TIMING ESTIMATE WORKSHEETCODINGComponentNumberofExecutionsTime per Execution,MicrosecondsExtension,MicrosecondsTOTAL =


Section SubsectionsPage75 00 00 01Section 75: SORTING WITH YOUR <strong>1130</strong>CONTENTSIntroduction 75. 01.00Some Preliminary Information 75.10. 00Alternate Approaches 75. 20. 00Use of File Organization 75. 20. 10Pure SequentialIndexed SequentialRandomSorting Offline 75.20.20Methods of Sorting 75.30.00Introduction 75.30.01Key Compare vs Key Value(Radix) <strong>Techniques</strong>Sequence-Creating vsSequence Reducing <strong>Techniques</strong>Degree of <strong>Data</strong> AccessibilityDegree of GeneralityInternal Sorting Methods 75. 30. 10SelectionExchangingMergingInsertionReplacement SelectionAddress CalculationExternal Sorting Methods 75.30.20Key (Tag) SortingKey Sort vs Record SortA Detailed Look at an <strong>1130</strong> RecordSort 75.40. 00Summary 75. 50. 00


Section SubsectionsPage75 01 00 01INTRODUCTIONMost data processing applications require a sequentialarrangement of <strong>the</strong> information to be processed.Frequently, a collection of related information, orfile of data records, is to be updated by adding,deleting, or changing information as new transactionsoccur. Before <strong>the</strong> new transactions can beapplied against <strong>the</strong> main or master file, however,a method must be established whereby a transactioncan be associated with a master. One such methodwould be to arrange <strong>the</strong> transactions in <strong>the</strong> samesequence as <strong>the</strong> master file (see Figure 75.1). Forthis purpose, <strong>the</strong> master and transaction files aresequenced by some common identifying characteristic,such as part number, account number,employee number, etc. Similarly, when payrollearnings are to be computed or data is to be tabulatedin accordance with some scheme of classification,it is necessary to arrange <strong>the</strong> informationin a sequence that facilitates processing.Sorting is simply a systematic method forarranging or rearranging a file of data records insequence by some group of characters that constitute<strong>the</strong> control field, or control word, of <strong>the</strong>record. (Control words are sometimes called <strong>the</strong>key.)This section discusses sorting with your <strong>1130</strong>but attempts first to show you (1) a possible way to2345106107108109308676 81n303809Master FileTransaction or Detail FileFigure 75.1. Transaction file and master file in same sequenceavoid sorting with your <strong>1130</strong> and (2) a way to ease<strong>the</strong> task of writing a sort program, if one must bewritten.


Section Subsections Page75 10 00 01SOME PRELIMINARY INFORMATIONControl Field or WordIt may be useful to review <strong>the</strong> meaning of somebasic terms and concepts that are part of sortingterminology. As already stated, sorting concerns<strong>the</strong> arrangement of a file which is a collection ofrelated data records stored in a data storagemedium (cards or disk). The file size specifies<strong>the</strong> total number of records contained in <strong>the</strong> file.The input file is <strong>the</strong> collection of data recordsintroduced as input to <strong>the</strong> sorting process, while<strong>the</strong> output file represents <strong>the</strong> collection of recordsproperly sorted and stored.To place a file into a specified sequence, eachof its records must somehow be uniquely identifiable.The identification is made by means of <strong>the</strong>control key, a group of characters arranged in acertain way. The contiguous groups of charactersthat are placed in order within <strong>the</strong> control key are•called control fields. Each of <strong>the</strong> control fieldsbears certain identifying information, such as payrollnumber, name, organization code, address towhich checks are sent, etc. The data record controlfield that is most important in sequencing <strong>the</strong>records is called <strong>the</strong> major control field. Whentwo records contain identical data in <strong>the</strong>ir majorcontrol field, <strong>the</strong>y must be compared by <strong>the</strong> nextmost significant, or minor, control field in orderto be sorted into <strong>the</strong> proper sequence. If even <strong>the</strong>minor control fields are equal, <strong>the</strong> next mostsignificant or minor control field must be considered,and so on. Thus, for <strong>the</strong> purpose of successivecomparison, all <strong>the</strong> control fields within<strong>the</strong> control key are arranged in major-minor (thatis, decreasing) order of significance (see Figure75.2).Since <strong>the</strong> control fields of a record may consistof numbers, letters, or special characters ($, -,+, etc.), an order must be prescribed for <strong>the</strong>characters of <strong>the</strong> control field to determine whichis greater and which is less. Such an order ofcharacters, upon which <strong>the</strong> sequencing of recordsis based, is known as <strong>the</strong> collating sequence. In<strong>the</strong> <strong>1130</strong>, <strong>the</strong> collating sequence is A - Z, 0 - 9,blank, and special characters, in ascending order(see 70.40.20). The collating sequence determines<strong>the</strong> proper order of <strong>the</strong> control keys.Using <strong>the</strong>se definitions, sorting may now bedefined more accurately as <strong>the</strong> process wherebya file of records is placed in order by <strong>the</strong> collatingsequence of <strong>the</strong> control keys of <strong>the</strong> records.A considerable body of specific sorting termshas been generated over <strong>the</strong> years. To simplifyDisk orcard record:Assembled intocontrol keyor tagSalesmanName(ProductSalesman ClassProductClassSales Analysis/SalesAmountSalesAmountCustomerNameDateJONES A 6.10 xxxx xxxx14.67 xxxx xxxx17 . 76 xxxx xxxxB 14.01376.359 1.98706.13SMITH C 37.38309.76X 101.3767.42WILLIAMS A 8.77336.75601.329 706.14975.93 XXXX XXXXFigure 75. 2,Second MinorControl F ield<strong>the</strong> ensuing discussion, some of <strong>the</strong> more commonlyused terms are explained here.The object of a sort is (to restate it) to place afile of records in a desired sequence. Any groupof data records in which <strong>the</strong> control keys are in <strong>the</strong>desired collating sequence is called a "sequence"-- or, sometimes, a "string". The length of eachsequence can be one or more data records. It hasbeen assumed till now that a sort must be inascending sequence; that is, <strong>the</strong> final sequence ofrecords is such that <strong>the</strong> control key of each successiverecord collates (compares) equal to orhigher than that of <strong>the</strong> preceding record. This need


Section SubsectionsPage75 10 00 02not be <strong>the</strong> case, however. A sort can be in a descendingsequence, with <strong>the</strong> control key of each successiverecord collating equal to or lower than thatof <strong>the</strong> preceding record.Frequently, two or more sorted files have to bemerged into a single file of sequenced records. Ingeneral, "merging" is a technique that collatesseveral sequences of data records to form a singlesequence. The number of files to be combinedduring a merging operation is known as <strong>the</strong> orderof merge, or "merge order". Thus, a merge oforder m is called an "m-way merge". The processingof all <strong>the</strong> records once through <strong>the</strong> mergeis termed a "merge pass", or simply, a "pass".The object of a pass is to reduce <strong>the</strong> number ofsequences (strings) by increasing <strong>the</strong> number ofrecords contained in each sequence. During asingle pass, <strong>the</strong> number of sequences is usuallyreduced by a factor equal to <strong>the</strong> order of merge(m). Several intermediate passes may be requiredto reduce <strong>the</strong> file to a single sequence. A multipasssort is a sort program designed to sort moredata than can be contained within <strong>the</strong> internal storageof <strong>the</strong> central processing unit. In this case,intermediate storage (disk) is required.It is customary to segment a sort program intoa number of phases, each of which is executed asone core storage load. For example, a typicalsort may be divided.into four phases: an initializationphase, an internal (presort or premerge)phase within core storage, a merge phase (forcombining <strong>the</strong> sequences), and a final output phase.The sequencing of a group of data records containedat one time in core storage is known as an"internal sort". The size of <strong>the</strong> internal sortis <strong>the</strong> number of data records (abbreviated G) thatcan be sequenced at one time in core storage.Note, however, that since <strong>the</strong> number of datarecords to be sorted usually exceeds G (<strong>the</strong> numbercontained at one time in core storage), <strong>the</strong>internal sort process must generally be repeateduntil all <strong>the</strong> records in <strong>the</strong> file have been sequencedinto strings that may later be combined, ormerged.It has been implied that sorting consists of movingdata records around until <strong>the</strong>ir respective controlkeys are in <strong>the</strong> proper collating sequence. Thisis not always <strong>the</strong> case. In some sorting methods,<strong>the</strong> control keys upon which sequencing is basedare read from <strong>the</strong> record and combined with <strong>the</strong>record number (called tag) to form a key-tag pair.Then <strong>the</strong> keys are sorted, ra<strong>the</strong>r than <strong>the</strong> originalrecords. After sorting, <strong>the</strong> tags serve as an indexfor later retrieval of <strong>the</strong> data records in <strong>the</strong> desiredsequence (see Figure 75.3).In core storagebefore sorting:Key NREC085603 2143 3801 4013 5035 6109 7706 8431 9307 10010 11444 12Figure 75. 3. Tag sortRecord Number _NREC1234567891 01 1Keys are physicallysorted (moved around)—111.• with each correspondingrecord number (NREC)moved with it2Key085603143801013035109706431307010444In core storageafter sorting:KeyNREC010 11013 -1 5035 6085109 7143 3307 10431 9444 12603 2706 8801 4Now, ei<strong>the</strong>r physically move <strong>the</strong>disk data recordsOrprocess (e.g., print report)by obtaining disk recordsin <strong>the</strong> order found in <strong>the</strong>NREC table.The effectiveness of a sort program is measuredby <strong>the</strong> time it takes to sort a file of data records.If <strong>the</strong> sorting method alone determined <strong>the</strong> overallperformance and speed, <strong>the</strong> choice of <strong>the</strong> bestmethod would be relatively simple. In actuality,though, sort performance is <strong>the</strong> result of a complexinteraction between <strong>the</strong> characteristics of <strong>the</strong> datafile, <strong>the</strong> data processing system, <strong>the</strong> sortingmethod used, <strong>the</strong> objectives desired, and a number


Section Subsections Page75 10 00 03of o<strong>the</strong>r characteristics. Thus a great many factorsplay a role in determining <strong>the</strong> efficiency andspeed of a sort program.Among <strong>the</strong> more important data file characteristics,<strong>the</strong> following may be cited: <strong>the</strong> degree oforiginal ordering of <strong>the</strong> file (that is, is it in randomorder or do natural sequences exist?); <strong>the</strong> length,range, and location of control word data; and <strong>the</strong>number and length of <strong>the</strong> records.Equally important in influencing sort performanceare <strong>the</strong> characteristics of <strong>the</strong> storage facilitiesand <strong>the</strong> CPU of <strong>the</strong> computer. Among storage characteristicsof interest are <strong>the</strong> capacity of <strong>the</strong> maininternal storage and <strong>the</strong> mode of addressing it, aswell as <strong>the</strong> availability and access times of externalstorage devices, such as disk files. Relevantmachine and CPU characteristics include simultaneousread, write, and processing capability; <strong>the</strong>basic processing speeds of compare, add, andmove operations; <strong>the</strong> structure of <strong>the</strong> OP-code set;and <strong>the</strong> availability of indexing, table lookup, etc.For a given sorting method, <strong>the</strong> data file characteristicsinfluence <strong>the</strong> primary sorting statistics,such as <strong>the</strong> total number of arithmetic operationsor comparisons and <strong>the</strong> total number of passes.For a file of a given size, each method also hassome inherent characteristics that influence <strong>the</strong>complexity and speed of <strong>the</strong> sort -- for example,<strong>the</strong> required working storage, <strong>the</strong> required numberof comparisons, transfers, and exchanges, etc.Finally, realistic sorting objectives must consider<strong>the</strong> specific data processing requirements,as well as <strong>the</strong> complexity and cost of <strong>the</strong> sort programmingeffort. A specific sort program shouldtry to provide an optimum match between <strong>the</strong> specifieddata file, <strong>the</strong> given machine configuration, and<strong>the</strong> chosen technique. In sorting large files, asingle sorting technique cannot always provide thisoptimum match. Frequently, <strong>the</strong>refore, a programcombines two methods in order to take advantage ofspecial machine features, minimize <strong>the</strong> effects ofstorage limitations, and provide increased speed.


Section SubsectionsPage75 20 00 01ALTERNATE APPROACHESBefore you write a sort program for your <strong>1130</strong>,examine your files and <strong>the</strong> reports to be producedfrom <strong>the</strong>m. You may find that sorting on your <strong>1130</strong>is not necessary, or that sorting can be avoided.Some alternate approaches to sorting on your<strong>1130</strong> are:Use of file organizationSorting offline


Section Subsections Page75 20 10 01Use of File OrganizationIs it possible to keep mulitple copies of your files,each in <strong>the</strong> sequence of a report to be produced?If so, you can avoid sorting. If not, however, asis likely with moderate to large files, <strong>the</strong> importanceof your file organization scheme emerges.Pure SequentialAn answer for files organized in a pure sequentialmanner is to maintain multiple copies on multipledisk cartridges. This eliminates sorting but maycause problems in processing. (See Figure 75.4.)Generally, with pure sequential files that are toolarge for multiple copies, <strong>the</strong> solution is offlinesorting.Indexed SequentialIs it possible to keep multiple copies of your index,with each index in <strong>the</strong> sequence of a report to beproduced? Since your index is considerably smallerthan your file, this may be <strong>the</strong> ideal solution. <strong>Processing</strong>against <strong>the</strong> file would be random. (See Figure75.5.) Again, if this solution cannot be used,you can still sort offline.RandomIn this case your files are usually organized in asequence that does not relate to a report. Thetransactions (say, cards containing only controlkeys) must be sequenced appropriately; a sort isnecessary. Hence, <strong>the</strong> only way to avoid sortingusing your <strong>1130</strong> is to sort offline.1 Jones 1001032 Jones 2001093 Jones 3001104 Jones 001155 Smith 001316 SmithandWilliams87961in salesmansequence,for sales reportin part numbersequence, for inventoryreportFigure 75.4. Same data in two files, but in different sequence


Section SubsectionsPage75 20 10 02r1234567Man number Birth date010015017021036043055Master File.99100591603RecordNumberManNumberBirth Recorddate number1 0102 0153 0174 0215 0366 0437 055899100591603Index, in man numbersequence (same as file)Index, in birth date sequenceTo run payroll, etc., lookTo run birth date report,up employee in this index. print from this indexFigure 75.5. One file, but with a multiple index system


Section Subsections Page75 20 20 01Sorting OfflineSorting offline can be ei<strong>the</strong>r a manual or a mechanizedprocedure. A manual procedure (by hand)should not be used unless volumes are very small.Even with small volumes, you will need a programto sequence-check <strong>the</strong> sorted cards.A mechanized procedure involves <strong>the</strong> use of asorter. <strong>IBM</strong> has mechanical sorters available thatcan process up to 2000 cards per minute.The rule-of-thumb procedure for timing offlinemechanized sorts is:1. Compute <strong>the</strong> card-passing time for eachcolumn in <strong>the</strong> control key.2. Sum <strong>the</strong>se times.3. Add 10% for card handling.You must decide whe<strong>the</strong>r <strong>the</strong> time and money spentsorting offline will be less than <strong>the</strong> cost of programmingand running a sort for your <strong>1130</strong>.


Section SubsectionsPage75 30 01 01METHODS OF SORTINGIntroductionSorting and merging methods can be classified in accordancewith certain distinguishing characteristics.Key Compare vs Key Value (Radix) <strong>Techniques</strong>Most sorting methods compare control keys of twoor more records at a time and sequence <strong>the</strong> recordson <strong>the</strong> basis of a high, low, or equal comparison of<strong>the</strong> keys. Despite variations, all key comparetechniques are essentially similar in concept. Anexample of a key compare technique is <strong>the</strong> cardplayer's way of inserting new cards into his handin proper sequence, by comparing <strong>the</strong> value of eachnew card with <strong>the</strong> values of those he is alreadyholding.In some sorts, action is taken on <strong>the</strong> basis of<strong>the</strong> value of <strong>the</strong> individual digits in <strong>the</strong> key and<strong>the</strong>ir position, ra<strong>the</strong>r than by comparison of twokeys. The value of <strong>the</strong> key digits -- or, more generally,of <strong>the</strong> key number base (radix) -- is used todetermine into which particular slot each recordshould go. Key value or radix techniques are alsoknown as digit sorts, which is a narrower term.The mechanical punched card sorter, with separatepockets for each key value, is an excellent exampleof a radix technique. Ano<strong>the</strong>r illustration is <strong>the</strong>distribution of a deck of cards into four piles (orfiles), one for each suit.Sequence-Creating (Internal) vs Sequence-Reducing(External) <strong>Techniques</strong>Ano<strong>the</strong>r fundamental way of viewing sorting is todistinguish between techniques that create sequences(starting with a random or unsorted file) and thosethat reduce <strong>the</strong> number of existing sequences to one.In <strong>the</strong>ory, most techniques capable of creatingsequences of at least two records, or keys, are alsocapable of leng<strong>the</strong>ning those sequences to a pointwhere, finally, all records are contained within asingle sequence. In practice, however, <strong>the</strong>sequence-creating or internal sorts are usuallyonly <strong>the</strong> prelude to <strong>the</strong> main or merge phase of <strong>the</strong>sort (hence <strong>the</strong> terms "presort" and "premerge").Initial sequences are created by loading a group ofrecords into core storage, sorting <strong>the</strong> recordsinternally, and placing <strong>the</strong> resulting sequence onan intermediate storage device. This internal sortprocess is repeated until <strong>the</strong> input file is exhausted.The sequences thus created internally are <strong>the</strong>nreduced to one by an external merge. If <strong>the</strong> entirefile can be contained within core storage at onetime, <strong>the</strong> sort is exclusively internal. In mostcases, however, both internal (sequence-creating)and external (sequence-reducing) techniques arenecessary to sort a large file.Degree of <strong>Data</strong> AccessibilitySorts also may be distinguished in accordance with<strong>the</strong>ir relative need of data accessibility. Most of<strong>the</strong> internal techniques are best suited to storagemedia that can provide rapid access to many groupsor sequences of records. Core storage provides<strong>the</strong> most rapid and direct access, while disks furnisha lesser degree of data accessibility. A numberof methods work well with disk.Degree of GeneralityFinally, sort programs may be categorized by <strong>the</strong>relative degree of specificity or generality for which<strong>the</strong>y are designed. A large range of objectivesexist between narrow, highly specific sorts andbroad, generalized programs. On one end of thisrange <strong>the</strong>re are specific sorts designed to operateon a specified input file and a specific computerconfiguration. Somewhere in between are generalizedsorts that will accept <strong>the</strong> introduction of someparameters at execution time to adapt <strong>the</strong> sort programto <strong>the</strong> characteristics of <strong>the</strong> particular fileand computer configuration. At <strong>the</strong> o<strong>the</strong>r extremeof <strong>the</strong> range, <strong>the</strong>re are highly sophisticated, generalizedsorts and sort generators that, virtuallywithout user intervention, can generate a greatvariety of ordered results on a variety of file andcomputer configurations.In most instances, a specific sort program willsatisfy your sorting needs. The remainder of thissubsection discusses some sorting methods (bothinternal and external) of <strong>the</strong> types described above.In addition, one of <strong>the</strong> easily implemented sortsis expanded in flowchart form for your more detailedexamination.


Section Subsections Page75 30 10 01Internal Sorting MethodsInternal sorting is defined as <strong>the</strong> sequencing of agroup of data records contained in <strong>the</strong> core storageof your <strong>1130</strong>. It generally involves readingsuccessive records from disk storage into corestorage, sorting <strong>the</strong> group in storage by one of<strong>the</strong> methods to be described, and <strong>the</strong>n writing <strong>the</strong>sequenced group onto disk.Since internal sorting is generally a part or aphase of o<strong>the</strong>r processing and programs, you mustdistinguish between methods according to <strong>the</strong> ultimatepurpose <strong>the</strong>y serve. Thus, some sortingroutines found in compilers, assembly programs,and o<strong>the</strong>r applications are strictly internal; that is,a group of items is to be sequenced only in corestorage, not written onto disk. On <strong>the</strong> o<strong>the</strong>r hand,in most generalized and specific sort programs,<strong>the</strong> file of records is too large to be contained, atone time, within core storage. Here <strong>the</strong> internalsort passes serve only as a prelude to <strong>the</strong> subsequentexternal merge phase of <strong>the</strong> sort and, hence,are frequently called presorts or premerge sorts.The purpose of <strong>the</strong> internal sort, <strong>the</strong>n, is to forma number of sequences, or strings, which areplaced into <strong>the</strong> output and subsequently merged.The more efficient <strong>the</strong> premerge sort, and <strong>the</strong>longer <strong>the</strong> strings it generates, <strong>the</strong> fewer externalmerge passes required.In addition to <strong>the</strong> purpose of <strong>the</strong> sort, <strong>the</strong> followingconsiderations apply in selecting an internalsort technique and evaluating its suitability for aspecific application:1. Characteristics of <strong>the</strong> machine (basic processingspeed, internal storage capacity, etc.)2. Input/output characteristics (number of diskdrives).3. Number and length of data records.4. Length and range of control keys.5. Degree of original file ordering (naturalsequences).6. The associated program.Since <strong>the</strong>re is no single best method for all typesof applications, most sort programs represent acompromise between conflicting requirements. Ingeneral, <strong>the</strong>y attempt to incorporate <strong>the</strong> followingin as nearly optimal a manner as possible:1. Sort internally as many records as can bepacked into core storage.2. Minimize total process time per record.3. Function in a manner compatible with I/Ooperations and strive for a maximum overlap ofread, write, and processing time.4. Utilize existing sequences in <strong>the</strong> input file,if possible.5. Write routines that are compact and that canbe modified easily.6. In a generalized program, accept and sortvariable length records with any size control key.Generally, records can be sorted by (1) physicallymoving <strong>the</strong>m <strong>about</strong> until <strong>the</strong>y are in order,(2) forming tables of record numbers (tags) in storage,which are <strong>the</strong>n sorted, or (3) combining <strong>the</strong>control key and record number and sorting <strong>the</strong>resulting short key-tag pairs. Ei<strong>the</strong>r tag sortingor key sorting is <strong>the</strong> preferred method today. Thesorted keys are <strong>the</strong>n used as an index to <strong>the</strong> file.In addition to an explanation, <strong>the</strong> advantages andlimitations of each sorting method will now be evaluatedbriefly with respect to major file and machinecharacteristics. Additional methods and additionalinformation on each of <strong>the</strong> methods discussed maybe found in Sorting <strong>Techniques</strong> (C20-1639).


Section Subsections Page75 30 10 02SelectionSorting by selection -- perhaps <strong>the</strong> simplest, andalso <strong>the</strong> slowest, of <strong>the</strong> internal sorting methods --consists essentially of an examination of <strong>the</strong> inputfile to find <strong>the</strong> record with <strong>the</strong> smallest key (for anascending sort) and placing this record or its keyin <strong>the</strong> output area as <strong>the</strong> first item of <strong>the</strong> new file.The source file is <strong>the</strong>n scanned for <strong>the</strong> smallestkey of <strong>the</strong> remaining records, which becomes <strong>the</strong>second item of <strong>the</strong> new file, and so on, until allitems have been placed in <strong>the</strong> output file.When <strong>the</strong> selection process is carried through<strong>the</strong> entire file in one stage, it is called "linearselection"; when <strong>the</strong> original file is broken up intogroups, and <strong>the</strong> smallest key of each group ischosen, and <strong>the</strong>n <strong>the</strong> smallest of <strong>the</strong>se smallestkeys, <strong>the</strong> process is termed "quadratic selection".Selection requires a relatively small workingstorage area in core, equal to <strong>the</strong> number of itemsbeing sorted internally. However, <strong>the</strong> number ofpasses over <strong>the</strong> file also equals <strong>the</strong> number of items(one for each record), and <strong>the</strong> total number ofcomparisons required increases with <strong>the</strong> squareof <strong>the</strong> number of items to be sorted (for linearselection); this rapidly becomes inefficient for alarge file.ExchangingThe technique of sorting by exchanging consistsessentially of comparing <strong>the</strong> keys of successiverecords -- ei<strong>the</strong>r one by one or pair by pair --and exchanging out-of-sequence items. The sortis completed when no exchanges are made duringa pass through <strong>the</strong> file. Many variations of thisgeneral procedure are possible.The major advantages of exchange techniques are<strong>the</strong> relative ease of <strong>the</strong>ir programming and <strong>the</strong> factthat all work is done in <strong>the</strong> area in which <strong>the</strong> originalfile is stored; no separate working storagearea is required. Among <strong>the</strong> drawbacks are <strong>the</strong>dependence of exchange methods upon <strong>the</strong> distributionof <strong>the</strong> control fields in <strong>the</strong> original file andupon <strong>the</strong> number of records in <strong>the</strong> file. If <strong>the</strong> fileis almost in sequence, one pass will generallysuffice. In <strong>the</strong> worst case, reverse sequencing,<strong>the</strong> number of passes may equal <strong>the</strong> number ofitems (G) to be sorted, and <strong>the</strong> number of exchanges(key and/or record movements) may becomevery large. Since <strong>the</strong> number of comparisonsrequired increases with <strong>the</strong> square of <strong>the</strong> numberof items to be sorted, exchange methods are mostefficient for sorting a relatively small file ofrecords. Perhaps <strong>the</strong> simplest exchange technique,and <strong>the</strong> easiest to program, is pair exchange. Thekeys of adjacent records are compared; whenever<strong>the</strong>y are not in ascending sequence, <strong>the</strong>y are interchanged.During <strong>the</strong> first pass, <strong>the</strong> keys of <strong>the</strong>first and second records are compared, <strong>the</strong>n of<strong>the</strong> second and third, of <strong>the</strong> third and fourth, andso on, until all keys in <strong>the</strong> file have been comparedand interchanged, when necessary. Each successivepass will process one less record. The sortis completed when no interchanges occur during apass. The example below illustrates <strong>the</strong> procedure.In general, <strong>the</strong> maximum number of passes(for <strong>the</strong> worst case) is equal to G - 1. The averagetotal number of comparisons (C) isG(G-1)2where G is <strong>the</strong> total number of items to be sorted.


Section Subsections Page75 30 10 03Input and Pass 113 \___„ 1369 i - 613\ 5613561356135656 56 )--'.6 \ 02 02 0202 02 02 )---)' 69 08 08---4.--08 08 08 08 1 6 \ , 2121 21 21 21 21 )—'.69Pass 213 13 13 13 1356 56 02 02 0202 02 56 \ 08 0808 08 08 56 \ 2121 21 21 21 5669 69 69 69 69Pass 3Output13 02 02 02 0202 )-- 13 08 08 0808 08 T1 13 1321 21 21 )-- 21 2156 56 56 56 5669 69 69 69 69The size of <strong>the</strong> file is of great importance, since<strong>the</strong> total number of comparisons and interchangesincreases roughly with <strong>the</strong> square of <strong>the</strong> number ofrecords in <strong>the</strong> file.MergingMerging is <strong>the</strong> process of combining severalsequences of records to form a single specifiedsequence. The same rules by which sequences arecombined may also be used to form sequences (oftwo or more items). Thus, <strong>the</strong> merging processhas, essentially, a dual nature: it can be used forcreating sequences (usually in an internal sort),and it is also capable of reducing previously createdsequences to one (usually in an external sort). Thisdual capability contrasts with <strong>the</strong> selection andexchange techniques described thus far, which areuseful primarily for internal sorting of relativelyshort files of records. The versatility, speed, andsimplicity of merging make it one of <strong>the</strong> most widelyused sorting techniques.There are two basic methods of merge sorting:(1) straight or standard merging, with fixed-lengthsequences, and (2) natural merging, with variablelengthsequences, or strings. (The words "sequence"and "string" are often used interchangeably inmerging terminology.)In straight merging, <strong>the</strong> input file is distributedinitially into two or more work areas, dependingupon <strong>the</strong> number of sequences to be combined duringeach merge (that is, <strong>the</strong> order of merge). Forexample, in a method of two-way straight merging,<strong>the</strong> first merge pass alternates between two storageareas to form strings of two records, one fromeach area. Subsequent passes double <strong>the</strong> lengthof <strong>the</strong> strings each time (for example, 4, 8, 16,etc.), until <strong>the</strong> last pass produces a single sequenceof all <strong>the</strong> records. The length of <strong>the</strong> strings duringeach pass and <strong>the</strong> number of passes are fixed.The natural merge sort takes advantage of"natural" sequences in <strong>the</strong> original file, whichoccur with a certain "probable" frequency. Thelength of <strong>the</strong> strings on each pass is no longer fixed,but depends upon <strong>the</strong> existing sequences. The totalnumber of passes required to sort a given file, <strong>the</strong>n,also depends on <strong>the</strong> number of natural sequences in<strong>the</strong> original file. For a file that is in correctsequence, only a single pass is required -- to verifythat sequence. In <strong>the</strong> worst case, <strong>the</strong> number ofpasses is <strong>the</strong> same as for straight merging.


Section SubsectionsPage75 30 1 0 04InsertionA fairly effective method for sorting a small numberof items, <strong>the</strong> insertion technique, places eachitem in sequence as soon as it is encountered. Therecords (or tags) are brought into storage one at atime, <strong>the</strong> key is examined, and <strong>the</strong> item insertedin <strong>the</strong> correct place of an output file. Earliermembers of <strong>the</strong> partial file are moved aside, whennecessary, to make room for new items. Themethod is straightforward and easy to program,but is relatively slow compared with o<strong>the</strong>rtechniques.Sorting by simple insertion has two inherentdrawbacks: (1) <strong>the</strong> partial file must be searchedeach time to locate <strong>the</strong> correct place for inserting<strong>the</strong> new item, and (2) excessive shifting of <strong>the</strong>sorted records is necessary for each new insertion.The first limitation can be overcome, to someextent, by subdividing <strong>the</strong> area that must besearched in order to locate <strong>the</strong> correct positionof each new item. The second drawback -- <strong>the</strong>large amount of record movement -- can be avoidedby sorting record numbers (tags), ra<strong>the</strong>r than <strong>the</strong>record <strong>the</strong>mselves. Even with <strong>the</strong>se improvements,<strong>the</strong> method is too slow for larger files.Replacement SelectionThe internal sorting methods described thus farare all capable of sorting a group of records (G)that can be contained at one time in core storage.The maximum string length is, <strong>the</strong>refore, limitedto G items. An auxiliary technique, known asreplacement (sometimes, replenishment), triesto keep <strong>the</strong> core storage area filled with G itemsby replacing records that have been withdrawn during<strong>the</strong> sort. As a result, for a file in randomorder, an average string length of 2G items isdeveloped in an area with a capacity of only Grecords. For a given amount of available corestorage, <strong>the</strong> replacement technique produces <strong>the</strong>maximum possible sequence length. This characteristicmakes <strong>the</strong> technique eminently suitable asa premerge sort and permits a significant reduc etion in <strong>the</strong> number of merge passes required for asubsequent external (disk) sort. The price paidfor this advantage is increased complexity of programming,relatively long processing time perrecord, and a slight increase in <strong>the</strong> required workingstorage. Also, <strong>the</strong> number and length of <strong>the</strong>sequences are variable and, hence, not predictable.Most replacement sorts, however, willgenerate string lengths approximating 2G.Essentially, <strong>the</strong> replacement selection methoddetermines <strong>the</strong> lowest record in <strong>the</strong> record storagearea, moves it to <strong>the</strong> output area, and <strong>the</strong>n replacesit with a new record from <strong>the</strong> input file. If <strong>the</strong>new record is lower than <strong>the</strong> one just moved to <strong>the</strong>output, it cannot be part of <strong>the</strong> current sequenceand, <strong>the</strong>refore, is flagged or held for <strong>the</strong> nextsequence. The process <strong>the</strong>n continues with <strong>the</strong>selection of <strong>the</strong> next-lowest record, and so on,until <strong>the</strong>re are no more replacement records in<strong>the</strong> record storage area that fit into <strong>the</strong> currentsequence. A new sequence is <strong>the</strong>n started, and <strong>the</strong>procedure continues until <strong>the</strong> entire input file isprocessed.


Section Subsections Page75 30 10 05Address CalculationWhen <strong>the</strong> approximate distribution of <strong>the</strong> key valuesis known, it becomes possible to sort a file internallyby estimating <strong>the</strong> eventual (sorted) positionof each key. This method is called "address calculation"or "pigeonhole sorting".Briefly, it consists of calculating <strong>the</strong> correctrecord number of each item within <strong>the</strong> file by apredetermined linear formula of <strong>the</strong> form y= a +bx.If <strong>the</strong> location at that record number is empty, <strong>the</strong>item (record or key) is placed <strong>the</strong>re; if it is full,a search is made to find <strong>the</strong> closest empty space in<strong>the</strong> vicinity of <strong>the</strong> calculated record number. Theitem at <strong>the</strong> calculated record number and <strong>the</strong> adjacentitems are <strong>the</strong>n moved so that <strong>the</strong> new item canbe inserted in its proper place in <strong>the</strong> sequence.Address calculation is similar to <strong>the</strong> insertionmethod in that each item is placed directly in itsproper relative position within <strong>the</strong> file, and <strong>the</strong>entire file is in order just after <strong>the</strong> last item hasbeen inserted. The method differs from insertion,however, in that some foreknowledge of <strong>the</strong> rangeand distribution of <strong>the</strong> keys is required to estimate<strong>the</strong> relative location for each item. When this isavailable, address calculation is a relatively simpleand rapid method for sorting a medium-size file(several hundred to a few thousand items) of smallto medium-length records. The major disadvantageof <strong>the</strong> method is <strong>the</strong> need for a fairly large storagearea -- <strong>about</strong> two or three times <strong>the</strong> size of <strong>the</strong> areaneeded for <strong>the</strong> original file. If only a relativelysmall working storage area is available, or if <strong>the</strong>distribution within <strong>the</strong> file is not as forecast, a greatdeal of processing time will be spent in redistributing<strong>the</strong> records.To illustrate this method, let us consider ahypo<strong>the</strong>tical case: Many years ago, <strong>the</strong> ABC Companyset up a man-number system based on a threedigitnumber. Since <strong>the</strong>y had <strong>about</strong> 150 employees,each man was assigned, in alphabetic order, a numberevenly divisible by 5 (005, 010, 015, 020, 025,, 995). However, <strong>the</strong>re are now <strong>about</strong> 240 employees,and <strong>the</strong> system is not quite as neat as itonce was.Some of <strong>the</strong> men (50 of <strong>the</strong>m) have been assignednumbers out of <strong>the</strong> normal pattern (for example,862 in between 860 and 865). They are still in alphabeticorder, though.The address calculation sort could be used toplace this employee file onto <strong>the</strong> disk in alphabetic(man-number) sequence in <strong>the</strong> following way:1. Set up a file containing 500 records.2. As each man-number is encountered, divideit by 2.5, and convert <strong>the</strong> result to an integer (callit N).3. Check record number N to see whe<strong>the</strong>r <strong>the</strong>reis already an employee <strong>the</strong>re.4. If <strong>the</strong>re isn't, put <strong>the</strong> man just processed intothat record.5. If <strong>the</strong>re is someone <strong>the</strong>re already, move <strong>the</strong>adjacent records up (or down) until <strong>the</strong>re is roomto insert <strong>the</strong> new man.This will be quite fast, provided <strong>the</strong> "moving around"(step 5) is not required too frequently. If it is, <strong>the</strong>file could be increased to 600 records, and <strong>the</strong> mannumberdivided by 2. This, however, would wastea considerable amount of space on <strong>the</strong> disk.


Section SubsectionsPage75 30 20 01External Sorting MethodsWhen a file cannot be contained within core storage,additional external passes and intermediate storagedevices, such as disks, are required to sort <strong>the</strong>file. The internal sort, <strong>the</strong>n, is only one phase ofa generalized multiphase (or multipass) sort thatmay have three or four phases. In such a multiphasesort, <strong>the</strong> internal sort phase is concernedwith <strong>the</strong> creation of suitable sequences from <strong>the</strong>main file, while <strong>the</strong> external sort, or merge phases,are devoted to <strong>the</strong> reduction of those sequences toone continuous sequence.Practically all <strong>the</strong> internal sorting techniquesdescribed earlier can also be used -- with varyingsuccess -- for external sorting by changing <strong>the</strong>terms of reference appropriately. Thus, <strong>the</strong> internalstorage area is replaced by several input andoutput areas on disk.It has been suggested earlier that sorting techniquescould be categorized according to <strong>the</strong> degreeof and relative need for data accessibility. Thusfar, sorting techniques suitable for one extreme ofdata accessibility have been described. The internalsorts were seen to be best suited to high-speed,direct (random) access storage media, such asmagnetic core storage. In <strong>the</strong>se media, any recordor string of records can be accessed immediately,without <strong>the</strong> need for passing over o<strong>the</strong>r, unwantedrecords.Despite <strong>the</strong>ir name, direct (random) access filestorage media (such as disks) provide a degree ofdata accessibility less than core storage. The timeto access a record in <strong>the</strong>se devices is not completelyindependent of <strong>the</strong> location of <strong>the</strong> previouslyaccessed record (as in core storage), but •nei<strong>the</strong>rdoes it depend on <strong>the</strong> entire sequence of recordsstored before it (as in magnetic tape). The time toaccess <strong>the</strong> next record depends on <strong>the</strong> number ofcylinders <strong>the</strong> access mechanism must be movedfrom <strong>the</strong> previous record. (Each one or two cylindermove on <strong>the</strong> 2310 disk drive requires 15milliseconds. ) However, since internal corestorage is generally insufficient to hold an entirefile, auxiliary storage devices such as disks areusually necessary.With disks some attention must be given to <strong>the</strong>relative advantages of key or tag sorting and sortingof complete records. It has been found in internalsorting that key or tag sorting (involving ei<strong>the</strong>rrecord numbers only or short control records) isconsiderably faster than sorting of complete records.However, because of <strong>the</strong> substantial seektime, this is no longer true for disks, when <strong>the</strong>orginal records must be retrieved at <strong>the</strong> end of <strong>the</strong>sort.The following paragraphs explore some of <strong>the</strong>considerations pertinent to disk sorting.


Section Subsections Page75 30 20 02Key (Tag) SortingIn general, key sorting consists of extracting <strong>the</strong>control key from each record and adding <strong>the</strong> recordnumber to form a key-tag pair. These pairs,ra<strong>the</strong>r than <strong>the</strong> original records, are <strong>the</strong>n sorted.(Sorting is done with <strong>the</strong> key; <strong>the</strong> record number ismerely moved <strong>about</strong> so as to remain with its associatedkey.) After sorting is completed, <strong>the</strong> pairsprovide an index for later retrieval of <strong>the</strong> data recordsin proper sequence. The obvious advantage ofkey sorting is <strong>the</strong> more rapid processing of <strong>the</strong> keytagpairs, ra<strong>the</strong>r than <strong>the</strong> much longer original records.During internal sorting, more pairs can besorted into strings; thus, fewer strings and, probably,fewer merge passes will result. The eventualretrieval of <strong>the</strong> data records (if needed) fromexternal storage is done using <strong>the</strong> final sorted keytagfile.A typical key sort with disk storage proceeds inei<strong>the</strong>r two or three phases, depending upon whe<strong>the</strong>rfinal retrieval of <strong>the</strong> data records is necessary.Phase 1 is an internal key sort; phase 2 merges <strong>the</strong>internally formed strings of key records; and phase3, if required, retrieves <strong>the</strong> input records inproper sequence. The approximate procedure duringeach phase is described below.Phase 1 (Internal Sort) consists of <strong>the</strong> followingsteps:1. Place input records on <strong>the</strong> disk file in orderof occurrence.2. Form key-tag pairs by lifting <strong>the</strong> controlfield(s) from each input record and adding to it(<strong>the</strong>m) <strong>the</strong> disk record number.3. Read G key-tag pairs at a time into corestorage and sort <strong>the</strong>m internally (by any standardmethod) into strings of length G. (G refers to <strong>the</strong>number of items that can be contained at one time ininternal core storage.)4. Write <strong>the</strong> stings of G pairs successivelyonto <strong>the</strong> disk file, using as many sectors or files asnecessary (usually no more than five files of strings).Phase 2 (Merge). The merge phase of <strong>the</strong> sortconsists of merging <strong>the</strong> strings of pairs from <strong>the</strong>separate files on disk. The merge is completedwhen a single sequence of key-tag pairs has beenwritten onto disk. During <strong>the</strong> final merge pass, <strong>the</strong>control keys are stripped from <strong>the</strong> key-tag pairs,leaving only <strong>the</strong> disk record numbers or tags.These record numbers <strong>the</strong>n serve as an index forplacing <strong>the</strong> input records in sequence. At youroption, sorting can end at this point.Phase 3 (Record Retrieval). This phase isnecessary if <strong>the</strong> data records are to be retrievedfrom <strong>the</strong> disk file in <strong>the</strong>ir sorted order. (Remember,only <strong>the</strong> tags have been sorted, not <strong>the</strong> records<strong>the</strong>mselves. ) The manner in which this is done hasa greater effect on overall timing than phases 1 and2 combined. The simplest way (also <strong>the</strong> slowest)consists of retrieving <strong>the</strong> records one by one in <strong>the</strong>order indicated by <strong>the</strong> successive disk record numbers.If <strong>the</strong> original input records constitute alarge file extending over several cylinders of <strong>the</strong>disk, <strong>the</strong> probability is high that a seek must beexecuted for <strong>the</strong> retrieval of each record. This willadd considerably to <strong>the</strong> time required, since <strong>the</strong>seek time necessary to retrieve <strong>the</strong> records willprobably dominate <strong>the</strong> overall sort time.A number of ways have been devised to minimizethis seek time during <strong>the</strong> retrieval of records inphase 3. One method consists of bringing <strong>the</strong> diskrecord numbers (from phase 2 of <strong>the</strong> sort) intointernal storage in some multiple of <strong>the</strong> outputblocking factor. The disk record numbers are <strong>the</strong>nsorted internally in ascending sequence, <strong>the</strong>rebyreducing <strong>the</strong> seek time between records. Theinput records are read initially from <strong>the</strong> disk inascending record number sequence; blocks of recordsare <strong>the</strong>n placed in proper sequence (in accordancewith <strong>the</strong> original sequences of disk recordnumbers); and <strong>the</strong> sorted records are finally writtenback onto <strong>the</strong> disk file. The method reduces seektime substantially, at <strong>the</strong> expense of more complexprogramming.Ano<strong>the</strong>r method of modifying <strong>the</strong> key sort consistsof blocking <strong>the</strong> sorted keys so that <strong>the</strong> numberof items in each block plus an equal number oforiginal records just fills <strong>the</strong> core working area.The items in each block are <strong>the</strong>n sorted again toplace <strong>the</strong> disk record numbers in ascending sequence.As before, <strong>the</strong> records indicated in eachblock can <strong>the</strong>n be retrieved sequentially from <strong>the</strong>file and sorted internally into <strong>the</strong> proper sequence.It will be found, however, that in most cases, andfor large files in particular, <strong>the</strong>se methods of reducing<strong>the</strong> seek time still result in a greater overallsort time than might have been required to performa complete record sort.


Section SubsectionsPage75 30 20 03Key Sort vs Record SortUsually, key sorting is of no advantage, even withlarge disk files, when most or all of <strong>the</strong> originalrecords are to be retrieved. Modifying <strong>the</strong> sortingand reading schemes to minimize <strong>the</strong> total seektime can have a considerable effect, but <strong>the</strong> advantage,generally, still lies with record sorting.Whe<strong>the</strong>r a record sort or a key sort should be usedto sort a disk file depends largely on <strong>the</strong> ultimatedisposition of <strong>the</strong> sorted records.If only an index of sorted records is necessary,and few of <strong>the</strong> sorted records are actually used,key sorting would appear to have <strong>the</strong> edge.Exception reports extracted from <strong>the</strong> sorted fileare an example of this type of situation. On <strong>the</strong><strong>the</strong> o<strong>the</strong>r hand, if most or all of <strong>the</strong> originalrecords are to be retrieved, record sorting ispreferable to key sorting. Moreover, <strong>the</strong> advantageincreases with <strong>the</strong> size of <strong>the</strong> file.


Section Subsections Page75 40 00 01A DETAILED LOOK AT AN <strong>1130</strong> RECORD SORTAn improvement on <strong>the</strong> simple exchange techniqueconsists of making alternate passes in oppositedirections, attempting to move <strong>the</strong> high records to<strong>the</strong> bottom and <strong>the</strong> low records to <strong>the</strong> top of <strong>the</strong> file.This is called an alternating pair exchange sort.The procedure starts in exactly <strong>the</strong> same manneras in pair exchange, by comparing <strong>the</strong> keys ofsuccessive records. After an exchange is made,<strong>the</strong> high key is compared with <strong>the</strong> key of <strong>the</strong> nextrecord in sequence, and <strong>the</strong>se comparisons continueuntil ei<strong>the</strong>r a higher key is found or <strong>the</strong> end of<strong>the</strong> file is reached. <strong>All</strong> intermediate records (and<strong>the</strong>ir keys) are shifted up one position. During thisfirst downward pass, <strong>the</strong>refore, a high record canmove down many positions, but lower records canmove up only one position.The second pass is in <strong>the</strong> upward direction (from<strong>the</strong> bottom to <strong>the</strong> top of <strong>the</strong> file) and tends to move<strong>the</strong> smaller records closer to <strong>the</strong> beginning. Duringthis, and during every o<strong>the</strong>r even-numberedpass, a high record can move down only one position,but a low record can move up many positions.Successive passes continue to alternate, with oddnumberedpasses in ascending sequence and evennumberedpasses in descending sequence. The fileis in sequence when no interchanges occur duringa pass. A final output pass is required to verify <strong>the</strong>correct sequence.The example below illustrates <strong>the</strong> alternatingexchange technique. The first pass, proceedingdownward, recognizes that 89 and 56 are out of sequenceand exchanges <strong>the</strong>m. The high of <strong>the</strong> compare,89, is <strong>the</strong>n compared, in turn, with 02, 08,and 21; since 89 is higher in each case, it moves to<strong>the</strong> bottom of <strong>the</strong> file. The low of <strong>the</strong> compare, 56,moves up one, and all intermediate keys also moveup one position. In <strong>the</strong> second pass, <strong>the</strong> comparisonsstart with 89 and move upward. The first outof-sequencekeys are 02 and 56. The 56 dropsdownone position, while <strong>the</strong> 02 moves up two positions,since it is lower than <strong>the</strong> 13. During <strong>the</strong> next downwardpass, <strong>the</strong> 56 and 08 are out of sequence; <strong>the</strong> 08moves up one position, and <strong>the</strong> 56 moves down twopositions, since it is higher than <strong>the</strong> intermediate21. During <strong>the</strong> fourth (upward) pass <strong>the</strong> out-of-sequence08 and 13 are interchanged. The final outputpass is needed to check <strong>the</strong> completion of <strong>the</strong>sort.End End End EndInput Pass 1 Pass 2 Pass 3 Pass 4 Output13 13 028 56 1356 0202 08 0808 21 2121 8t02 02 0213 08 080 13 1321 21 2156 56 56819 89 89The arrows indicate <strong>the</strong> direction of <strong>the</strong> pass.The example shows that <strong>the</strong> maximum number ofpasses is equal to <strong>the</strong> distance, measured in numberof keys or records, which is <strong>the</strong> largest separationof a key from its final place in <strong>the</strong> sequence.In this case, 89 is four positions away from its final(bottom) position in <strong>the</strong> file and, <strong>the</strong>refore, at mostfour passes (plus <strong>the</strong> output pass) are required tocomplete <strong>the</strong> sort. In general, <strong>the</strong> alternatingexchange method requires slightly more complexprogramming than <strong>the</strong> earlier exchange method, butit results in a smaller number of compares and,frequently, fewer passes. The following pagesshow this method in more detail.


Section SubsectionsPage75 40 00 02STARTInitialize:NSTRT first rec.numberNEND = last rec.numberNRL = recordlengthHousekeeping:1,M,NREC2,NRL,NRPC,NARAY,NRECTNREC12,M,NREC 2— (M)*(NRPC),NRL,NRPC,NARAY,NRECT10-1DISK2,—M,NREC1,NRL,NRPC,NARAY,NRECTNRECT = NSTRTNRECT = NENDM = 1 N = 0NE XS,LARRY,NRL,KS,KEN=0M — MSTOPNRPC =(320/NRL)*8N = N + NEXSMove bottomof NARAY to topwhen M>0, topto bottom whenNRECT = NSTRTNEND = NREC1NRW,—M,NRECINRL,NRPC,NARAY,NRECTNRECT = NENDNSTRT = NREC1NREC2 = NREC1NREC2 =NREC1 + (M)(NRPC)Move bottom ofNARAY to topwhen M>0, topto bottom whenM


Section Subsections Page75 40 00 03NAMEİf -11o2VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEM28°"az 61- u.i1 _---. 1- ,,,--15 5,°- °MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEETApplication, 4Z 7.e;ei /4 7 -/A /' Pr9/,e Date/e9/23A7PPlication EXcw,44/a.e sorerProgram Name „Veorbr, //".• ye No. ProgrammerFUNCTION OF VARIABLES,4 se,,,orwabi7e lo 0.)/i1/ <strong>the</strong> A754 ,,,//h ar7sotv'ed,P1.51‹ – – – —/W0/17's a',74C0)e'r'W'V Me 25,4) af sop /e•a/ r•ecor-ofs.The ,.o.er,E7.51 •V ,5,4a/a0.77e.774 )4e, /i-Avi,4.. -h&' diskA:WO – – – —OCC-4.35' mechanism rr3 a'r, Oire:7,/,;#76=ziiggs'X1/47r,44-X----E Z / Yter. X 497,:a4 User. / Ewa/ al 7%e- c-c7,17er-c, / X-E . /;(5 er7e7iie9 ,Oes/X.;/;ex--3- z 7 r 0`1,3Z, / geg.;.,,,:13 al ,'% e-,,,,,,,,..0/ key, ,/s- ,s7Larh,;9.,00v;f;,,if are,ZAPAY -2- / z 4p/vi,.5-e/7.Z6,•.-Arh o# A/4*V); /4e "iPecordi .5*.idge..Orra; -5-/,orrZi.sce".0/'5727" /assl'hile c9/4A9'62•--5-15/aViiirke ,,i4tr4,,w4 .7 ;,-) 4lowaVe C.9,2?/11 I / T / -/ -4%-e.c714;9 oiese,Pv;e0 4e 1//e or. .96a4,9 14a./..; -/or #1.1 7- tsZt ofrecords' ..' 4-Du/I/ dr /-4e en./,,,6e," el'excA4l9es /;') a /245'SA4f/e4 y 4/ zree 7 — — 4/orne ei26,-...ay ,4 .Pecs.-,d Slere75e roPS4)444/E/to 1 / afee- arer'2- 4,/,vi 2 72e, rece,p1m.mbev-, of ' ;4 e2 A's/ reree2,/,; hfe.74A4,,._x5, 1 / T ZThe .7e",72.6e....- o/". eech4.29es dark.:79 'he sc2r-r4O74 .0. poi, a. c.y//,resie.-,..v.,vezer- r / r Newo il.-7-4)7- Tie. p-eccv-4J .7e.,7-4e.,- 6-'24/, 4 ,a' /0475.5-/1/en-C/ I / r /i/e4/0 / 7%e. pee„,,,/ ar,26e,r.- A.. 14/rP/7?%).9' 444-4- /1"'Ae,4/,f2E--6-e z / 7- /i/E//2) / 7; fe record mirrIbe,.- A Als4.01/4,9 ,geso,,, /he 6/e#A/X7Z Z. / asefiz 34:6 2 17-'6- recera/ /6".-2gM.44.e.c'C 1 / 7 redo 8 rt/c/m6er, o, r-eco.-.as /26,/- c / ; 7 € / e y - :,/RA/ I / r 2 / 4;-4/x/e/74.`" .54._,/./C, /ek,aa/= /1 1,a-jile, -tr7.' k/f/.5-77 7- aver2- / f User'4,1/:of; / Me record rn.rnbef. coe /Ad, /4;isfreed■-,..7,1e 4*.__ __562r - - -9 sctholir.y. e7a/7,rte /tfara7; ‘5. 7


Section Subsections Page75 40 00 04Start1 = 1L = (1-11"NRL+1N l•NRLL = 1+(NRPC+1-1)*NRLN = INRPC+0•NRLRead Disk(NF'NREC)NARAY (J)J = L, NWrite Disk(NF'NREC)NARAY 1J1J = L, NNREC = NREC+MNREC = NREC-MI = 1+1rReturn


Section Subsections Page75 40 00 05NAME . 1-ii02VARIABLES <strong>IBM</strong> I <strong>1130</strong> COMPUTING SYSTEM-0 ■-o ciza2ẉI.--- - — °-IS b0- 0MAX.VALUEMIN.VALUEVARIABLE SUMMARY SHEET,Qc re-",e/vArm/G )57,42/Application z-xc,./../.47/v — 5-42/e7Date/4/25/6'7Program Name 5 u6rovt-bl e.., No. ProgrammerFUNCTION OF VARIABLESX 2 / 7- ,t/,P0C / Used ws /,,w'6,x /-, 17ead/Ir47i4e /e.,;2.7 2 / T 256.0 / Used /i7 ir2deA'ed Pe 0 d/4/1" Y 71eZ 2- / 7 ,-- 2560- 4/.92,g/ / ge,y,:o/7/;ig ofce..-/wv, P4 r'ec-0,--0/e/.:;,.9 Peaa/A)/Y;44=P7/11 _z- / I 7.`-/ –/ /w,__/,,,. 4,/, ,coAlo,/f/4/04yd--- 7,/ as-9.6,9%,,,hoheA/ I 7 - 2 . 6 i NA9Z 44;ali.o/c-a.-7-6-.7/.-ecar-e/669/;21/?,=',4,6/A4v//e,-,"A;v,./42,4)/ ,o/ 624 2-4 – – ///0/77P ev,a77'ay Ar. ee.c6vvi S/0,-age (9.9,47.)_4/.. -- ar i I .v7 7 / A24- ,,,,,6e,-, 742 6e -50,-/ze,(//6". X / 2-7,0 32767 / G`r....-.■-',/z7.e.,c10,-,, 7/ r,e../,-,16,/- 4,,-, 21e,4;vet-67- r / 32767 / zots-/i-e.co,-e/4z/.226&-/-7 ,-3 /Xis Pas's'ANAL 2 / r .5'&" / /-,-ar-a/Z..y.,q-*-/1//,0‘, 2- / .2- /28, 8 /1.4.,,-7.6e,-, oi f ' /-,c-c",-..e/s ,o6)/.. y//:-P4/eve,#A//eW ..r / 2- 2 1C'ead/ilkv/e SwiArh. Pead.-.64/.../e-2Olt'41'///;-/..9 /126717,727/6,r5`Mode: I = integer, R = real, D = decimal, A = alphabetic,


Section SubsectionsPage75 40 00 06StartNEXS = 0J=LARRY—NRLNEX = 0K = 1NCOMPNARAY,K+KS-1,K+KE-1,NARAY,K+NRL+KS-1K=K+NRLMOVENARAY,K,K+NRL-1,ITEMP1MOVENARAY,K+NRL,K+NRL+NRL-1,NARAY,KJ=J—NRLNEXS=NEXS+NEXMOVEITEMP,1,NRL,NARAY,K+NRLNEX = NEX+1


Section Subsections Page75 40 00 07NAMEVARIABLES <strong>IBM</strong> <strong>1130</strong> COMPUTING SYSTEMṫ0-'8 "°156zt ,u.i n--.1- -Li-15 5°- 0zMAX.VALUE17Z/W1' 4/ ese I —MIN.VALUEVARIABLE SUMMARY SHEETApplication . . __-x,..c.././A/t/G.,E_ //zr.e--/t/AP/A/6 s..s....


Section SubsectionsPage75 50 00 01SUMMARYGenerally <strong>the</strong>re are two approaches to sorting withyour <strong>1130</strong>:1. Avoid sorting2. Write a sort programThe ways in which you can avoid sorting are:1. Maintain multiple copies of your files.2. Maintain multiple copies of your index, if anindex exists.3. Sort offline.If you decide that sorting is necessary, manytechniques are available. The methods availableand a brief evaluation of each were givenearlier.


Section Subsections Page80 00 00 01Section 80: USE OF THE DISK FOR DATA STORAGECONTENTSGeneral 80.01.00The Physical, or Hardware, Structureof <strong>the</strong> Disk 80.10.00The Disk as Seen by <strong>the</strong> FORTRANProgrammer 80.20.00The Interrelationship of <strong>the</strong> Physicaland Logical Structures 80.30.00The DEFINE FILE Statement 80.30.10The *STOREDATA and *FILES Cards 80.30.20Record Lengths and Sector Utilization 80.40.00A Trick to Get Long Recordsand/or Better Packing 80.40.10<strong>Computing</strong> Record Length 80.50.00Shortening Record Length 80.60.00Some Examples of Disk File Setup 80.70.00Example 1 80.70.10Example 2 80.70.20Example 3 80.70.30


Section SubsectionsPage80 01 00 01GENERALTo make effective use of your disk storage capability,you need to know <strong>the</strong> way <strong>the</strong> disk is organized and<strong>the</strong> way your data will be set up on it. This sectiondeals exclusively with <strong>the</strong> use of <strong>the</strong> disk as a datastorage device. Although it is desirable (and oftennecessary) to store programs and subprograms on<strong>the</strong> disk, <strong>the</strong>se normally present little difficulty,since <strong>the</strong> <strong>1130</strong> Monitor system handles most of <strong>the</strong>details involved.The way in which <strong>the</strong> disk is used can significantlyaffect:1. The amount of data that can fit into <strong>the</strong> availabledisk space2. The running speed of programs using diskdata files3. The basic practicality of many jobs. (Animproperly organized disk file can make <strong>the</strong> spaceand time requirements of some jobs appear excessive,when in reality <strong>the</strong>y need not be.)


Section Subsections Page80 10 00 01THE PHYSICAL, OR HARDWARE, STRUCTURE OFTHE DISKEach <strong>IBM</strong> 2315 disk cartridge contains 512,000 wordsorganized into 200 cylinders of eight sectors each;a sector, in turn, contains 320 words (see Figure80.1). This is a very rigid organization dictated by<strong>the</strong> basic design of <strong>the</strong> <strong>1130</strong>.A wordA sector,320 words+ addressA cylinder,2 tracks,8 sectors•Read-writeheadsAn entire cylinder (eight sectors) is accessed byone setting of <strong>the</strong> disk read/write heads. If you wishto read or write from a cylinder o<strong>the</strong>r than <strong>the</strong> oneat which <strong>the</strong> heads are now set, <strong>the</strong> disk arm mustbe moved to <strong>the</strong> new cylinder. The disk mechanismmoves <strong>the</strong> arm directly from <strong>the</strong> old position to <strong>the</strong>new position in steps of one or two cylinders. (Itdoes not return to a "home" position first, as someo<strong>the</strong>r disk units do.) Both single steps and doublesteps take <strong>the</strong> same length of time: 15 milliseconds(.015 seconds). To move nine cylinders, you needfour 2-cylinder moves (4x15 or 60 milliseconds)plus one 1-cylinder move (15 milliseconds) -- atotal of 75 milliseconds. A move of ten cylinderstakes <strong>the</strong> same amount of time -- five 2-cylindermoves (5x15 or 75 milliseconds). Figure 80.2 showssome representative arm movement times.Move ThisMany CylindersSeekTimeStabilizationTimeAverageRotationalDelay TimeReador WriteTotalNone 0 0 20 10 301 or 2 15 25 20 10 703 or 4 30 25 20 10 855 or 6 45 25 20 10 100A cartridge,200 cylinders512,000 words1600 sectors199 or 200 1500 25 20 10 1555(maximum)Figure 80.1. Disk storage definitions Figure 80. 2.


Section SubsectionsPage80 20 00 01THE DISK AS SEEN BY THE FORTRANPROGRAMMERWhen programming in <strong>1130</strong> FORTRAN, <strong>the</strong> diskappears to be an entirely different device than <strong>the</strong>one just described. It consists of a data area whichcan be subdivided into any number of files, whosephysical size, symbolic names, and symbolic numbershave been determined by you.You may fur<strong>the</strong>r subdivide each file into somenumber of equal-size blocks known as records. Youchoose <strong>the</strong> size of <strong>the</strong> record, and each record hasa symbolic record number, starting with 1.Within <strong>the</strong> record you can place fields, which maybe real, decimal, or integer numbers, or alphamericdata.This is an extremely flexible system, as opposedto <strong>the</strong> rigid subdivisions and addresses of <strong>the</strong> actualhardware. It is still one and <strong>the</strong> same disk, however,and you must have a good knowledge of bothsystems to use <strong>the</strong> disk effectively. This sectionpresents <strong>the</strong> basic guidelines by which you can relate<strong>the</strong>se seemingly diverse systems:The physical, or hardware, systemThe logical, symbolic, or software system


Section Subsections Page80 30 10 01THE INTERRELATIONSHIP OF THE PHYSICALAND LOGICAL STRUCTURESThe DEFINE FILE StatementFor every data file you wish to access on <strong>the</strong> disk,<strong>the</strong>re must be a DEFINE FILE statement in yourFORTRAN program specifying certain details. Atypical DEFINE FILE statement isDEFINE FILE 47(400,85, U, NEXT)which indicates a file numbered 47, having 400 recordsof 85 words each. The U is always requiredand specifies an unformatted record. NEXT is <strong>the</strong>name of an integer variable that will always be setto <strong>the</strong> record number of <strong>the</strong> next record in <strong>the</strong> file,a number between 1 and 400. For example, if youhave just given <strong>the</strong> commandREAD (47'K) A, B, I, Jwhere K was 96, NEXT will equal 97, <strong>the</strong> recordnumber of <strong>the</strong> next record. The incrementing ofNEXT occurs automatically and you may choose toignore it completely. In this case, you are addressingyour file by <strong>the</strong> symbol K, doing your own manipulationof K, and not using NEXT at all. If you wish toread <strong>the</strong> next record, you can say ei<strong>the</strong>rREAD (47'NEXT A, B, I, JAn 85-word disk record allows three records persector (Figure 80.2), so that your file of 400 recordswill require 134 sectors (<strong>the</strong> exact answer, 133 1/3,must be adjusted upward to <strong>the</strong> next higher wholenumber).(If your record length could somehow be shortenedto 80 words, you could place four records persector, reducing <strong>the</strong> sector requirement from 134 to100, a substantial savings -- see 80.40.00.)If you do not want to save this data file for use bya subsequent program, <strong>the</strong> DEFINE FILE statementis <strong>the</strong> only place you need reference it.The DEFINE FILE statement specifies a mixtureof physical (actual) and logical (symbolic) subdivisions:File number (symbolic)Number of records (symbolic)Number of words per record (actual)Cylinders, sectors, and fields are nowhere mentioned.The READ (or WRITE) statements specify onlysymbolic designations:File number (symbolic)Record number (symbolic)Field names (symbolic)OrK = K + 1READ (47'K) A, B, I, J


Section SubsectionsPage80 30 20 01The *STOREDATA and *FILES CardsIn some programs, <strong>the</strong> DEFINE FILE statement isall that is required to specify <strong>the</strong> details of a datafile. The file is placed in Working Storage (WS),and records may be read or written by that programand/or its subprograms.If, on <strong>the</strong> o<strong>the</strong>r hand, you have a data file that isto be used by more than one program, you must domore than just specify it in a DEFINE FILE statement.You must get it out of Working Storage (WS)and into <strong>the</strong> User Area (UA) or Fixed Area (FX),where it will be protected from accidental destruction.Working Storage is true to its name: it isstrictly a work area. <strong>Data</strong> placed in WS may stillbe <strong>the</strong>re when it is needed; <strong>the</strong>n again, it may not,since <strong>the</strong> <strong>IBM</strong> compilers, DUP, and o<strong>the</strong>r programsall use WS.Working with data files in <strong>the</strong> User Area or FixedArea requires <strong>the</strong> use of two additional cards: <strong>the</strong>*STOREDATA card and <strong>the</strong> *FILES card.The *STOREDATA card is used first to create anentry in <strong>the</strong> LET or FLET, specifying <strong>the</strong> name,location, and size of your data file. In this case<strong>the</strong> *STOREDATA card, despite its name, does notreally store your data; actually, your data has noteven been written yet.In <strong>the</strong> preceding example (file 47 -- 400 recordsof 85 words each, requiring 134 sectors) you mustrun a disk utility job3. The *STOREDATA card contains mixed typeinformation -- both actual (number of sectors) andsymbolic (file name and cartridge identificationnumber).At this point you have run <strong>the</strong> *STOREDATA job,specifying certain data <strong>about</strong> <strong>the</strong> file named PAYRL,and compiled your FORTRAN program referencing<strong>the</strong> file numbered 47. How, when, and where canyou tell <strong>the</strong> <strong>1130</strong> that <strong>the</strong>se two files are one and <strong>the</strong>same?How? With <strong>the</strong> *FILES card, which in this casewould readI 2 3 4 5 6 7 8 910 111 2 1 314 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3031 32 33 34 333S 37 3839 4041 42 43 4445f/LF5(47,P4YRL,/ 9167)When and where? This depends on <strong>the</strong> format (DSFor DCI) of your program. If <strong>the</strong> program is in DSFformat, you must place <strong>the</strong> *FILES card after <strong>the</strong>execute card every time you execute <strong>the</strong> program.1 2 3 4 2122 26 27 28 29 303 3233 34 3566 373939 4041 40434.4S// / 08EQL 5 a 7 4.t2 9 6 7 )4 5 7 9 10 12 13 14 15 16 17 19 20 21 22 23 24 25 27 28 30'31 32 34 37 39 404 42 43 44451 7 9 5CAW5 T 0 A 7 5 U A ,A4 Y 3 4 9 6 7 9 6 7which sets aside 134 sectors in <strong>the</strong> User Area (UA)of disk cartridge 1967 and labels it PAYRL.Notice that:1. The information contained on <strong>the</strong>DEFINE FILE 47(400, 85, U, NEXT)If <strong>the</strong> program is to be built into core image format(DCI), <strong>the</strong> *FILES card must be placed after <strong>the</strong>*STORECI card15 1710 16 19 21 22 26 28 295 3324 3425 5527 3620 399 12 36 404 42 43 44451341/ 0 115 7" C U A5 4 7 A 9 6 7hol 9 6 7 96 7card does not appear anywhere on <strong>the</strong> *STOREDATAcard (and vice versa).2. The *STOREDATA job is run before <strong>the</strong>re isany data to place in <strong>the</strong> PAYRL file.and not after <strong>the</strong> // XEQ card.


Section SubsectionsPage80 30 20 02As mentioned earlier, data may be placed inWorking Storage (WS) if you do not intend to save it --that is, if it is to be used for temporary storagewithin one JOB. In fact, data will be written in WSunless a *FILES card is used; likewise, any READcommands will assume that <strong>the</strong> data is in WS if no*FILES cards are present.Using <strong>the</strong> *STOREDATA and *FILES combination,however, you have a choice as to where your data filewill be placed -- ei<strong>the</strong>r in <strong>the</strong> User Area (UA) orFixed Area (FX). In most cases it does not matterwhich is chosen, since both areas are safe fromaccidental destruction. The main difference isthat files in <strong>the</strong> Fixed Area are in a fixed positionand will not be moved <strong>about</strong> as o<strong>the</strong>r files and programsare deleted.This option is exercised by <strong>the</strong> characterspunched in columns 17 and 18 of <strong>the</strong> *STOREDATAcard -- UA indicating User Area, FX indicatingFixed Area. Columns 13 and 14 always containWS, since <strong>the</strong> *STOREDATA always takes somenumber of sectors from WS and adds <strong>the</strong>m to UAor FX.Note that <strong>the</strong>re is no Fixed Area on a disk cartridgeunless you have defined one with a *DEFINEFIXED AREA card.


Section SubsectionsPage80 40 00 01RECORD LENGTHS AND SECTOR UTILIZATIONRemember, <strong>the</strong> disk is physically composed ofsectors, each containing 320 words. A symbolicrecord may not cross <strong>the</strong> boundary between twophysical sectors; in o<strong>the</strong>r words, a record mustlie entirely within one sector of 320 words. Thismeans that a record cannot exceed 320 words inlength. (Actually, it is possible to have recordslonger than 320 words, using a trick covered in alater subsection. ) It does not mean that only onerecord may occupy a sector; it is possible thatmany records will be placed on one sector. Forexample, if your record size is twelve words, youmay place 26 records onto each sector (26x12 = 312words), with eight words (320-312) words remaining.These eight words will not be used for two-thirds of<strong>the</strong> 27th record, since that would violate <strong>the</strong> rulespelled out above. The remaining eight words willnot be used, and are inaccessible to <strong>the</strong> FORTRANprogrammer.It goes without saying that you will gain <strong>the</strong> mostefficient use of your disk if you utilize all 320 wordsof every sector. As <strong>the</strong> previous example shows,however, this may not always occur. Figure 80.3shows <strong>the</strong> relationship between record size andsector utilization.Clearly, certain record lengths result in verypoor disk utilization. Take a 65-word record, forexample. It will allow four records per sector,using 4x65 or 260 words, but leaving <strong>the</strong> remaining60 words (<strong>about</strong> 20% of <strong>the</strong> sector) unused. On <strong>the</strong>o<strong>the</strong>r hand, if you could reduce <strong>the</strong> length of thatrecord by one word, to 64, you could fit five recordsin a sector, using 5x64 or 320 words, and wastingnone.Inefficient use of <strong>the</strong> disk can have two majoreffects on your overall system:1. A given number of records may require morespace than is available on <strong>the</strong> disk. If you have 800employee records at two per sector, you need 400sectors or 50 cylinders, fully 25% of <strong>the</strong> disk. Ifyou could fit three records per sector, your totalsector requirements would drop to 234, or 30cylinders. It is entirely possible that <strong>the</strong>re are 30cylinders available on a particular disk, but not 50.In this case you ei<strong>the</strong>r have to abandon <strong>the</strong> job, deletesomething else from <strong>the</strong> disk, or shorten <strong>the</strong> recordsize.2. Even if 50 cylinders are available, you cannotescape <strong>the</strong> fact that you are using <strong>the</strong>m inefficiently.If your 800 employee records are spreadout over 50 cylinders, ra<strong>the</strong>r than 30, you will spendproportionately more time in disk arm movement.Your records will be 67% fur<strong>the</strong>r apart, and yourdisk arm seek time will be <strong>about</strong> <strong>the</strong> same percentagegreater.Thus you have two incentives to make your diskrecords as short as possible. Several techniquesfor doing so are given in <strong>the</strong> subsection 80.60.00.For long records (46 words or more), you shouldinspect your record size to determine whe<strong>the</strong>r it isat or slightly above a boundary, or break point --46, 54, 65, 81, 107, or 161 words. (See Figure80.3. ) If this is <strong>the</strong> case, it is worth considerableeffort to shorten this record enough to increase <strong>the</strong>"packing factor" by one.For medium records (19 to 45 words in length) <strong>the</strong>record size is always near a boundary or break point,so <strong>the</strong> packing factor can be increased by one or twowith a small reduction in record length. With recordsof this length, however, it becomes more difficultto find ways to shorten <strong>the</strong> records.For short records (9 to 18 words in length), evengreater improvements are <strong>the</strong>oretically possible,but are proportionately more difficult to obtain.NOTE: When shortening disk record lengths,always keep future needs in mind.RecordLengthRecordsper SectorRecordLengthRecordsper SectorRecordLengthRecordsper SectorRecordLengthRecordsper Sector1 320 10 32 19 - 20 16 41 - 45 72 16 11 29 21 15 46 - 53 63 106 12 26 22 14 54 - 64 54 80 13 24 23 - 24 13 65 - 80 45 64 14 22 25 - 26 12 81 - 106 36 53 15 21 27 - 29 11 107 - 160 27 45 16 20 30 - 32 10 161 - 320 18 40 17 18 33 - 35 9 cannot exceed 3209 35 18 17 36 - 40 8Figure 80.3.


Section Subsections Page80 40 10 01A Trick to Get Long Records and/or BetterPackingIf you have records exceeding 320 words in length,or records of a length that yields very poor packing,you may wish to employ a trick, or, more properly,an unorthodox usage of FORTRAN. This usage takesadvantage of <strong>the</strong> fact that an <strong>1130</strong> FORTRAN READ/WRITE I/O list will be satisfied, regardless of <strong>the</strong>FORMAT or DEFINE FILE statement.For example, if we sayDIMENSION ITEMS(500)• • •READ (6'N) ITEMS500 ITEMS will be read from <strong>the</strong> disk, starting atrecord number N. It would not matter if <strong>the</strong> statement:DEFINE FILE 6(100, 100, U, NEXT)were used, indicating 100-word records. In fact,no matter what <strong>the</strong> DEFINE FILE statement contains,<strong>the</strong> entire ITEM array will be read, whe<strong>the</strong>r it exceeds320 or not.The DEFINE FILE statement has one effect, however,in that it still defines <strong>the</strong> length of <strong>the</strong>"defined"record at 100 words. Reading <strong>the</strong> 500-word arraymerely means that we have read five "defined"records. If N were 100, you would have to incrementit by five to read <strong>the</strong> next 500 words or block offive 100-word records.The DEFINE FILE statement, <strong>the</strong>n, must define:1. A file that contains enough space to hold all<strong>the</strong> data to be placed in it2. A record length less than 3203. Preferably, a record length evenly divisibleinto 320 -- that is, 320, 160, 80, 64, 40, 32, 20,16, 10, 8, 5, 4, 2, 1.To illustrate, suppose you have a file containing100 records, each with 400 words. SinceDEFINE FILE 1(100, 400, U, N)is not allowable, you could alternately specifyDEFINE FILE 2(200, 200, U, N)DEFINE FILE 3(400, 100, U, N)DEFINE FILE 4(800, 50, U, N)DEFINE FILE 5(500, 80, U, N),etc.Note that all four files fulfill <strong>the</strong> first two rules:same number of words as file number 1 (40, 000) andrecord length less than 320. However, only FILE 5meets <strong>the</strong> third rule; 80 is evenly divisible into 320,while 200, 100, and 50 are not.The reason for <strong>the</strong> third rule should be selfevidentin light of <strong>the</strong> previous material in thissection:• The FILE 2 combination (200, 200) results inonly one record per sector, with 320-200 or 120words on each wasted. Total file size would be200 sectors.• FILE 3 (400, 100) gives three records persector, with 320 -3 x 100 or 20 words wasted. Totalfile size is 400/3 or 134 sectors.• FILE 4 (800, 50) yields six records per sector,with 320 -6 x 50 or 20 words wasted. Total filesize is also 134 sectors.• FILE 5 (500, 80) results in four records persector, with 320 -4 x 80 or no words wasted. Totalfile size is 500/4 or 125 sectors.To implement this trick, you need change only<strong>the</strong> DEFINE FILE statement and <strong>the</strong> incrementing/decrementing logic in existing programs. Forexample, if you have a file that formerly contained400 records of 196 words each:DEFINE FILE 6 (400, 196, U, NEXT)you now realize that it will use each sector quiteinefficiently. Therefore, you choose instead touseDEFINE FILE 6 (1600, 50, U, NEXT)which replaces <strong>the</strong> old 196-word record with four50-word records. (In addition to better packing,you gain four words in each record.) In <strong>the</strong> body ofyour program, where you codedN N + 1READ (6'N) datayou use insteadN = N + 4and so on throughout <strong>the</strong> program.Where you use <strong>the</strong> automatically incrementedparameter NEXTREAD (6'NEXT) data -you need do nothing; NEXT will automatically reflect<strong>the</strong> number of defined records that have been processed,and will be incremented by 4 ra<strong>the</strong>r than 1.


Section SubsectionsPage80 50 00 01COMPUTING RECORD LENGTHOnce you have decided what data will be included inyour disk record, you may easily calculate <strong>the</strong>length of <strong>the</strong> record by listing <strong>the</strong> fields in <strong>the</strong> record,totalling <strong>the</strong> number of real fields (called R), <strong>the</strong>number of integer fields (called I), and using <strong>the</strong>table below to determine <strong>the</strong> number of words:*EXTENDEDPRECISIONCard UsedNoPrecisionCard Used*ONEWORDINTEGERS WORDS = WORDS =Card Used (3xR)+I (2xR)+IIn <strong>the</strong> case of fields comprising <strong>the</strong> items of anarray (often alphameric data), <strong>the</strong> number of itemsis <strong>the</strong> size of <strong>the</strong> array. For example, if you havea field consisting of a 16-character name, placedtwo characters per word (A2 format) in <strong>the</strong> arrayNAME, this will count as eight items ra<strong>the</strong>r thanone, when you are calculating I.The task is simplified by <strong>the</strong> fact that *ONEWORD INTEGERS should always be used, reducingall integers to one word per field. Except in veryunusual cases, you should compile all of your programsusing <strong>the</strong> *ONE WORD INTEGERS controlcard.NoIntegers WORDS = WORDS =Card Used (3xR)+(3xI) (2xR)+(2xI)


Section Subsections Page80 60 00 01SHORTENING RECORD LENGTHThe following suggestions will help you shorten <strong>the</strong>length of disk records. The first three should betaken regardless of record length, since <strong>the</strong>y representgood programming practice and involve littleor no effort. Suggestions 4-7 involve more programmingeffort and core storage. You must determinehow much effort it is worth to gain more spaceon <strong>the</strong> disk.1. First and foremost, each item in <strong>the</strong> diskrecord should be inspected to determine whe<strong>the</strong>r itreally must be in this record. Can it be eliminatedentirely, or placed in a separate file?2. You should decide whe<strong>the</strong>r standard or extendedprecision should be used. The decision isusually based on o<strong>the</strong>r considerations; extendedprecision is normally used, but it does no harmto re-ask this question.3. You should make certain that <strong>the</strong> *ONE WORDINTEGERS control record is included when compilingall programs. If not, each integer will occupy twoor three words, depending on <strong>the</strong> use of standard orextended precision.4. Each real (floating point) field should bestudied with an eye toward converting it to integermode. Remember, in most cases integers requireonly one word; real fields, three words. Integersare limited to a magnitude of 32767, but many itemsin your application may never exceed this limit,which may be thought of as32767 units, pieces327.67 dollars, hours, percent3.2767 pay rate, etcwhere <strong>the</strong> decimal points are implied and handledby you. Some typical items that lend <strong>the</strong>mselvesto such treatment are:• Discount and interest rates• Prices or price differentials• Inventory -- quantity on hand, quantity onorder, etc.• Payroll -- savings bond deduction, city andstate taxes, miscellaneous deductions5. Alphabetic data should be placed on <strong>the</strong> diskwith two characters per word (A2) ra<strong>the</strong>r than one(Al). In many cases, data (numeric and alphabetic)will be read from a card using Al format (one characterper word) for later processing with <strong>the</strong> CommercialSubroutine Package. Before this data iswritten on <strong>the</strong> disk, it may be compressed intotwo-characters-per-word format (A2), using <strong>the</strong>PACK subroutine supplied with CSP. Typical itemsin this category include names and addresses, descriptions,Social Security numbers, etc.6. If necessary, three alphabetic characters canbe placed in one word for disk storage. This can bedone by subroutine that involves a table of 40 EBCDICcodes and a packing/unpacking formula. Only 40characters are allowed -- for example:0123456789ABC XYZb-. ,where b signifies a blank.If you have just read <strong>the</strong> three characters B2-(called LTR1, LTR2, and LTR3 respectively) froma card with Al format, <strong>the</strong> subroutine can look up<strong>the</strong>ir positions in <strong>the</strong> table and find that:LTR1, a B, is 12thLTR2, a 2, is 3rdLTR3, a -, is 38thThen, using <strong>the</strong> formulaINA3 = LTR3 + 40*LTR2+ (LTR1-20)*1600or INA3 = 38 + 40*3 + (12-20) * 1600<strong>the</strong> subroutine obtains -12642.This is a unique representation of <strong>the</strong> three charactersB2-, and can be placed on <strong>the</strong> disk as oneword.To decode after reading from <strong>the</strong> disk, <strong>the</strong> subroutinemanipulates INA3 to obtain LTR1, LTR2,and LTR3:LTRI =1(32, 000 + INA3)/1600 if negative'INA3/1600 + 20 if positive= 12LTR2 = (INA3 - 1600 * LTR1-20)/40 = 3LTR3 = (INA3 - 1600 * (LTR1-20) - 40*LTR2) = 38Looking up <strong>the</strong>se three codes from <strong>the</strong> same table,you may return to Al format.


Section SubsectionsPage80 60 00 027. In many cases, several values may be combinedinto one word. For example, in a payroll file,you might have four different variables:IE (Exempt or nonexempt)1 = EXEMPT2 = NONEXEMPTMSC (Marital Status Code)1 = SINGLE2 = MARRIEDMORF(Male OR Female)1 = MALE2 = FEMALENDEP(Number of DEPendents)0 through 99One way to compress <strong>the</strong>se four items into a fivedigitword (called KODE) is:Digit 1 2 3 4 5DescriptionVariableNameExemptornonexemptMaritalstatuscodeMaleorfemaleNumberofdependentsIE MSC MORF NDEPFor example, if KODE = 22103, this employee is:• Nonexempt (digit 1 is 2)• Married (digit 2 is 2)• Male (digit 3 is 1)• With three dependents (digits 4 and 5 are 03)To compress <strong>the</strong>se values before writing on <strong>the</strong>disk, all you need do isKODE= (IE*10000)+(MSC*1000)+MORF*100)+NDEPTo decompress <strong>the</strong> word KODE after reading itfrom <strong>the</strong> disk, you could use a function similar to<strong>the</strong> one below, called NDIGFUNCTION NDIG (N, IT)DIMENSION IZ(6)DATA IZ/32767, 10000, 1000, 100, 10, 1/NDIG = IT/IZ(N+1)-IT/IZ(N)*10RETURNENDUsing this functionIE = NDIG (1, KODE)MSC = NDIG (2, KODE)MORF = NDIG (3, KODE)NDEP = NDIG (4, KODE)*10+NDIG(5, KODE)etc.In this case, such a packing technique will savethree words on each disk record (by using one wordra<strong>the</strong>r than four). This may or may not be worth<strong>the</strong> added programming involved, <strong>the</strong> additionalcore storage required for <strong>the</strong> function, and <strong>the</strong>packing/unpacking coding.Don't forget that KODE is an integer, and itsmagnitude is limited to 32767. To be safe, youshould plan for a limit of 29999 for such compressedwords.


Section Subsections Page80 70 10 01SOME EXAMPLES OF DISK FILE SETUPExample 1.A program reads a deck of cards and builds twolarge tables of data. The individual data items areof no particular interest; however, after <strong>the</strong> lastinput card has beenprocessed, you want to summarize<strong>the</strong> data tables and print a summary report.The data tables required are so large that <strong>the</strong>y cannotfit in core storage; <strong>the</strong>refore, you decide to use<strong>the</strong> disk as an extension of core storage to accumulate<strong>the</strong> two tables.After this job has been run, you have no need for<strong>the</strong> data, so you decide to keep it in Working Storage(WS).Two files are required, numbered 1 and 2, andany disk cartridge may be used. Each of <strong>the</strong> twofiles contains 100 records of 150 words each.Since <strong>the</strong> files are of a temporary nature andwill remain in Working Storage, nei<strong>the</strong>r a *STORE-DATA card nor a *FILES card is required; consequently<strong>the</strong> files have no names, only numbers.The next two exhibits show how <strong>the</strong> Disk File LayoutWorksheet would be filled in for <strong>the</strong>se two files.


Section SubsectionsPage80 70 10 02DISK FILE LAYOUT WORKSHEETDescriptionof FileFileNumberFileName( I 1 1) If ID number is not usedI, INumber ofRecordsDEFINE FILERecordLengthRecordsper SectorRecordLengthRecordsper SectorRecordLengthRecordsper SectorRecordLengthRecordsper Sector1 320 10 32 19 - 20 16 41 - 45 72 16 11 29 21 15 46 - 53 63 106 12 26 22 14 54 - 64 54 80 13 24 23 - 24 13 65 - 80 45 64 14 22 25 - 26 12 81 - 106 36 53 '15 21 27 - 29 11 107 - 160 27 45 16 20 30 - 32 10 161 - 320 /8 40 17 18 33 - 35 9 cannot exceed 3209 35 18 17 36 - 40File to beplaced in:17 18


Section Subsections Page80 70 10 03DISK FILE LAYOUT WORKSHEETDescriptionof File 72/62 E 0A- SALL-5 ,BY ,4/e Z.4FileNumber1FileNameCartridgeID NumberNumber ofWords perRecordNumber ofRecordsDEFINE FILERecordLengthRecordsper SectorRecordLengthRecordsper SectorRecordLengthRecordsper SectorRecordLengthRecordsper Sector1 320 10 32 19 - 20 16 41 - 45 72 160 11 29 21 15 46 - 53 63 106 12 26 22 10 54 - 64 54 00 13 24 23 - 24 13 65 - 80 45 60 14 22 25 - 26 12 81 - 106 36 53 15 21 27 - 29 11 107 - 160 27 45 16 20 30 - 32 10 161 - 320 140 17 18 33 - 35 9 cannot exceed 3209 36 18 17 36 - 40 817 1811 I I I21 22ii 1 1 1 1le25 27 28 29 30 37 38 39File Number of CartridgeName Sectors ID Number


Section SubsectionsPage80 70 10 04DISK FILE LAYOUT WORKSHEETDescriptionof FileFileNumber—/ 4.,e5Z Z 4-S a?"' / ASFileNameCartridgeID Number*FILES (OR *FILES (11e eI) If ID number is not used9 9RecordLengthRecordsper SectorRecordLendsRecordsper SectorRecordLengthRecordsper SectorRecordLengthRecordsPer Sector1 3202 1603 1064 805 646 537 458 409 1510 32 19 - 20 16 41 - 45 711 29 21 15 46 - 53 612 26 12 14 54 - 64 513 24 23 - 24 13 65 - 80 414 22 25 - 26 12 81 - 106 315 21 27 - 29 11 107 - 160 216 20 30 - 32 10 161 - 320 117 18 33 - 35 9 cannot exceed 32018 17 36 - 40 8File to beplaced in:Number ofRecordsNumber ofRecords perSectorWS UA FXDon't need*STORE DATAcardSTORE DATALWS13 14 17 1821 22 23 24 25FileName27 28 29 30Number ofSectorsRoundedUpwardII37 38 39 40CartridgeID Number


Section Subsections Page80 70 20 01Example 2.A payroll and project cost accounting system involvesfour disk data files:EMPS - 300 employee records with 60 wordsper record.PROJ - 100 project records with 20 wordsper record.DDESC - 20 records of 18 words each, containingsome alphabetic informationfor each of 20 departments.SUBT - 20 records of 60 words each, containingan array of subtotals ofdepartment worked for vs departmentcharged to. This is a temporaryfile used only as an extension ofcore storage, not saved from job tojob.Assume you have only one disk drive and don'tcare which disk cartridge is mounted. (You reallydo, but you, ra<strong>the</strong>r than <strong>the</strong> Monitor, will makesure <strong>the</strong> correct disk is being used. )With this basic data, you can fill in <strong>the</strong> Disk FileLayout Worksheets and punch <strong>the</strong> necessary cards.Note that file 9 (SUBT) does not need a *FILES OR*STOREDATA card, since it is not to be savedfrom one job to ano<strong>the</strong>r. It does require a DEFINEFILE card.


Section SubsectionsPage80 70 20 02DISK FILE LAYOUT WORKSHEETDescription 4-4,,,,z e:7 ,>,...E-.6- ien-6-0,,w5of FileFileNumber6FileNameOR •FILESRecordRecureardRecordsRecordRecordsRecordRecordsLengthper SectorLSectorLengthpar SectorLengthper Sector1 320 10 32 19 - /6 41 45 72 160 lI 29 21 1 48-53 63 106 12 26 22 54 - 64 54 BO 13 24 23 4 13 85-80 45 64 14 22 5-26 12 81 - 106 36 53 15 21 27 - 213 11 107 - 160 27 45 161 - 16 20 30 - 32 10 320 18 40 17 18 33 - 35 9 unrest exceed 32035 18 1 36 - 40 8File to beplaced in:Number ofRecordsNumber ofRecords perSectorWS UA FX 30D • ir -5- 60iDon't need*STORE DATAcardRoundedUpwardSTORE DATALW S,17 18let4P:5121 22 23 24 25FileName1 61 e:31 I ■ 1 i27 28 29 30 37 38 39 40Number of CartridgeSectors ID Number


Section Subsections Page80 70 20 03DISK FILE LAYOUT WORKSHEETDescriptionof FileA.A4sre72 /c7.eo c%'C7 COSTSFileNumber 71-FileI NameCartridgeID NumberIt'l lI)RecordLengthRecordsper SectorRaceLengthRecordsorRecordLengthRecordsper SectorReccirdLengthRecordspet Sector1 320 10 32 19 - 20 16 41 - 45 72 160 29 1 IS 40 - 53 6113 106 12 26 12 14') 54 - 64 54 80 13 24 23 - 24 13 65 - 80 45 64 14 22 25 - 26 12 81 - 106 36 53 15 21 27 - 29 107 - 160 2117 45 16 20 30 - 32 10 161 - 320 18 40 17 18 33'- 35 9 cannot exceed 3209 36 17 36 - 40 610File to beplaced in:WS 10 FXNumber ofRecordsI /000Number ofRecords perSectorDon't need*STORE DATAcard''STORE DATAw sI I IIV,4 IP(?,0,e/ I I , ,7,213 14 17 18 21 22 23 24 25 27 28 29 30File Number ofName SectorsRoundedUpward1 i37 38 39 40CartridgeID Number


Section SubsectionsPage80 70 20 04DISK FILE LAYOUT WORKSHEETDescription Dof FileFileNumber' sciezer/o4/5 OF ,z9t/6).4,4:77-/W,e7t/T5FileNameEENSIBilCartridgeID Number*FILES I 1 .1 I)OR *FILES1 /2/If:CC' ) If ID number is not usedNextIndicator I 114'13131Number ofWords perRecord/6?Number ofRecords20DEFINE FILERecordLengthRe rdsper 5 torRecordLengthRecordspar SectorRecordLengthRecordsper SectorRecordLengthRecordsper Sector1 320 10 32 19 - 20 16 41 - 45 72 16 11 29 21 15 46 - 53 63 106 12 26 n 14 54 - 64 54 80 13 24 23 13 65 - 80 4- 245 64 22 26 - 26 12 81 - 106 36 5 1 21 27 - 29 11 107 - 160 27 45 I6 20 30 - 32 10 161 - 320 I8 40 17 18 33 - 35 9 cannot exceed 3209 35 Cla , 36 - 40 8File to beplaced in:Number ofRecordsNumber ofRecords perSectorWS UA J FXDon't need*STORE DATAcard*STORE DATAWSI13 1417 18I I21 22 23 24 25 27 28 29 30 37 38 39 40File Number of CartridgeName Sectors ID NumberI


Section Subsections Page80 70 20 05DISK FILE LAYOUT WORKSHEETDescription ,..5e/6, 7-4, TA Z. Sof FileFileNumber9I FileNameMENE■CartridgeID NumberI I )(.5e/ri ) If ID number is not used1 1 1 14/1g1RecordLength-....Records Ram'per Sector Leorhpar SectorRecordLeRecordstOrRecordLengthRecordsFor Sector1 320 10 32 19 - 20 16 41 - 72 160 29 21 15 46 - 53 65.)3 106 12 26 22 14 /.54 - 644 80 13 24 23 - 24 65 - 80 45 64 14 22 25 - 12 81 - 106 36 53 15 21, 2 -29 II 107 -160 27 45 16 20 30 - 32 10 161 - 320 18 40 17 18 33 - 35 9 cennot exceed 3209 36 18 17 36 - 40 0File to beplaced in:Number ofRecords perSectorUA FXDon't Id*STORE DATAcard*STORE DATAW S17 1821 22 23 24 25FileNameRoundedUpwardII III I I I I27 28 2930 37 38 3940Number of CartridgeSectors ID Number


Section SubsectionsPage80 70 30 01Example 3.This is <strong>the</strong> same job as in example 2, exceptthat two disk drives are now available and you aregoing to be more careful <strong>about</strong> which disk cartridgeis mounted on which drive unit:DRIVE 0 DRIVE 1CARTRIDGE ID 0012 CARTRIDGE ID 0019WS UA FX WS UA FXFile SUBT, since it is in WS, really does not needa name (or a *FILES or *STOREDATA card). How,<strong>the</strong>n, can you tell <strong>the</strong> <strong>1130</strong> Monitor on which diskdrive it should be placed? Again, with <strong>the</strong> // JOBcard. Columns 41-44 should contain <strong>the</strong> cartridgeID number of <strong>the</strong> disk to be used for WorkingStorage, in this case 0019.The special // JOB card1 2 3 4 5 6 7 6 9 10 11 12 13 14 13 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3001 3233 M3536 37 3839 404i 42434445// 108 00/2 00/9 GG/9EMPS SUBT PROJDDE SCFirst, you have decided that cartridge 0012 willbe on drive 0 and cartridge 0019 on drive 1. Howis this communicated to <strong>the</strong> Monitor? It is donewith <strong>the</strong> // JOB card, which must be punched1 2 3 4 5 6 7 6 9 10 11 12 13 14 15 /6 17 18 19 20 21 22 23 24 25 26 27 2829 3031 1233 34 35M37 3839 4141 42434445// JOB 00/2 00/9must be used when running <strong>the</strong> DUP *STOREDATAjobs and when executing <strong>the</strong> programs that use<strong>the</strong>se files. Needless to say, <strong>the</strong> disk cartridgesshould be placed in <strong>the</strong> proper disk drive units.The remaining three files (EMPS, PROJ, ANDDDESC) are handled in a different manner. Since<strong>the</strong>y are to be in <strong>the</strong> UA, <strong>the</strong>y do require *FILESand *STOREDATA cards, which contain a fieldfor placing <strong>the</strong> cartridge ID number. These areshown on <strong>the</strong> Disk File Layout Worksheets following.


Section Subsections Page80 70 30 02DISK FILE LAYOUT WORKSHEETDescription .E-4/c2z,,5"›,E-Z- ,,..)&—e(--jx?"..)Sof FileFileI FileNameNumber CO kEWI/151 ICartridgeID Number 1010 1/1 21le--iti/CSI 910D/2 I II) If ID number is not usedNextIndicatorNumber ofWords perRecordNumber ofRecords11111MaoRecordRecord,RecordRecordsRecordRecordsRetoldRecordsLengthper SectorLengthpar SectorLengthper SectorLengthper Sector1 320 10 32 19 - 20 16 41 - 45 72 160 11 29 21 15 46 - 53 63 106 12 26 14 54 - 64 ---r,124 80 13 24 23 - 24 13 65 - 80 45 64 14 22 25 - 26 12 81 - 106 36 53 15 21 27 - 29 11 107 - 1607 45 16 20 30 - 32 10 161 - 320 18 40 17 18 33 - 35 9 cannot exceed 3209AP18 17 36 - 40 8File to beplaced in:WS 410 FX_5-Number ofRecords perSectorDon't need*STORE DATAcard*STORE DATAWS13 14 17 18/11,4'1 44/2„5.,21 22 23 24 25FileName4.to27 28 29 30Number ofSectorsRoundedUpward0,0,/ ,237 38 39 40CartridgeID Number


Section SubsectionsPage80 70 30 03DISK FILE LAYOUT WORKSHEETDescriptionof File ,L=?204../C7-- 6-0.5715FileNumber 74FileName1/14 01d1 ICartridgeID Numberlo101/191I /2/e0d1 loo/9 I iI) If ID number is not usedRecordLengthRecordsper SectorRecordLengthRecordsper SectorRecordLengthRecordsper SectorRecordLengthAccordsper Sector1 320 10 32 19 - 20 16 41 - 45 72 16 11 29 21 15 46 - 53 63 106 12 26 '":fi--..—---17) 54 - 64 54 80 13 24 23 - 24 13 65 - BO 45 64 14 22 25 - 26 12 81 - 106 36 53 15 21 27 - 29 11 107 - 150 27 45 16 20 30 - 32 10 161 - 320 18 4 17 16 33 - 35 9 cannot exceed 3209 35 18 17 36 - 40 8*STORE DATA17 18 27 28 29 30 37 38 39 40Number of CartridgeSectors ID Number


Section Subsections Page80 70 30 04DISK FILE LAYOUT WORKSHEETDescriptionof FileFileNumber.33IFileName10A- .ph/12,41/e7,fri/t/o7.5'10101/191RecordLengthRecordsper SectorlecordLengthRecordsper SectorRecordLengthRecordsper SectorRecordLengthRecordsper Sector1 320 10 32 19-20 16 41 - 45 7160 11 29 21 46 - 53 6153 106 12 26 22 14 54 - 64 54 80 13 24 23 - 24 13 65 - 80 45 64 22 25 - 26 12 81 - 106 3106 53 15 21 27 -29 107 - 160 2117 45 20 30 - 32 10 320 116 161 -8 40 j1.---, 33 - 35 9 cannot exceed 3209 35 18 17 36 - 40 8Don't riled*STORE DATAcard*STORE DATAWSii6,45 1C I13 14 17 18 21 22 23 24 25RoundedUpward/1-9127 28 29 30 37 38 39 40File Number of CartridgeName Sectors ID Number


Section SubsectionsPage80 70 30 05Descriptionof File S /8 7 7,4DISK FILE LAYOUT WORKSHEETFileNumberFileNameCartridgeID Number 10101/ 191RecordRecordsRecordRecordsRecordRecordsRecordRecordsLengthper SectorLengthper SectorLengthper SectorLengthper Sector1 320 10 32 19 - 20 16 41 - 45 72 160 11 29 21 15 46 - 53 63 106 12 26 22 14 54 - 64 50 00 13 24 23 - 24 13 65 - 80 45 64 10 22 25 - 26 12 81 - 106 36 53 15 21 27 - 29 11 107 - 160 245 16 20 30 - 32 10 161 - 320 I8 40 17 18 33 - 35 9 cannot exceed 3209 36 18 17 36 - 40 81 1 1 I I I I I I I 1 1 1 1 1 1 I I f t13 14 17 18 21 22 23 24 25 27 28 29 30 37 38 39 40File Number of CartridgeName Sectors ID Number


Section Subsections Page85 00 00 01SECTION 85: DISK DATA FILES -- ORGANIZATIONAND PROCESSINGCONTENTSGeneralOrganizationGeneralPure SequentialSearching a Pure Sequential FileAdding Items to <strong>the</strong> FileIndexed SequentialChoosing an Index Step SizeBuilding <strong>the</strong> IndexSearching <strong>the</strong> IndexMaintaining <strong>the</strong> IndexAdding Items to <strong>the</strong> File85.01.00 Direct, or Random85. 10. 00 Organizations 85.10.3085.10.01 Direct85.10.10 Computed DirectPartitioned DirectSummary85.10 20 <strong>Processing</strong> 85.20.00The Interaction of Organization and<strong>Processing</strong> 85.30.00Introduction 85.30.01Choosing <strong>the</strong> Organization 85.30.10


Section SubsectionsPage85 01 00 0 1GENERAL<strong>Data</strong> records should be filed according to a plan.The relationships between file organization and dataprocessing should be carefully considered beforethis plan is chosen. With a disk, both storage andprocessing can be accomplished by ei<strong>the</strong>r of twobasic methods - sequential or direct (or random).Thus <strong>the</strong> following four storage-processing approachesare available:Sequential processing of sequentially organizeddataRandom processing of sequentially organizeddataSequential processing of randomly organizeddataRandom processing of randomly organizeddataThe first two are <strong>the</strong> most commonly used approaches.The third and fourth are of limited usein most applications. However, <strong>the</strong> fourth offerssome benefits (in selected applications), particularlywhen <strong>the</strong> data files undergo frequent additions anddeletions, or when most of <strong>the</strong> transactions must beprocessed randomly.


Section Subsections Page85 10 01 01ORGANIZATIONGeneralIn a sequentially organized file, records are storedon <strong>the</strong> disk in control key sequence, so that recordswith successively higher control keys have successivelyhigher record numbers. It is not necessary(or customary) for <strong>the</strong> control key to be <strong>the</strong> samenumber as <strong>the</strong> record number. The only requirementis that <strong>the</strong> control keys be in sequence, and insequential (not necessarily consecutive) locations.Often, to narrow <strong>the</strong> search for a record in a sequentialfile, an index is consulted for <strong>the</strong> recordnumber. This index is a sequential list of <strong>the</strong> keysof selected data file records with <strong>the</strong>ir correspondingrecord numbers. An example of a sequentiallyorganized data file is a telephone directory, in whichpeople are listed one after <strong>the</strong> o<strong>the</strong>r, in alphabeticorder, <strong>the</strong> control key being <strong>the</strong> last name/firstname combination, and <strong>the</strong> data being <strong>the</strong> telephonenumber.In a randomly organized file, <strong>the</strong> records aregenerally stored in <strong>the</strong> sequence of <strong>the</strong>ir controlkeys. However, a ma<strong>the</strong>matical transformation of<strong>the</strong> control key yields <strong>the</strong> record number. To finda record in such a file, <strong>the</strong> record number is computedfrom <strong>the</strong> control key by using <strong>the</strong> same transformationformula. In <strong>the</strong> random approach no indextables are required.


Section Subsections Page85 1 0 10 01Pure SequentialIn a purely sequential disk data file, your recordsare placed on <strong>the</strong> disk in some logical order, withno attempt to organize <strong>the</strong>m or to keep track ofwhere <strong>the</strong>y are placed. If a certain record is desired,<strong>the</strong> disk is searched sequentially until thatrecord is found.Searching a Pure Sequential FileSearching a pure sequential file is simple, butfinding any particular record may be time-consumingin <strong>the</strong> case of large files. (If you are processingonly a small number of records, however, <strong>the</strong> effecton <strong>the</strong> overall running time may be slight.) If youhave a file of 1000 records, you can search for <strong>the</strong>item with key KEYXX, using <strong>the</strong> following FORTRANstatements:DO 14 NREC=1,1000READ (NFILE'NREC) KEYIF (KEY-KEYXX) 14, 77, 1414 CONTINUE77 KEYXX has been found at record NREC.KEY is <strong>the</strong> control key on <strong>the</strong> disk record, andKEYXX is <strong>the</strong> key you are searching for. IfKEYXX is <strong>the</strong> 608th item, you will read, check, andget "no hit" on 607 items before reaching <strong>the</strong> 608th.A better way to search such a file is obvious: readevery nth record until you pass <strong>the</strong> key being sought,<strong>the</strong>n back up one record at a time until you findKEYXX.DO 14 NREC=1, 1000, NTHIREC = NREC8 READ (NFILE'IREC) KEYIF (KEY-KEYXX) 14, 77, 6666 IREC = IREC-1GO TO 814 CONTINUE77 KEYXX has been found at record IREC.If n is 20, you will read and check 32 records(1, 21, 41, 61, 601, 621) until you havepassed <strong>the</strong> desired item (KEYXX, <strong>the</strong> 608th). Then13 more records in <strong>the</strong> backing-up portion of <strong>the</strong>search (620, 619, 618, 609, 608) must beread. Here, <strong>the</strong> "skip" search has reduced yourdisk reads from 608 to 45, with a concurrent dropin processing time.A fur<strong>the</strong>r improvement can be made if you searchfirst in large increments (say 100), <strong>the</strong>n, when youpass <strong>the</strong> desired item, back up with a smaller increment(say 20) and, after passing <strong>the</strong> desireditem <strong>the</strong> second time, switch to an increment of 1.Again, looking for <strong>the</strong> 608th item, <strong>the</strong> search willbe - 1, 101, 201, 301, 401, 501, 601, 701, 681,661, 641, 621, 601, 602, 603, 604, 605, 606, 607,608, which involves 20 disk reads.<strong>All</strong> <strong>the</strong> methods shown above, however, have onedisadvantage: because <strong>the</strong>y start at record number1, <strong>the</strong> disk arm must move back to that recordeach time. A more elegant search technique wouldinvolve starting from wherever you found <strong>the</strong> lastrecord, ra<strong>the</strong>r than from <strong>the</strong> beginning of <strong>the</strong> file.This assumes that <strong>the</strong> disk arm is still positionedover <strong>the</strong> last record, but it will not be so positionedif you have meanwhile used LOCAL or SOCAL subroutinesor accessed a record in ano<strong>the</strong>r file on <strong>the</strong>same disk. This technique, <strong>the</strong>refore, is oftenimpractical.Ano<strong>the</strong>r technique involves <strong>the</strong> method of halving,sometimes called a binary search. Suppose youhave a file of 1000 records and you want to find <strong>the</strong>record whose key is KEYXX. First, halve <strong>the</strong> filesize to obtain 500, and check <strong>the</strong> 500th record. Ifyou do not find KEYXX <strong>the</strong>re, halve <strong>the</strong> 500 to obtain250 and, if <strong>the</strong> 500th record KEY was higher thanKEYXX, check 500-250 or 250 next; if it was lower,check 500+250 or 750 next. The increment nextbecomes 125, <strong>the</strong>n 63 (62.5 rounded upward), <strong>the</strong>n32 (31.5 rounded upward), etc. Using <strong>the</strong> previousexample (KEY)0C is <strong>the</strong> 608th item), your searchpattern would have been:500 first trylow, so +250750 second tryhigh, so -125625 third tryhigh, so - 63562 fourth trylow, so + 32594 fifth trylow, so + 16610 sixth tryhigh, so - 8602 seventh trylow, so + 4606 eighth trylow, so + 2hit 608 ninth trya sequence of only nine disk reads.


Section Subsections Page85 10 10 02Programming such a search is easy:NREC = 0INC = 5003 INC = (INC+1)/2READ (NFILE'NREC) KEYIF (KEY-KEYXX) 8, 9,108 NREC NREC + INCGO TO 310 NREC = NREC-INCGO TO 39 KEYXX has been found at record NREC.Adding Items to <strong>the</strong> FileAdding new records to a sequential file involvessome advance planning. If your employee file nowconsists of 188 employee records in man numbersequence018, 023, 067, 107, 109, 667, 691, 806, 902where should you put <strong>the</strong> newest employee, who hasjust been assigned man number 098? You couldrebuild <strong>the</strong> entire file, but that might prove timeconsumingin <strong>the</strong> case of large files.One way to handle file additions is to set up aseparate "addition area" on <strong>the</strong> disk, ei<strong>the</strong>r as aseparate file or as a special area in <strong>the</strong> main file.With <strong>the</strong> latter option, new employees would beplaced at <strong>the</strong> end of <strong>the</strong> file, starting with <strong>the</strong> lastrecord and working backward.For example, suppose <strong>the</strong> 188 employee recordshave been placed in a 200-record file. When mannumber 098 is added, it is placed in record number200; <strong>the</strong> next new man number goes in 199; and soon.The search programming becomes somewhatmore involved: if a man number is not found in <strong>the</strong>main (sequential) portion of <strong>the</strong> file, <strong>the</strong> "additionarea" is searched. If it is not found in ei<strong>the</strong>r place,an error message is printed.Since this added work will slow <strong>the</strong> running of <strong>the</strong>program, <strong>the</strong> file should be reorganized periodically,and new man numbers put in <strong>the</strong>ir proper places in<strong>the</strong> sequential file.


Section SubsectionsPage85 1 0 20 01Indexed SequentialAn indexed sequential file is essentially <strong>the</strong> same asa pure sequential file except that you maintain atable or index to <strong>the</strong> file, making it easier to findrecords. Suppose you have an inventory file containing2500 items, with stock numbers ranging from00001 to 28406. The stock number is kept as aninteger, and <strong>the</strong> items have been placed on <strong>the</strong> diskin stock number sequence. In order to find an itemon <strong>the</strong> disk, you will maintain an index consisting of<strong>the</strong> stock number of every 25th item. This will be aFORTRAN array in core storage. It will require2500/25 or 100 entries in <strong>the</strong> index table:INDEX (1) = 67, <strong>the</strong> stock number of <strong>the</strong> 25thitemINDEX (2) = 103, <strong>the</strong> stock number of <strong>the</strong> 50thitemINDEX (3.) = 297, <strong>the</strong> stock number of <strong>the</strong> 75thitem• • •• • •. . .INDEX (99) = 28073, <strong>the</strong> stock number of <strong>the</strong>2475th itemINDEX (100) = 28406, <strong>the</strong> stock number of <strong>the</strong>2500th itemWhen it comes time to find an item on <strong>the</strong> disk,you first look for it in <strong>the</strong> core storage array INDEX.You probably will not find that particular item in <strong>the</strong>INDEX array, but you can get a good idea of itslocation. Suppose you have just read a card containingITEM number 181. You look it up in <strong>the</strong>INDEX table as follows:INDEX (1) = 67, which is lower than 181INDEX (2) = 103, which is lower than 181INDEX (3) = 297, which is higher than 181The search stops here, since it is obvious that youhave just passed item number 181 in <strong>the</strong> process ofmoving from INDEX (2) to INDEX (3). Since INDEX(2) is <strong>the</strong> 2x25 or 50th disk record and INDEX (3) is<strong>the</strong> 3x25 or 75th disk record, you know item 181 isbetween records 51 and 75.Now resume your search for item 181, this timeon <strong>the</strong> disk ra<strong>the</strong>r than in core. You may start at51 and work your way up, or at 74 and back down.In <strong>the</strong> latter case, your program reads record 74,checks <strong>the</strong> stock number to see if it is 181, <strong>the</strong>nreads record 73, 72, 71, 70, 69, 68, etc. , down torecord 51. If 181 is on <strong>the</strong> disk and in <strong>the</strong> rightorder, you will find it relatively quickly.Choosing an Index Step SizeIn <strong>the</strong> above example, 25 was arbitrarily chosen as<strong>the</strong> index step size; in o<strong>the</strong>r words, every 25th itemin <strong>the</strong> file is recorded in <strong>the</strong> index table. What is<strong>the</strong> best index step size? First, for convenience, itshould be an even divisor of <strong>the</strong> number of recordsin <strong>the</strong> file. If it is not, it complicates programming.Second, it should be <strong>about</strong> <strong>the</strong> same as or less than<strong>the</strong> number of records in a cylinder. For example,say your record size is 48 words. This allows sixrecords per sector, and 8x6 or 48 records per cylinder.If you have 5000 records, you can choose 40 asyour step size, making your INDEX array length5000/40 or 125. The smaller <strong>the</strong> step size, <strong>the</strong> morelikely you are to hit <strong>the</strong> right cylinder on <strong>the</strong> firstdisk arm movement. The probability that you willfind <strong>the</strong> desired record on <strong>the</strong> first cylinder accessedis:1 - ((STEP SIZE-1)/(2 * NO RECS PER CYL))or in this case:1 - ((40-1)/(2x48))or <strong>about</strong> 0.6.In o<strong>the</strong>r words, with 48 records per cylinder, andan index of every 40th record, <strong>the</strong>re are six chancesin ten that <strong>the</strong> desired record can be found with onedisk arm movement (seek), and four chances in tenthat a second seek and read will be required. Sucha second step will take <strong>about</strong> 65 milliseconds.If you processed 225 inventory items, this secondseek and read would add <strong>about</strong> one minute to <strong>the</strong>total running time of <strong>the</strong> job.If you increase your step size to 50, <strong>the</strong> size ofyour index table in core drops from 125 to 100 items,but your probability of a second seek and read increasesfrom .40 to .51.On <strong>the</strong> o<strong>the</strong>r hand, if you decrease your stepsize to 25, your index table requires 200 entries,but your probability of a second seek drops to .25.


Section Subsections Page85 10 20 02Building <strong>the</strong> indexBuilding your index of every 25th (or 90th, orwhatever) item in your file presents no difficulty.Option 1: Build <strong>the</strong> index at <strong>the</strong> same time thatyou load <strong>the</strong> data on <strong>the</strong> disk. <strong>All</strong> you need do is tokeep a sequential number for each item (NO) andplace its item number (or stock number, or employeenumber) in <strong>the</strong> INDEX array at positionNO / (ISS + 1) + 1where ISS is <strong>the</strong> index step size. In FORTRAN,keeping an index of every four ITEMs (ISS=4) can bedone like this:ISS = 4NO = 155 READ (card) ITEMK = (NO-1) / ISS+1INDEX (K) = ITEMWRITE (file 'NO) ITEM, etc.NO = NO + 1GO TO 55Tracing through this coding, you will see that inaddition to creating <strong>the</strong> data file on <strong>the</strong> disk:The ITEMnumber fromthis cardwill be placedon this diskrecordfirst 1 1second 2 1third 3 1fourth 4 1fifth 5 2sixth 6 2seventh 7 2eighth 8 2ninth 9 3etc.and at thisposition in<strong>the</strong> INDEX tableWhen finished, <strong>the</strong> INDEX table will contain <strong>the</strong>ITEM numbers of <strong>the</strong> 4th, 8th, 12th, 16th, etc. ,records on <strong>the</strong> disk, just as desired. The INDEXcan now be written on <strong>the</strong> disk as a separate file,for fur<strong>the</strong>r use.Option 2: Create an index file after <strong>the</strong> datarecords have been placed on <strong>the</strong> disk. This iseven easier, since you need only read every 4th(or 20th, etc.) record from <strong>the</strong> disk and place itsITEM number in your INDEX table. Because thiswould be relatively slow, you would want to do itonly once, with a separate program, storing <strong>the</strong>INDEX as a separate data file. Then, each programusing <strong>the</strong> file could read it from <strong>the</strong> disk.


Section Subsections Page85 10 20 03Searching <strong>the</strong> IndexUnlike pure sequential organization, which issearched on <strong>the</strong> disk, indexed sequential gives anindex to search in core storage. The simplestapproach is to search <strong>the</strong> table sequentially, oneentry at a time, starting at <strong>the</strong> top. When you findan equal-or-less-than condition, you have foundwhat you are looking for. The subroutine shown inFigure 85.1 illustrates a typical method of searchingan index.You would CALL <strong>the</strong> subroutine FINDM with <strong>the</strong>known values of:ITEM -- <strong>the</strong> item you are searching forITABL -- <strong>the</strong> name of <strong>the</strong> index tableLTABL -- <strong>the</strong> length of <strong>the</strong> index tableISS -- <strong>the</strong> index table step sizeNFILE -- <strong>the</strong> number of <strong>the</strong> file• // FOR*EXTENDED PRECISION*TRANSFER TRACE41 *ONE WORD INTEGERS*LIST ALL*ARITHMETIC TRACE41 SUBROUTINE FINDM(NRECtITEMIINFILLIIITABL,LTABLoISS,IER)DIMENSION ITABL (1)IER = 1• DO 1 N = 1 • LTABLIF ( ITEM - ITABL(N) ) 2 2 9 11 CONTINUE• ITEM IS LARGER THAN THE LARGEST VALUE IN THE INDEX TABLEIER = 2RETURN• 2 NREC 155 * NDO 3 N = 1 • 155READ ( NFILE NREC• IF ( KEY - ITEM ) 46 NREC = NREC 13 CONT INUEC ITEM IS NOT IN THE FILE IN THE AREA WHERE IT SHOULD BE4 IER = 35 RETURN41 ENDVARIABLE ALLOCATIONSNCI )=0000 KEY(I )=0001CALLED SUBPROGRAMSSIAR SI IF SUBSC SUBIN 5DRED SDI•INTEGER CONSTANTS1=0004 2=0005 3=0006•CORE REQUIREMENTS FOR FINDMCOMMON 0 VARIABLES 4 PROGRAM 108END OF COMPILATION1 KEY• 5 • 6••STATEMENT ALLOCATIONS1 =0033 2 =0042 6 =005B 3 =0061 4 =006A 5 =L/06EFEATURES SUPPORTEDTRANSFER TRACE41 ARITHMETIC TRACEONE WORD INTEGERSEXTENDED PRECISION•Figure 85.1.


Section Subsections Page85 10 20 04The subroutine returns:NREC -- <strong>the</strong> record number where ITEMmay be foundIER -- an error code:1 -- ITEM has been found on <strong>the</strong> disk.2 -- ITEM is larger than any entry in<strong>the</strong> index table.3 -- ITEM is not on <strong>the</strong> disk where <strong>the</strong>index table indicates that itshould be.If IER is 2 or 3, <strong>the</strong> value of NREC returned ismeaningless.For example, suppose you have an index of 150entries, called ITABL, representing every 60thitem in an inventory file. After reading an inventorydetail card containing a field called ITEM,you want to find <strong>the</strong> inventory record for that item.By using subroutine FINDMCALL FINDM (NR, ITEM, NFILE,ITABL, 150,60, IER)you obtain, perhaps, an NR of 731 and an IER of 1,meaning that <strong>the</strong> desired ITEM has been found, atrecord 731. You can now read <strong>the</strong> inventory recordfor that item:READ (NFILE'NR) dataMaintaining <strong>the</strong> IndexWhen using an indexed sequential disk data file, youmust make sure that <strong>the</strong> index agrees completelywith <strong>the</strong> file. If you rearrange records in <strong>the</strong> filewithout rebuilding <strong>the</strong> index, you may expect greatdifficulty in locating items in <strong>the</strong> file. Rebuilding<strong>the</strong> index is a ra<strong>the</strong>r simple matter, and twomethods are given in a preceding section.The file index is typically stored on <strong>the</strong> samedisk as <strong>the</strong> file itself, and is read into core once,at <strong>the</strong> beginning of each program that uses <strong>the</strong> fileit indexes.Adding Items to <strong>the</strong> FileAdding items to an indexed sequential file canbe handled in much <strong>the</strong> same manner as for puresequential files. New records are placed in aseparate file, or at <strong>the</strong> "high" end of <strong>the</strong> mainfile.These new items will not be reflected in <strong>the</strong>index, but this does not matter too much. Theindex may be used to facilitate looking up recordsin <strong>the</strong> main portion of <strong>the</strong> file, and, if an item isnot found <strong>the</strong>re, it can be sought in <strong>the</strong> additionarea.


Section SubsectionsPage85 10 30 01Direct, or Random, OrganizationsDirectThe simplest of all organizations exists when <strong>the</strong>record number is <strong>the</strong> same as <strong>the</strong> control key. Forexample, in a payroll application requiring onerecord per employee, <strong>the</strong> record number would be<strong>the</strong> same as <strong>the</strong> employee number. If you had athree-digit employee number, 001 to 999, youwould set up a file of 999 records:DEFINE FILE 1 (999, XXX, U, NEXT)If you read an employee number from a card77 FORMAT(I4)READ (2, 77) NEMPyou can immediately find that employee on <strong>the</strong> diskwithREAD (1'NEMP) dataOr WRITE (1'NEMP) dataComputed DirectSometimes it is possible to take an employeenumber (or part number, etc.) and modify it tomake a usable record number. For example, ifyou have 300 employees with employee numbersbetween 3000 and 9000, you could take this number,NEMP, subtract 3000, divide by 20 (which is(9000-3000)/300), and add 1:NREC = (NEMP-3000) / 20 + 1This results in an NREC between 001 and 301. Thisis compact and wastes no space; however, two (ormore) employee numbers may quite possibly resultin <strong>the</strong> same record number. These are known assynonyms. There are many ways to handle thisproblem, but <strong>the</strong>y require a certain added amountof programming and disk space.The advantages of this scheme are obvious, but<strong>the</strong> disadvantages may override <strong>the</strong>m. In all probability,although <strong>the</strong>re are 999 employee numbers,<strong>the</strong>re are not really 999 employees, so <strong>the</strong>re willbe many "holes", or unused records, on <strong>the</strong> disk.Fur<strong>the</strong>rmore, 999 records, if <strong>the</strong>y are large, maytake up an inordinate amount of space on <strong>the</strong> disk.Even if <strong>the</strong>y do fit on <strong>the</strong> disk, <strong>the</strong>y will be spreadout so far that programs using this file will runvery slowly, because of <strong>the</strong> amount of "seeking",or disk arm movement, required.One remedy would be to make <strong>the</strong> employeenumbers more compact. If <strong>the</strong>re are 300 employees,why not renumber <strong>the</strong>m from 001 to 300? Orrenumber your customers in a billing file? Orrenumber your part numbers? Or job numbers?Usually, this is more easily said than done, andyou can expect difficulty in convincing managementthat <strong>the</strong>y should change established systems just tomake it easier for you or <strong>the</strong> computer.


Section Subsections Page85 10 30 02Partitioned DirectThe disk addressing used by <strong>1130</strong> FORTRAN makesthis method applicable in some cases. At one installation,<strong>the</strong>re are <strong>about</strong> 150 employees, eachwith a four-digit employee number. The first twodigits indicate <strong>the</strong> department number; <strong>the</strong> secondtwo digits are sequential numbers. The distributionis as follows:Dept.No.MaximumNo. ofEmployeesRange ofEmployeeNumbersNumber ofPossibleEmployeeNumbers1 5 101 - 110 103 35 301 - 340 404 10 401 - 420 205 10 501 - 520 206 30 601 - 650 507 60 701 - 770 7010 10 1001 - 1020 2011 20 1101 - <strong>1130</strong> 3012 20 1201 - 1230 3015 50 1501 - 1570 70250 360SummaryEach of <strong>the</strong> techniques described above has its advantagesand disadvantages, as has been pointed outearlier. In general, indexed sequential files requiremore core and disk storage (because of <strong>the</strong> index)and tend to increase processing time because of <strong>the</strong>searching involved. Random (direct) organizationsmake for fast access, with little extra core or diskrequirements, but are usually difficult to set upbecause of <strong>the</strong> synonym problem.This user noticed that he could use this breakdownof employee numbers to advantage by settingup ten files:DEFINE FILEDEFINE FILEDEFINE FILEDEFINE FILEDE FINE FILEDE FINE FILEDE FINE FILEDE FINE FILEDE FINE FILEDEFINE FILE1 (10, X, U, N1)3 (40, X, U, N3)4 (20,X,U, N4)5 (20,X,U, N5)6 (50, X, U, N6)7 (70,X,U, N7)10 (20,X,U, N10)11 (30, X, U, N11)12 (30, X, U, N12)15 (70, X, U, N15)requiring a total of 360 records to hold 250 employees.This wastes <strong>about</strong> one-third of <strong>the</strong> availablerecords but results in much simplified programming,since <strong>the</strong> user can read <strong>the</strong> employee departmentand man number from a card:77 FORMAT (12,12)READ (2,77) NDEP,NEMand access that employee with aREAD (NDEP'NEM) datastatement.Many numbering systems fit this general type andmay lend <strong>the</strong>mselves to this disk organization approach.


Section SubsectionsPage85 20 00 01PROCESSINGJust as sequential and random are two basic waysto organize a file, <strong>the</strong>y are also two ways to processor access a file.If you process records in <strong>the</strong> same order as thatin which <strong>the</strong>y lie on <strong>the</strong> disk, you are processingsequentially; if you process in a different order, youare processing randomly. Thus <strong>the</strong> same two words(sequential and random) have substantially differentmeanings when used in <strong>the</strong> area of processing, since<strong>the</strong> definition of each depends on <strong>the</strong> organization of<strong>the</strong> file. This was not so when considering organization;a file was sequential or random depending on<strong>the</strong> order in which control keys were placed on <strong>the</strong>disk.Consider <strong>the</strong> telephone directory -- a sequentialfile because <strong>the</strong> control keys (names) are in alphabeticorder. If you scan through <strong>the</strong> directory, fromfront to back, looking for people who live on MainStreet, or for men whose first name is John, you areprocessing sequentially, in <strong>the</strong> same order as <strong>the</strong>keys.If you are looking for <strong>the</strong> telephone numbers ofthree friends -- J. DOE, P. ADAMS and L. SMITH --and you look for <strong>the</strong>m in that order (not alphabetic),you are processing randomly. On <strong>the</strong> o<strong>the</strong>r hand, ifyou sort <strong>the</strong>m into alphabetic order -- ADAMS, DOE,and SMITH you are processing sequentially.


Section Subsections Page85 30 01 01THE INTERACTION of ORGANIZATION andPROCESSINGIntroductionAs you have seen, <strong>the</strong> two factors, organization andprocessing, are tied toge<strong>the</strong>r quite intimately.Often, for this reason, it is not easy to make <strong>the</strong>basic decision as to which combination of techniquesto use:Sequential organization, sequential processingSequential organization, random processingRandom organization, sequential processingRandom organization, random processingActually, it is often impossible to use only one type.You can (and, perhaps, must) process in manysequences; but your file can have only one organizationat any one time.


Section SubsectionsPage85 30 10 01Choosing <strong>the</strong> OrganizationBecause of <strong>the</strong> interaction between processing andorganization, <strong>the</strong>re are few concrete guidelines for<strong>the</strong> user who must make this decision. However, <strong>the</strong>following outline will help lead <strong>the</strong> way toward oneorganization or <strong>the</strong> o<strong>the</strong>r. The payroll applicationis given as <strong>the</strong> example.1. List <strong>the</strong> processing that must be done to thisfile and <strong>the</strong> required order of inputs and outputs(see Figure 85.2).ApplicationEdit inputcardsCalculationsPayrollregisterPayrollchecksINPUTNo orderordoesn't matterRequired Order of:O<strong>the</strong>rSame aslaterprocess.EmployeenumberEmployeenumberEmployeenumber941 report EmployeenumberName andaddressstickersFigure 85. 2.Doesn'tmatter../d ../OUTPUTSameasinput3J,./O<strong>the</strong>r2. How many different sequences are <strong>the</strong>re?a. None. No one really cares what <strong>the</strong> processingsequences are (order of card input,order of output on reports, etc. ).Make sure this is so. If it is, go to step 3.b. One. There is only one basic processingsequence desired; go to step 4.c. More than one. This complicates <strong>the</strong>matter. Go to step 5. <strong>Processing</strong>sequences needed:1.2.3.4.5.3. No one cares what <strong>the</strong> processing sequence is.This is unusual but does sometimes occur. If thisis so, you can forget <strong>about</strong> processing, and choosean organization as an isolated problem, entirelyseparate from processing.4. This file will never be processed in more thanone sequence. Therefore, it would seem like a goodidea to organize it ei<strong>the</strong>r sequentially or randomly,in <strong>the</strong> same order as that required by processing.5. This file must be processed in more than oneorder; however, it can be in only one order at any onetime. Recheck step 1. Can any of <strong>the</strong> inputs be handormachine-sorted into <strong>the</strong> same order as ano<strong>the</strong>r input?Can some of <strong>the</strong> output orders be relaxed? Canyou somehow reduce <strong>the</strong> number of orders required?If you can reduce it to one, you can go to step 3 or 4.If not, you must sort your file from one order to <strong>the</strong>o<strong>the</strong>r, or o<strong>the</strong>rwise work around this problem.


Section SubsectionsPage90 00 00 01Section 90: IMPROVING YOUR SYSTEM --PERFORMANCECONTENTSGeneralThe Role of <strong>the</strong> MonitorGeneralThe Effect of <strong>the</strong> Monitor onPerformanceThe Role of <strong>the</strong> ProgrammerPlanning for PerformanceOrganizing for Performance --How to Use LOCALsProgramming for PerformanceReducing Core StorageRequirementsProgramming <strong>Techniques</strong> toIncrease SpeedThe FIND StatementThe Role of <strong>the</strong> <strong>1130</strong> HardwareGeneralProductive Time That Cannot beImproved by Hardware Changes90.01.00 Productive Time That Can be90.10.00 Improved by Hardware Changes 90.30.2090.10.01 PlottingCard Reading90.10.10 Card Punching90.20.00 Printing90.20.10 <strong>Computing</strong>Nonproductive Time That Can be90.20.20 Reduced by Hardware Changes 90.30.3090.20.30 Additional Core StorageAdditional Disk DrivesSome Case Studies of PerformanceImprovements 90.40.00General 90.40.01Case I 90.40.1090.30.00 Case II 90.40.2090.30.01 Case III 90.40.30Summary 90.40.4090.30.10


Section SubsectionsPage90 01 00 01GENERALThis section covers many items of interest to all<strong>1130</strong> users:• How to conserve core storage• How to increase <strong>the</strong> running speed of a program• How to segment programs• The proper (and improper) use of LOCALand SOCAL subroutines, etc.The general <strong>the</strong>me of this chapter, is, however,how to improve your system, or, how to increasesystem performance.The performance of your programs should be oneof <strong>the</strong> major considerations of your programmer.Unfortunately, however, performance is all to oftenforgotten in <strong>the</strong> drive to produce a working program.The programmer, usually working against a deadline,devotes all his energy and ingenuity to <strong>the</strong> TEST/DEBUG/CORRECT/RETEST cycle, finally producingan error-free program with no time to spare,and with little thought given to efficiency.Remember, however, that this program nowenters production status, to be run weekly, orpossibly daily, where its performance may greatlyaffect <strong>the</strong> overall operation of <strong>the</strong> <strong>1130</strong> system.Program performance is affected by three factors,each of which will be discussed in more detail:The Monitor, or softwareThe programmerThe system itself, or <strong>1130</strong> hardware


Section Subsections Page90 10 01 01THE ROLE OF THE MONITORGeneralThe <strong>1130</strong> Monitor system has an outstanding feature,known as <strong>the</strong> "system overlay scheme", designed toassist you in fitting your programs into core storage.This scheme is covered in some detail in Section65, under "SOCALs".Recapping that section briefly, <strong>the</strong> Core LoadBuilder, which is given <strong>the</strong> task of building a coreload, or ready-to-execute package, also is given<strong>the</strong> task of resolving <strong>the</strong> problem of more programthan core storage (if this problem arises).Typically, many blocks of programming arecompeting. for core storage: your programs, yoursubprograms, <strong>the</strong> <strong>IBM</strong> subprograms, and <strong>the</strong>Monitor control package itself. <strong>All</strong> must be incore storage when required.As a first step, <strong>the</strong> CLB attempts to fit <strong>the</strong> entirepackage into core storage simultaneously. Ifthat does not fit, <strong>the</strong> CLB splits <strong>the</strong> <strong>IBM</strong> subprogramsinto four groups:Group 0 BasicOverlay 1 Arithmetic (add, subtract, multiply,etc. )Overlay 2 Non-disk Input/Output (cards,printer, etc. )Overlay 3 Disk Input/OutputAs step 2, <strong>the</strong> CLB determines whe<strong>the</strong>r <strong>the</strong>package will fit in core if Overlay 1 and Overlay 2share <strong>the</strong> same area in core storage (<strong>the</strong> SOCALarea). The SOCAL area must be large enough tocontain Overlay 3 plus <strong>the</strong> larger of Overlays 1 and2.If this does not provide enough room, step 3 istaken. Here, all three overlays (1, 2, and 3) willshare <strong>the</strong> same area, which must now be as largeas <strong>the</strong> largest overlay.Step 4, taken if step 3 does not work, consistsof a message informing you that this program istoo large to fit in core storage.To illustrate this graphically, Figure 90.1 shows<strong>the</strong> layout of <strong>the</strong> SOCALs required by a "typical"commercial job. This "typical" program:• Is written in FORTRAN.• Adds, subtracts, multiplies, and divides.• Uses <strong>the</strong> 1132 Printer, <strong>the</strong> 1442 Card ReadPunch, and <strong>the</strong> console typewriter (but not <strong>the</strong>keyboard).• Contains at least one PAUSE, STOP, andCALL DATSW statement.• Contains disk READ, WRITE, and FINDstatements.If you punch an L in column 14 of <strong>the</strong> // XEQcard, <strong>the</strong> CLB will print a core storage map ofyour program and all its subprograms, indicatingwhich are SOCAL or LOCAL, and what overlaylevel is in effect.


Section SubsectionsPage90 10 01 02Step 1Overlay Level 0Step 2Overlay Level 1Step 3Overlay Level 23000Overlay329702500DiskI/O(700)Overlay324502000Overlay2DiskI/O15001000Non-DiskI/O(1750)(700)Overlay2Non-DiskI/O(1750)Unused1750r 1UnusedOverlay2Non-DiskI/0(1750)Unused11111111500Overlay1Arith.(520)Overlay1Arith.(520)Overlay1Arith.(520)Overlay3DiskI/O(700)Figure90.1,


Section Subsections Page90 10 10 01The Effect of <strong>the</strong> Monitor on PerformanceTo return to <strong>the</strong> main subject of this chapter, youmay ask, "How does all this affect performance ?"To answer this, we can construct a flowchart of a"typical" commercial job. Let us say it is basicallyof <strong>the</strong> type:1. Read a card.Read Card2. Taking a key item number from <strong>the</strong> card,look up its approximate disk location in an indextable (indexed sequential organization).3. Read a disk record.4. Determine whe<strong>the</strong>r it is <strong>the</strong> right disk record. Look up keyIf it is, continue; if not, decrease <strong>the</strong> record numberby 1 and go back to step 3.5. Do some calculations based on <strong>the</strong> dataobtained from <strong>the</strong> disk and from <strong>the</strong> card.NotfoundNotfinishedItem numberin index table6. Write an updated disk record.7. Print a line of answers on <strong>the</strong> 1132 Printer. Read a disk8. Do some arithmetic (reset indicators, clearrecord fortotals, etc. ) and go back to step 1.For <strong>the</strong> purposes of this analysis you may ignoreroutines that are executed only once (initialization,final totals) or infrequently (error messages, etc. ).Figure 90.2 shows this job in <strong>the</strong> form of a roughflowchart.If this program is of a size that requires nooverlays, it will run at some base speed or throughputrate. If its size is such that it must run atSOCAL level 1, Overlay 1 (Arithmetic) and Overlay2 (Non-disk I/O) must be read from <strong>the</strong> disk wheneverrequired. Figure 90.3 shows when <strong>the</strong>se overlayswould be required. This will leng<strong>the</strong>n <strong>the</strong>base running time.Each pass will require four overlays and twodisk arm moves. The arm moves are requiredbecause <strong>the</strong> disk data file and <strong>the</strong> SOCAL overlaysare on different areas of <strong>the</strong> same disk. The timerequired for <strong>the</strong>se arm movements varies, dependingon several factors, but it may be considerable.A good average might be <strong>about</strong> 250 milliseconds or1/4 second.If <strong>the</strong> program must run at Overlay level 2, <strong>the</strong>picture changes considerably, as seen by Figure90.4. If it hits <strong>the</strong> correct disk record on <strong>the</strong> firsttry, it will require seven overlays and four diskarm moves. For each additional disk read lookingfor <strong>the</strong> correct record, add two overlays and twoarm moves. Running time will be fur<strong>the</strong>r leng<strong>the</strong>ned.InitializationArithmeticCheck it against<strong>the</strong> item numberon <strong>the</strong> cardFoundan itemCalculationsWrite a newdisk recordPrint resultsMiscellaneousarithmeticFinishedPrintGrandTotalsFigure 90.2. "Typical" commercial job -- rough flowchartEXIT—OW


Section SubsectionsPage90 10 10 02InitializationArithmeticInitializationArithmeticOVERLAY AR/TH.11------- iY/T1/ NON-EM5K .110OVERLAY AR/TN.41 ------ "WTI/ NON-045K-1/0Read CardRead CardOVERLAY NON-DISKWITH ARITHOVERLAY NON-DISKWITH ARITHLook up keyitem number.n index tableMOVE DISK ARMOVERLAYMrAREA TO FILE AREARead a diskrecord foran itemLook up keyitem numberin index tableMOVE DISK ARMolr OVERLAYTO FILE AREARead a diskrecord foran item• OVERLAY AR/TN WITH0/51( I/0MOVE ARM TO OVERLAYAREAOVERLAY DISKS/0 WITHWRITHMEncNotfoundCheck it against<strong>the</strong> item numberon <strong>the</strong> cardNotfoundCheck it against<strong>the</strong> item numberon <strong>the</strong> cardFoundFoundCalculationsCalculationsOVERLAY RRITH WITHoisir IvoMOVE ARM 70 Ir/LE AREA?Write a newdisk recordMOVE OISA'ARMFROM FILE AREATO OVERLAY AREAPrint resultsOVERLAY AR/TheIV/TH NON- OW( 110AY NON-DISKAVITH ARITHMETICWrite a newdisk recordMOVED/SKARNFROM ,ar AREATO OVERLAY AREAPrint results"41---- OVERLAY DISKWITH NON- DISK Zia01/ERLAY NON DISKL4I/TH ARITHMETICNotinishedMiscellaneousarithmeticNotFinishedPrintEXITfinishedPrintGrandMiscellaneous Finished EXITGrandTotalsarithmeticTotalsFigure 90.3. Overlays and disk arm movements required atSOCAL level 1Figure 90.4. Overlays and disk arm movements required atSOCAL level 2


Section Subsections Page90 10 10 03Figure 90.5 summarizes <strong>the</strong> overlay pattern as itvaries with <strong>the</strong> disk search.You can see <strong>the</strong> Overlay level 1 will not hurtperformance too much. If each arm movementtakes <strong>about</strong> 1/4 second, <strong>the</strong> processing time percard might jump from 8 to 8 1/2 seconds. Overlaylevel 2, on <strong>the</strong> o<strong>the</strong>r hand, may cause this programto run significantly more slowly. A typical indexedsequential file might require 15 disk reads to find<strong>the</strong> correct record. This would increase <strong>the</strong> timeper card from 8 seconds to 16 seconds, or half <strong>the</strong>throughput rate. This could become even worse if<strong>the</strong> data file being searched were large or distantfrom WS, since <strong>the</strong> SOCAL area would be proportionatelyfur<strong>the</strong>r away from <strong>the</strong> file area.The overlay time itself may be ignored, sinceit is quite small compared with <strong>the</strong> disk arm movementtime.This example illustrates two principles:1. The disk data file must be organized so thatitems may be found quickly (see Section 85).2. For programs involving disk search techniques,as does <strong>the</strong> example, you should try diligentlyto avoid SOCAL Overlay level 2.The difference between level 2 and level 1 isei<strong>the</strong>r 620 words (READ and WRITE disk) or 700words (READ, WRITE, and FIND disk), but thisdoes not mean that you must cut 620 or 700 wordsfrom your program to drop from level 2 to level 1.The CLB will use level 2 if <strong>the</strong> program is too bigfor level 1. (It may be one word too big or 700words too big.) Every word you can cut from<strong>the</strong> size of <strong>the</strong> program increases <strong>the</strong> probabilitythat <strong>the</strong> program will fit at level 1 ra<strong>the</strong>r than levelNumber of diskREADs to find<strong>the</strong> desiredrecordOverlay level 0 Overlay level 1 Overlay level 2OverlaysArmmovesOverlaysArmmovesOverlaysArmmoves1 0 0 4 2 7 42 0 0 4 2 9 63 0 0 4 2 11 84 0 0 4 2 13 105 0 0 4 2 15 1210 0 0 4 2 25 22•15 0 0 4 2 35 32•20 0 0 4 2 45 42••Figure 90.5. Single-drive <strong>1130</strong> system2. For this reason, you should strive to keep yourprograms as small as possible. Several means ofdoing this are discussed in <strong>the</strong> next subsection.Also, Section 70 gives many FORTRAN core savingtips.Note that <strong>the</strong> above analysis applies to singledisk drive <strong>1130</strong> systems; <strong>the</strong> addition of a seconddisk drive would eliminate all <strong>the</strong> overlay-causedarm movements -- assuming of course, that youhave placed your data file on one disk and WorkingStorage on ano<strong>the</strong>r.


Section SubsectionsPage90 20 00 01THE ROLE OF THE PROGRAMMERIn reading <strong>the</strong> preceding subsection, you may havegot <strong>the</strong> idea that <strong>the</strong> <strong>1130</strong> Monitor has <strong>the</strong> major effecton <strong>the</strong> performance of your programs and thatyou do not enter <strong>the</strong> picture unless <strong>the</strong> "systemoverlay scheme" fails to squeeze your program intocore storage.Nothing could be fur<strong>the</strong>r from <strong>the</strong> truth. Theprogram <strong>the</strong> CLB was manipulating was, afterall, planned, organized, and programmed by you,not by <strong>the</strong> CLB.Any one of <strong>the</strong>se three functions, if notproperly done, can force <strong>the</strong> CLB into buildingan inefficient package -- one that may take fiveor ten times longer in execution than a similar (butbetter planned) program doing <strong>the</strong> same job.As mentioned earlier in this section <strong>the</strong>re aremany things you can do to avoid such inefficiencies;most of <strong>the</strong>m are easy to understand, remember,and implement.


Section Subsections Page90 20 10 01Planning for PerformanceThe major factor affecting program performance iscore storage and how it is used. Therefore, youshould try to avoid core storage difficulties byplanning for reasonably sized program packages.It may seem quite efficient to have <strong>the</strong> entire payrollprocessed by one comprehensive program, but,overall, it would probably turn out to be quiteinefficient. Because it would be a very largeprogram, it would probably involve many overlaysand could run for eight hours, whereas four smallerprograms might take only five or six hours.Section 60 contains many hints on how you maywrite small, modular programs. Besides helpingto gain performance, modular programs have manyo<strong>the</strong>r advantages over large, all-inclusive ones(<strong>the</strong>y are easier to test, tend to keep errors fromspreading, etc. ).


Section SubsectionsPage90 20 20 01Organizing for Performance -- How to Use LOCALsAfter its scope has been determined, a programshould be organized into logical blocks that lend<strong>the</strong>mselves to efficient segmentation. You shouldorganize your program expecting to have problemsconcerning core storage. If you do not have problems,very little time is lost. If you do, as istypical in most cases, you are in a position to createyour own overlay scheme, if that of <strong>the</strong> loader willdegrade <strong>the</strong> performance of your program.As you have seen, in Section 65, <strong>the</strong> Monitorgives you two overlay or segmentation methods:LOCAL subprograms and program LINKs. Thesetwo overlay schemes are entirely planned andexecuted by you, in contrast to <strong>the</strong> Core LoadBuilder's automatic SOCALs.The three interact in one important way: If youcan conserve enough core with LOCALs and LINKs,<strong>the</strong> CLB will not have to resort to SOCALs. As yousaw earlier, SOCAL Overlay level 2 can seriouslydegrade <strong>the</strong> performance of some programs, particularlythose that search a disk data file looking for acertain key (man number, part number, etc. ).If you have a program such as this running at acomparatively slow rate, you should investigate itclosely; if <strong>the</strong> program is using level 2 overlays,you should make a determined effort to reduce itssize enough to allow CLB to use level 1. (To findout which overlay level is in use, execute <strong>the</strong>program with an L punched in column 14 of <strong>the</strong>// XEQ card.)Figure 90.6 shows <strong>the</strong> same program used earlieras an example. To it has been added:INIT The Initialization routineWRAP The wrap-up routine (grand totals)and three exception subroutines:BADCD "Bad input card" messageNOHIT "No such item on disk" messageNEWPG Page heading routineIn addition, <strong>the</strong> following have been made into subroutines:READC Read cardCALC1 Calculations Part 1CALC2 Calculations Part 2CALC3 Calculations Part 3MISC Miscellaneous arithmeticHow should you go <strong>about</strong> reducing <strong>the</strong> size of thisprogram? Many programmers, irked at <strong>the</strong> fact that<strong>the</strong>ir program does not fit in core storage, takean "I'll show 'em" attitude and make all subroutinesLOCAL. This probably will eliminateNotoundNotfinishedFigure 90.6.I nitializationArithmeticRead CardLook up keyitem numberin index tableRead a diskrecord foran itemCheck it against<strong>the</strong> item numberon <strong>the</strong> cardFoundCalculationsWrite a newdisk recordPrint resultsMiscellaneousarithmeticREADCFinishedERROR ROUT/NEBAD CRRDERROR ROUT/NE-/TEN NOT ONDASK1.51/BROL/77NEI1SL/BROL/7/NE51/8Raurmle..510P TO NEW RRGEAND PR/N7NERD/N65ONEN NECESSRRYWRAPPrintGrandTotalsEXIT


Section Subsections Page90 20 20 02<strong>the</strong> need for Overlay level 2, but is a ra<strong>the</strong>r extremecase of over-reacting to a problem. Figure 90.7shows <strong>the</strong> way in which this program would run, ifall seven subroutines were LOCAL and Overlaylevel 1 were used. Each card processing cyclewould involve 11 overlays (7 LOCALs, 4 SOCALs)and 4 arm movements (<strong>the</strong>se figures are not dependenton <strong>the</strong> number of times <strong>the</strong> disk must be readbefore finding <strong>the</strong> desired item).Reviewing Figure 90.7, it seems that you aresomewhat better off than if you had used Overlaylevel 2, but you still require an excessive numberof overlays and arm movements.It would have been far more prudent to LOCALizeonly BADCD, NOHIT, and NEWPG, three subroutinesthat are only used occasionally. This would reduceyour LOCAL overlays drastically and might saveenough core storage for Overlay level 1 to be used.Ano<strong>the</strong>r technique that would reduce <strong>the</strong> size ofthis program is <strong>the</strong> use of LINKs. The blockscalled INIT and WRAP could easily be separatedfrom <strong>the</strong> main program, and made into what can becalled "one-shot LINKs". This might save enoughcore storage to eliminate <strong>the</strong> need for LOCALs andSOCAL level 2 altoge<strong>the</strong>r.Ano<strong>the</strong>r LINK is possible here -- a type you mightcall a "repetitive LINK". Suppose you split <strong>the</strong> mainprogram into:PART1a. Read cardb. Look up key in indexc. CALL LINK (PART2)PART2a. Read diskb Check if correct record foundc. Calculationsd. Write new disk recorde. CALL LINK (PART3)PART3a. Print resultsb. Miscellaneous arithmeticc. CALL LINK (PART1) if not finishedCALL LINK. (WRAP) if finishedThis arrangement is particularly good, for severalreasons:e It cuts <strong>the</strong> original program into five pieces(two small and three large).• It isolates <strong>the</strong> I/O into separate LINKs -- forexample:PART1 uses nei<strong>the</strong>r <strong>the</strong> disk nor <strong>the</strong> printer.NotfoundNotfinishedI nitializationArithmeticRead CardLook up keyitem numberin index tableRead a diskrecord foran itemCheck it against<strong>the</strong> item numberon <strong>the</strong> cardFoundCalculationsWrite a newdisk recordPrint resultsMiscellaneousarithmeticL L CRL OVERLAYSOCRL O'ERLRYPART2 uses nei<strong>the</strong>r card nor printer.PART3 uses nei<strong>the</strong>r card nor disk. Figure 90.7.This reduces <strong>the</strong> sizes of <strong>the</strong>se LINKs substantially• It probably eliminates <strong>the</strong> need for SOCALsand LOCALs altoge<strong>the</strong>r.FinishedERROR ROUTINEBRO (PROERROR ROUT/N£ -/TEM NOT ON0/51!15LIBROL/TINEI57/BROL/T/NESUBROL/T/NENONiT -oCi5K /P TO NEW PRGEAND PR/Ail-HERD/NOSWHEN NECESSRRYPrintGrandTotals13:0WRAPEXITA10. MOAT Rk'N TO OVERLAY ARERND . AfLIVERRAf ro ORTR ACE/WAR


Section SubsectionsPage90 20 20 03To summarize, a typical program has been segmentedin several different ways, and <strong>the</strong> probableeffect of each way on performance has been discussed.The purpose has not been to illustrate that.LINKs are better than LOCALs, or that LOCALsare better than SOCALs, or any o<strong>the</strong>r hard and fastrule. The purpose has been to illustrate that <strong>the</strong>options must be chosen wisely, not blindly. Theeasiest way, letting <strong>the</strong> CLB do it with SOCALs,may or may not be <strong>the</strong> best in terms of performance.The next easiest way -- LOCALs -- may or may notbe best. The only way to determine which is bestis to lraw a flowchart of <strong>the</strong> type shown and totailor <strong>the</strong> overlay option to <strong>the</strong> program.You can generalize somewhat, with somecommon-sense do's and don'ts:1. DON'T worry <strong>about</strong> <strong>the</strong> performance of aprogram that runs for only a few minutes, or thatis used only occasionally. Concentrate your effortson <strong>the</strong> long-running, everyday jobs.2. DON'T place an overlay, or cause one to beplaced, within a loop that reads from <strong>the</strong> disk. Forexample, take <strong>the</strong> problem discussed above, whereyou have a loop of <strong>the</strong> type:Read disk recordCompare disk key to sought-for keyIf not equal, repeatSOCAL level 2 will overlay <strong>the</strong> Disk I/O packagerequired for <strong>the</strong> Disk READ) and <strong>the</strong> Arithmeticpackage (required for <strong>the</strong> subtraction within <strong>the</strong> IFstatement paren<strong>the</strong>ses). Fur<strong>the</strong>rmore, <strong>the</strong> diskREAD command requires <strong>the</strong> disk arm to move awayfrom <strong>the</strong> SOCAL disk area. This repetitive disk armmovement may have a disastrous effect on <strong>the</strong>running time of <strong>the</strong> program.If you place a LOCAL subroutine within this loop,it will have <strong>the</strong> same effect as if <strong>the</strong> CLB had includeda SOCAL.3. DON'T LOCALize subprograms that arealways used, unless it is absolutely necessary toget <strong>the</strong> program into core storage. DO LOCALizesubprograms that are <strong>the</strong> exception ra<strong>the</strong>r than <strong>the</strong>rule (error messages, new page headings, initialization,final totals, unusual payroll deductions,etc.).4. DO minimize <strong>the</strong> amount of coding betweenDISK I/O commands. This, in turn, will minimize<strong>the</strong> chance of an overlay (SOCAL or LOCAL) whichwill require that <strong>the</strong> disk arm move from <strong>the</strong> dataarea to <strong>the</strong> overlay area and back again.5. Also, DON'T LOCALize a subprogram that iscalled between two disk statements. For example,suppose a program has <strong>the</strong> following sequence:DISK. I/OCALL SUBDISK I/OIn this case SUB should not be made LOCAL, sinceit will force excessive disk arm movement.6. DO plan for problems with performance --ei<strong>the</strong>r a program too large for core or a programthat does not run as fast as it might. Keep <strong>the</strong>scope (and <strong>the</strong>refore <strong>the</strong> size) of each programmodest; program as a series of LINKs; design <strong>the</strong>exception routines as subprograms; etc.


Section Subsections Page90 20 30 01Programming for PerformanceYou have seen in <strong>the</strong> preceding examples that systemperformance is very closely related to <strong>the</strong> size of aprogram. In general, <strong>the</strong> larger <strong>the</strong> program, <strong>the</strong>more slowly it will run. This degradation is notevidenced in a gradual way; because of <strong>the</strong> SOCALand LOCAL system, it will show up in sudden jumpsor drops in throughput rates. Suppose you have an1131 Model 2B (8K) and <strong>the</strong> familiar "typical"program. With no overlays you have <strong>about</strong> 4500words for your program; with Overlay 1, <strong>about</strong>4920 words; with Overlay 2, <strong>about</strong> 5620 words.Assuming <strong>the</strong>se figures to be exact, this means that:If your program size is It will:1 -- 4500 words Fit with no overlays4501 -- 4920 words Require Overlay 14921 -- 5620 words Require Overlay 25621 words or more Not fit in core storagewithout fur<strong>the</strong>rworkIf you add 1 word to a 4920-word program, it willsuddenly require Overlay 2 and may take twice aslong to execute. (It may also take no longer thanbefore -- this depends on <strong>the</strong> program.)Conversely, if you have a program at level 2,it may take anywhere from one word to 700 words tomake it drop to level 1. If it was 4921 before, itwill take only one word; if it was 5620, it will take7, 10 words.Reducing Core Storage RequirementsTo make a long story short, every word counts.You should always keep this fact in mind and striveto write efficient programs. Section .70 gives manycore saving tips; Section 65 also gives some ideasfor improving <strong>the</strong> SOCAL system. Repeating <strong>the</strong>FORTRAN tips (<strong>the</strong> details are given in Section70. 50. 20):1. Use <strong>the</strong> DATA statement wherever possible.2. Keep FORMAT statements compact.3. Take square roots and raise numbers topowers in <strong>the</strong> most efficient manner.4. Code efficient I/O statements.5. Avoid long subroutine argument lists.6. Don't include unneeded I/O devices on <strong>the</strong>*IOCS card.7. Avoid arithmetic with constant subscripts.8. Remove <strong>the</strong> TRACE from production statusprograms. The trace package requires <strong>about</strong> 140words of core storage. In addition, it requires that<strong>Data</strong> Switch 15 be interrogated every time you"execute" an equal sign, IF statement, or computedGO TO. This requires 150 to 200 microsecondseach time; some programs may do this tens ofthousands of times in <strong>the</strong> course of one run.


Section SubsectionsPage90 20 30 02Programming <strong>Techniques</strong> to Increase SpeedJust as reduced program size can improve performance,so can several programming techniques.<strong>All</strong> involve utilizing <strong>the</strong> overlapped I/O capabilityof <strong>the</strong> <strong>1130</strong>. The hardware of <strong>the</strong> <strong>1130</strong> allows for <strong>the</strong>overlapping of almost all I/O devices; however, <strong>the</strong>programming system used determines which unitscan actually be made to run concurrently witho<strong>the</strong>r units, or with <strong>the</strong> central processor. (SeeFigure 90. 8.)Overlapping means that you can:1. Tell <strong>the</strong> device what it is to do.2. Start it going (printing, punching, etc.).3. Then continue with o<strong>the</strong>r processing before<strong>the</strong> device has actually finished what it has started.This section covers those units that can be overlappedby standard FORTRAN. The use of <strong>the</strong>overlapped I/O feature of <strong>the</strong> Commercial SubroutinePackage is discussed in Section 70.UnitFORTRANFORTRANwith CommercialSubroutine PackageAssembler1442-6 or -7 Reader Yes Yes1442-6 or –7 Punch Yes Yes1442-5 Punch Yes YesConsole Typewriter Yes YesConsole Keyboard1132 Printer Yes YesYesThe FIND Statement. Because it is an optionalfeature of FORTRAN, some programmers are unawareof, and/or neglect, <strong>the</strong> use of <strong>the</strong> FIND statement.However, in many disk-oriented programsit can increase performance significantly. It can beadded to any program quite easily and is simple touse.Suppose your program calls for a disk read fromrecord NR of file 6:READ (6'NR) DATAThe disk subroutine will automatically computewhere that record resides, move <strong>the</strong> disk arm to <strong>the</strong>proper position, and read <strong>the</strong> data. As mentionedmany times earlier, <strong>the</strong> second job, <strong>the</strong> movementof <strong>the</strong> disk arm, may take much longer than <strong>the</strong>o<strong>the</strong>r two functions.The FIND statementFIND (6'NR)ahead of <strong>the</strong> READ (or WRITE) will cause <strong>the</strong> subroutineto compute <strong>the</strong> location of record NR, start<strong>the</strong> disk arm moving to that location, and <strong>the</strong>n continueprocessing o<strong>the</strong>r FORTRAN statements.The secret of <strong>the</strong> FIND statement is self-evident:it should be placed as far in advance of <strong>the</strong> actualREAD or WRITE statement as possible. In this wayyou can get <strong>the</strong> arm moving, overlapping its movementor "seek" time with computations, printing,etc.Let us take a portion of a FORTRAN programthat looks like this:FIND (6'NR)1403 Printer Yes Yes YesDisk – Arm Movement (FIND) Yes Yes– Reading Yes– Writing Yes2501 Reader Yes Yes1627 Plotter Yes1134 Paper Tape Reader Yes1055 Paper Tape Punch YesFigure 90.8. Programming systems permitting overlapped operationso<strong>the</strong>r FORTRAN codingREAD (6'NR) DATASuppose it takes 700 milliseconds to move <strong>the</strong>disk arm to record NR from where it happens to benow. Suppose also, that <strong>the</strong> "o<strong>the</strong>r FORTRANcoding" shown takes 300 milliseconds. Without<strong>the</strong> overlapping gained by <strong>the</strong> FIND statement, <strong>the</strong>total time would be 700+300 or 1000 milliseconds.With <strong>the</strong> FIND statement, <strong>the</strong> total time would dropto 700 milliseconds, since <strong>the</strong> 300 millisecondsis "buried" within <strong>the</strong> 700 milliseconds seek time.Figure 90. 9 illustrates this graphically. Thisnight amount to only 20 or 30 minutes a day,but it is so easy to implement that it is certainlyworth <strong>the</strong> trouble of punching a few FIND cards.If you are using LOCALs, and/or <strong>the</strong> CLB hasincluded SOCALs, <strong>the</strong> FIND statement will not beexecuted. The Monitor will take care of this automatically.The reason is obvious: if you FIND a


Section Subsections Page90 20 I 30 03record <strong>the</strong>n call a LOCAL or SOCAL subprogram,<strong>the</strong> entire purpose of <strong>the</strong> FIND will have beennegated, and you will wind up increasing disk seektime ra<strong>the</strong>r than decreasing it. If you know youwill have LOCALs or SOCALs, you may want toremove all <strong>the</strong> FIND statements from your program,eliminating <strong>the</strong> SDFND subroutine, which is approximately80 words long.Without <strong>the</strong> FIND statement:READO<strong>the</strong>rCodingComputeLocationof RecordArm MovementReadRecordContinue300 msec el. 41 X 11.1■• 700 msecTotal time = 700 + 300 + X + YX is small compared with <strong>the</strong> o<strong>the</strong>rs.With <strong>the</strong> FIND statement:READFIND700 msecCompute Arm Movement ComputeLocationLocationof RecordO<strong>the</strong>r Codingof RecordReadRecordXI300 msecXTotal time = 700 + X + X + YX is small compared with <strong>the</strong> o<strong>the</strong>rs.Figure 90.9.


Section SubsectionsPage90 30 01 01THE ROLE OF THE <strong>1130</strong> HARDWAREGeneralThe last component in <strong>the</strong> user/hardware/softwaretrio is <strong>the</strong> <strong>1130</strong> hardware itself. Because this sectionis concerned primarily with increasing performance,<strong>the</strong> discussion will concentrate on <strong>the</strong> waysyou can improve throughput by <strong>the</strong> use of alternativehardware configurations.The first step is <strong>the</strong> separation of run time intofour basic elements:1. Productive time that cannot be improved byhardware changes2. Productive time that can be improved byhardware changes3. Nonproductive time that cannot be improvedby hardware changes4. Nonproductive time that can be improved byhardware changesThe third is included only for completeness; using<strong>the</strong> definitions, <strong>the</strong>re are no meaningful items to discussin this area.Productive time is <strong>the</strong> time that <strong>the</strong> <strong>1130</strong> occupiesitself doing something you want it to do. Nonproductivetime applies to activities that maybe necessary,but that are unproductive from your point of view.Some examples of <strong>the</strong> latter are disk seeks, readingLOCAL and SOCAL overlays, etc.


Section Subsections Page90 30 10 01Productive Time That Cannot Be Improved by HardwareChangesSome of <strong>the</strong> <strong>1130</strong> system components are availablein only one model; <strong>the</strong>refore, it is impossible to increaseperformance by changing <strong>the</strong>m. The typewriter,<strong>the</strong> console keyboard, <strong>the</strong> paper tape reader,and <strong>the</strong> paper tape punch are four such devices. Inaddition, <strong>the</strong> reading/writing speed of <strong>the</strong> disk isconstant, which means that <strong>the</strong> reading/writing ofyour data records cannot be speeded up throughhardware changes. However, because more diskdrives may be added, certain o<strong>the</strong>r times relativeto <strong>the</strong> disk (seeks, reading of overlays) may be reduced;<strong>the</strong>y are <strong>the</strong>refore covered in a later section.


Section SubsectionsPage90 30 20 01Productive Time That Can Be Improved by HardwareChangesThere are five elements of productive time thatcan be improved by changing <strong>the</strong> model or speed ofan <strong>1130</strong> component. That is, you can:• Reduce plotting time by switching to a fasterplotter• Reduce card reading time by obtaining afaster card reader• Reduce card punching time by obtaining afaster card punch• Reduce printing time by obtaining a fasterprinter• Reduce computing time by changing to afaster CPUPlottingThis is a somewhat special case; two plottingspeeds are available, but <strong>the</strong>y are tied to carriagesizes. The 1627 Model 1, with an 11-inch carriage,is twice as fast as <strong>the</strong> Model 2, which has a 29 1/2-inch carriage. However, most users have chosenone model or <strong>the</strong> o<strong>the</strong>r on <strong>the</strong> basis of carriage size,ra<strong>the</strong>r than speed, and are not in a position tochange models just to increase speeds.Card ReadingThere are four different card readers that may beattached to <strong>the</strong> <strong>1130</strong> system, each with a differentcard-read time:Reader Milliseconds per card (approx.)1442 Model 6 2001442 Model 7 1502501 Model Al 1002501 Model A2 60If your programs use standard FORTRAN, noneof <strong>the</strong> specified card read time will be overlappedwith any o<strong>the</strong>r activity.If you have a 1442-6 on your <strong>1130</strong>, for example,<strong>the</strong> time to read ten cards will be 10 X 200 or 2000milliseconds. This is in addition to whatever manipulationmust be performed on <strong>the</strong> data on thosecards. In a FORTRAN program, <strong>the</strong> system must,at <strong>the</strong> very least, convert <strong>the</strong> Hollerith card codesto EBCDIC, break that down according to <strong>the</strong> specifiedFORMAT statement, and, finally, place <strong>the</strong>resulting data in <strong>the</strong> proper core location.The rated speed of <strong>the</strong> 1442-6 is 300 cards perminute, but this assumes that <strong>the</strong> <strong>1130</strong> reads a cardevery 200 milliseconds. It is true that <strong>the</strong> readingof each card will take 200 milliseconds, but <strong>the</strong>system may not read a card every 200 milliseconds.If <strong>the</strong> intervening processing takes 100 milliseconds,it will read one card every 300 milliseconds,yielding a speed of 200 cards per minute.You see, <strong>the</strong>n, that rated I/O device speeds aredifficult to use when evaluating potential systemimprovements. You must compare alternativeson <strong>the</strong> basis of <strong>the</strong> time per card that <strong>the</strong> CPU isprevented from doing something else.Suppose you have a 1442-6, and you time one ofyour representative jobs. It reads 2100 cards, andruns for ten minutes (600,000 milliseconds). Youknow, from <strong>the</strong> timing table, that <strong>the</strong> <strong>1130</strong> musthave spent 2100 X 200 or 420,000 millisecondsreading cards, and 600,000-420,000 or 180,000milliseconds doing something else.If you changed to a 1442-7, <strong>the</strong> card read timewould drop to 2100 X 150 or 315, 000 milliseconds,<strong>the</strong> "something else" would remain at 180,000milliseconds, and <strong>the</strong> total run time would dropfrom 600,000 milliseconds to 495,000 milliseconds,or from ten minutes to <strong>about</strong> 8 1/4 minutes.


Section Subsections Page90 30 20 02The 2501, because of its clutch arrangement,requires a special analysis. The 2501-Al, <strong>the</strong> 600-card-per-minute reader, will read at fixed speeds of600 cpm (100 millisec)300 cpm (200 millisec)200 cpm (300 millisec)150 cpm (400 millisec)120 cpm (500 millisec)100 cpm (600 millisec)etc.and <strong>the</strong> 2501-A2, <strong>the</strong> 1000-card-per-minute reader,will read at fixed speeds of1000 cpm (60 millisec)500 cpm (120 millisec)333 cpm (180 millisec)250 cpm (240 millisec)200 cpm (300 millisec)166 cpm (360 millisec)etc.To calculate <strong>the</strong> expected improvement in timingdue to a 2501-Al, we must, as before, substitute100 milliseconds for <strong>the</strong> 200 milliseconds (1442-6),to get 2100 x 100 or 210,000 milliseconds readtime, add <strong>the</strong> 180,000 milliseconds o<strong>the</strong>r time,obtaining 390,000 milliseconds or 15 minutes.Dividing this into <strong>the</strong> number of cards read (3000),we find that this yields a rate of 323 cards perminute.However, <strong>the</strong> clutch arrangement of <strong>the</strong> 2501-Alwill not allow it to run at 323 cards per minute, so<strong>the</strong> next lower speed (300 cpm) must be assumed.2100 cards at 300 cpm yields a total time of sevenminutes.A similar analysis for <strong>the</strong> 2501-A2 gives a<strong>the</strong>oretical speed of 412 cpm, but, choosing <strong>the</strong> nextlower speed, 333 cpm, <strong>the</strong> total run time is calculatedas 6.6 minutes.-8Card PunchingThree different card punches are available for use on<strong>the</strong> <strong>1130</strong> system; all three operate in <strong>the</strong> same mode,punching one column at a time.Card Punch Milliseconds per Card ColumnPunched or Spaced1442 Model 6 12.5 plus 12.5 per column1442 Model 7 6.5 plus 6.5 per column1442 Model 5 6.5 plus 6.5 per columnModels 6 and 7 both read and punch; Model 5 onlypunches.The overall speed is determined by <strong>the</strong> lastcolumn punched, ra<strong>the</strong>r than <strong>the</strong> number of columnspunched. If you skip <strong>the</strong> first 20 columns and punchinto <strong>the</strong> 21st, you have punched or spaced 21 columnsand <strong>the</strong> time for that number will apply. Figure90.10 gives <strong>the</strong> punching time for <strong>the</strong> three models,as <strong>the</strong>y vary with <strong>the</strong> last column punched.To continue <strong>the</strong> previous example, suppose thatof <strong>the</strong> 2100 cards read, <strong>the</strong> program punched intoF31000900800700600500400300200100Last Column PunchedFigure 90.10.


Section Subsections Page90 30 I 20 03<strong>the</strong> first 20 columns of 500 of <strong>the</strong>m. For <strong>the</strong> 1442-6,<strong>the</strong> breakdown now becomes:OperationMillisecondsRead 2100 cards 420,000Punch 20 columns, 131,250500 cardsSomething else 48,750Total 600,000With <strong>the</strong> 1442-7, it becomes:Read 2100 cards 210,000Punch 20 col. 500 cards 68,250Something else 48,750Total 327,000or 5.5 minutesNote that <strong>the</strong> times shown apply only to <strong>the</strong> timeactually spent punching. If <strong>the</strong> card being punchedwas previously read, <strong>the</strong> punch time may be simplyadded to <strong>the</strong> total. If <strong>the</strong> card being punched wasnot previously read, you must add 200 or 150milliseconds of read time per card to allow for <strong>the</strong>/feeding of cards past <strong>the</strong> read station, eventhough <strong>the</strong>y were not read. This will always be<strong>the</strong> case with <strong>the</strong> 1442-5, which cannot read cards.PrintingThree different line printers may be attached to <strong>the</strong><strong>1130</strong> system, each having different print and skiptimes:Printer Approximate Time in MillisecondsPrint 1 Line Skip 1 Line1132 750 161403 Model 6 175 (3.6-ormicrosecondCPU)5Model 7 100 (2.2-microsecondCPU)To illustrate <strong>the</strong> improvement possible in thisarea, let us take an example similar to <strong>the</strong> last one.Suppose you have a program that is essentially a cardlisting job. In ten minutes it reads 600 cards,prints 600 lines, and skips 100 lines. This can bebroken down as follows:Operation MillisecondsRead card (1442-6) 120,000Print (1132) 600 @ 750 450,000Skip 100 @ 16 1,600"Everything else" 28,400Total 600,000 (10minutes)If you replace <strong>the</strong> 1132 with a 1403-6, your printand skip times drop:Print (600 @ 175) 105,000Skip 100 @ 5 500Added to <strong>the</strong> card read time and <strong>the</strong> "everything else"time, which remains <strong>the</strong> same, this results in a totaltime of 253,900 milliseconds, or <strong>about</strong> 4 1/4 minutes,as opposed to 10 minutes.Note that despite this dramatic increase inthroughput, <strong>the</strong> 1403 is printing at only 141 (600/4.25)lines per minute, far below its rated speed of 340.The 1132 was also below its rated speed of 80 1pm,since it printed 600 lines in ten minutes, or 60 1pm.This shows again that rated speeds of cards perminute, lines per minute, etc, cannot be used wheninvestigating alternate approaches to improvingthroughput. The only usable figure is <strong>the</strong> length oftime <strong>the</strong> CPU is tied up-- that is, prevented fromdoing something else.This example has assumed a 3.6-microsecondCPU; if <strong>the</strong> <strong>1130</strong> were a Model C (2.2 microseconds),a 1403 time of 100 milliseconds would be used. Theoverall time would drop to 3.5 minutes, for a speedof 172 1pm.In all cases of 1403 timing investigations, youmust calculate <strong>the</strong> resulting lines per minute to makesure that it does not exceed <strong>the</strong> rated speed of <strong>the</strong>


Section Subsections Page90 30 20 04printer. For example, an analysis that indicates a1403 speed of 450 1pm must be modified if <strong>the</strong> printerconsidered is a 1403-6, which cannot exceed 340 1pm.The 750-millisecond time for <strong>the</strong> 1132 is based onstandard FORTRAN, which is not overlapped.The 176 (or 100) millisecond time for <strong>the</strong> 1403consists mainly of <strong>the</strong> conversion from EBCDIC to1403 code - <strong>the</strong> 1403 itself is buffered, and <strong>the</strong> timerequired to fill <strong>the</strong> buffer is quite small. The 176milliseconds drops to 100 on a 2.2 microsecondCPU because of <strong>the</strong> faster CPU. See <strong>the</strong> next subsection.<strong>Computing</strong>The 1131 Central <strong>Processing</strong> Unit is available withone of two basic cycle times: 3.6 microseconds(Models 1 and 2) or 2.2 microseconds (Model 3). Inmore basic terms, <strong>the</strong> Model 3 will compute in .61<strong>the</strong> time of <strong>the</strong> Model 1 or 2.However, in this area it is not quite as easy tocalculate <strong>the</strong> improvement to be expected from <strong>the</strong>faster CPU. The problem is that you often don'tknow how much time you were computing before(with a 3.6-microsecond CPU), in which case youcannot possibly tell what effect <strong>the</strong> 2.2-microsecondCPU will have.Let us review <strong>the</strong> previous example: 1442-6 and1132; ten minutes run time, read 600 cards, print600 lines, skip 100 lines. The times in milliseconds,were:Card read 120,000Print and skip 451,600"Everything else" 28,400Total 600,000 (10 minutes)The only way you determined <strong>the</strong> 28,400 millisecondsof "everything else" was by subtracting one knownvalue (I/O times) from ano<strong>the</strong>r known value (totalrun time).If you know that all 28,400 milliseconds werespent in computing, you can calculate that <strong>the</strong> 2.2-microsecond CPU will do <strong>the</strong> same amount of workin 61% of that time, or 17,300 milliseconds, areduction of 1,100 milliseconds or 1.8 minutes.If those 28,400 milliseconds had included any diskoperations, you could not have made <strong>the</strong> above estimate,since you would have had no way to determine<strong>the</strong> split between disk activity and computing. Asidefrom a good estimate, which would be quite anachievement, <strong>the</strong> only way to evaluate <strong>the</strong> effect ofa new CPU in this case would be to take your programto such an <strong>1130</strong>, run it, and time it.


Section SubsectionsPage90 30 30 01Nonproductive Time that Can Be Reduced by HardwareChangesBy definition, three items fall into this category:1. DISK seek, to get from one data record to<strong>the</strong> next2. DISK seek, to get from data area to overlayarea, and vice versa3. DISK read to read overlay<strong>All</strong> three items are necessary, but unproductive asfar as you are concerned. Note that item 1 is requiredwhenever you are using data files, item 3whenever you are using overlays (SOCALs, LOCALs,and/or LINKs), and item 2 whenever you have bothoverlays and data files.The time requirements of all three are difficultto determine, so an exact analysis will not beattempted, as with <strong>the</strong> card readers, punches, etc.There are two hardware changes that will reduce<strong>the</strong>se times:1. More core storage, which will probablyeliminate overlays, and <strong>the</strong>refore items 2 and 3.2. More disk drives, which will allow a redistributionof files and overlays, and reduce items1 and 2.Additional Core StorageAsside from programmer convenience, <strong>the</strong> mainadvantage in adding more core storage is its probableeffect on performance, or run time. If you canexecute your programs without any overlays, <strong>the</strong>ycan be expected to run at some "top" speed,governed mainly by <strong>the</strong> amount of productive workyou want done.Additional Disk DrivesUnlike core storage, which will probably be augmentedto improve performance, additional diskdrives are likely to be considered primarily toincrease capability -- <strong>the</strong> capability to copy disks,<strong>the</strong> additional storage gained, etc. In many cases,however, <strong>the</strong> move from a single to a multiple disk<strong>1130</strong> system may be accompanied by a gain inthroughput or performance. This will be true onlyif you plan your system so that <strong>the</strong> LOCAL/SOCALoverlays are on a cartridge o<strong>the</strong>r than <strong>the</strong> one onwhich <strong>the</strong> data files reside.The location (cartridge ID number) of <strong>the</strong> datafiles is specified on <strong>the</strong> *FILES card. The LOCAL/SOCAL overlays are ei<strong>the</strong>r (1) in Working Storage,if <strong>the</strong> program is executed immediately aftercompilation, or (2) with <strong>the</strong> mainline program (inUA or FX), if <strong>the</strong> program has been stored in coreimage format. If <strong>the</strong>y are in Working Storage, <strong>the</strong>Monitor should be informed, with <strong>the</strong> JOB card, touse <strong>the</strong> Working Storage on a disk cartridge o<strong>the</strong>rthan <strong>the</strong> data file cartridge. If <strong>the</strong>y are with <strong>the</strong>mainline program (in UA or FX), you should makesure <strong>the</strong> core load is stored on a cartridge o<strong>the</strong>rthan <strong>the</strong> data file cartridge.


Section Subsections Page90 40 01 01SOME CASE STUDIES OF PERFORMANCEIMPROVEMENTSGeneralThis section is designed to present a general guideto <strong>the</strong> principles involved in improving performance.It also shows many of <strong>the</strong> techniques used to fit alarge problem into core, stressing how to do sowithout adversely affecting performance.In order to best illustrate <strong>the</strong>se principles, threecase studies, or sample problems, are shown in detail:• Case I -- a commercial job, typical of apayroll-type application• Case II -- a commercial job, typical of anaccounting type application• Case III -- a scientific or technical job, involvingmostly computation, with little or no input/output<strong>All</strong> examples are based on an 8K <strong>1130</strong> system,but <strong>the</strong> principles are <strong>the</strong> same for any size machine.


Section SubsectionsPage90 40 10 0 1Case IThe first example uses a typical payroll-typeapplication to show one approach to improving performance.It may not be <strong>the</strong> best approach, but itresults in a set of programs that produce <strong>the</strong>desired result, fit in core storage, and operate ata near-maximum throughput rate.A rough block diagram of this job, markedto show what action has been taken, is includedwith each step.


Pead detailSection Subsections Page90 40 10 02Step 1The first time we are able to try to execute <strong>the</strong>program PAYRO we are informed that it does notfit in core storage, needing 388 (hexadecimal) or904 words.// XE0 PAYRO L 1*FILES(1,FILEN)FILES ALLOCATION1 01A3 0001 7061 FILEN22 0000 0001 7061 01A7STORAGE ALLOCATIONR 40 07AD (HEX) ADDITIONAL CURE REQuIRDR 43 01FC (HEX) ARITH/FUNC SOCAL wD CNTR 44 06E8 (HEX) FI/O• I/O SOCAL ND CNTR 45 02A2 (HEX) DISK FI/0 SOCAL NO CNTR 40 0388 (HEX) ADDITIONAL CORE REWIRDR 18 PAYRO LOADING HAS BEEN TERMINATEDconstants,zero tot.geeing.End of StunPrint totals.ExitcardTyp E 1103Ft. and readmaster dataon diskCompuiegross payCompute333300.1deductionsUpdate dirkSkip to new0.0 end prin<strong>the</strong>adings


Section SubsectionsPage90 40 10 03Step 2In order to test <strong>the</strong> program, we make all five subroutinesLOCAL and find that it now fits in core,but requires SOCAL level 2. Running of <strong>the</strong> programis accompanied with quite a bit of disk armmovement, which slows it down considerably.The subroutines are:SUBW -- Error message (hardly ever called)SUBZ -- New page headings (once every 25employees)SUBY1 -- FICA routine (almost always called)SUBY2 -- Special deductions (one out of everysix employees).SUBY3 Savings Bond deduction (one out ofevery three employees)•// XEO PAYRO L 2•FILES(1,FILEN)•LOCALPAYRUsSUBW.SUBZsSUBY1sSUBY2sSUBY3111 FILES ALLOCATION1 01A3 0001 7061 FILEN•22 0000 0001 7061 01A7STORAGE ALLOCATIONR 40 03E3 (HEX) ADDITIONAL CORE REOUIR0R 43 01FC (HEX) ARITH/FUNC SOCAL ND CNTID R 44 06E8 (HEX) FI/Os I/O SOCAL WD CNTR 45 02A2 (HEX) DISK FI/U SOCAL WD CNT• R 41 00A4 (HEX) WDS UNUSED BY CORE LOADCALL TRANSFER VECTORDATSW 1902 SOCAL 1•SLIBY3 1701 LOCAL5UBY2 17C9 LOCALSUBY1 17C9 LOCALSUBZ 1701 LOCAL• SUBW 1765 LOCALLIEF TRANSFER VECTOR••••••••••HOLTB 1E8B SOCAL 2EADDX 1883 SOCAL 1XDD 1988 SOCAL 1FARC 1966 SOCAL 1XMD 1924 SOCAL 1ELDX 1528NORM 1594HOLEZ 1E52 SOCAL 2EBCTB 1E4F SOCAL 2GET AD 1E06 SOCAL 2IFIX 1568PAUSE 18EC SOCAL 1ESBR 1808 SOCAL 1EADD 187D SOCAL 1EDIV 1824 SOCAL 1EMPY 17F6 SOCAL 1EDVR 170E SOCAL 1FLOAT 155ESUBSC 1540ESTO 1516ELD 152CPRNTZ 1048 SOCAL 2CARDZ 1C9E SOCAL 2WRTYZ 1062 SOCAL 2SFIO 1809 SOCAL 2SDFIO 1885 SOCAL 3SYSTEM SUBROUTINESILSO4 00C4ILSO2 0083ILSO1 1EC2ILSOO 1E=FLIPR 15DC1487 (HEX) IS THE EXECUTION ADDR(consumalona toursGeed art,Eno..non.ubFind nod rood0 master dataon Wok0Cant..most ParComputemandatorydoductiortsCompute `ITO.not pay. N.Utortno 0*mordAnnum..die MobPrint detailEnd of GunPrim totalnEsitLOCAL SC/BWTYPO Erre.LOCAL SUZIY /,SUBY2,CompotenotionaldoductiortsSCAliy3LOCAL 5 CASZEkto to mwloW.Mtor.NnWtm


Section Subsections Page90 40 10 04Step 3Studying <strong>the</strong> flowchart, we see that this programcould be split into three smaller programs, orLINKS:PGMAB, which is made up of blocks A and BPGMX, which was block XMAIN, which is <strong>the</strong> main programExecuting with no LOCALs, we find that <strong>the</strong> programMAIN requires SOCAL level 2 to fit into core, andthat it runs no faster than before.• d/ XEQ MAIN L 1*FILES(1#FILEN)• FILES ALLOCATION1 01A3 0001 7061 FILEN22 U000 0001 7U61 U1A7• STORAGE ALLOCATIONR 40 03C5 (HEX) ADDITIONAL CURE REQUIROR 43 01FC (HEX) ARITH/FUNC SUCAL wD CNTR 44 06E8 (HEX) FI/O, I/O .1UCAL WD CNTID R 45 02A2 (HEX) DISK Fl/U —(OCAL WO CNTR 41 005E (HEX) WDS UNUSED BY CORE LOADCALL TRANSFER VECTOR41 SUBW 1753SUBZ 1627• SUBY1 155FSUBY2 13CFSUBY3 123FDATSW 1946 SOCAL 1ID LIBF TRANSFER VECTORHJLTB 1EFF SUCAL 2EADDX 18C7 SOCAL 141 XDU 19CC SOCAL 1FARC 19AA SOCAL 1• XMD 1968 SOCAL 1ELDX 1140NORM 1788• HOLEZ 1E96 SOCAL 2EBCT8 1E93 SOCAL 2GETAD 1E4A SUCAL 2IFIX 175CPAUSE 1930 SOCAL 1ES13R 191C SOCAL 1• EAUD 18C1 SOCAL 1EUIV 1868 SOCAL 1EMPY 183A SUCAL 1EDVR 1822 SOCAL 1FLOAT 1176SUBSC 1158ESTO 112EELU 1144PRNTZ 1D8C SOCAL 2CAROL 10E2 SOCAL 2WRTYZ 1CA6 SOCAL 2SFIO 191D SOCAL 2• SOFIU 18C9 SOCAL 3SYSTEM SUBROUTINESILSO4 00C4ILSO2 008341 ILS01 1F06ILSOO 1F21• FLIPR 178210CF (HEX) IS THE EXECUTION ADORInitialiseeanstents.sere totalsRead dm.mka m,etc.Rud devilcardFind end readmuter dateon diskComradewoos noComputemandatorydeductionsComm. YTD.era era.Update diskfleesAccumulate<strong>the</strong> torahZ :tderaiMAKE 7wEsEINTO tiMesPooItPGMXEnd or RunPrint touts.ExitTY. ErrorComputeMioneldeductions%foram..mramraWmharairra


Section SubsectionsPage90 40 10 05Step 4Making all five subroutines LOCAL again, we findthis is just enough to eliminate SOCALs, but doesnot speed up <strong>the</strong> program, since SUBY1, <strong>the</strong>FICA routine, is called for almost every employeeand causes <strong>the</strong> disk arm to be moved from <strong>the</strong> datafile area back to <strong>the</strong> overlay area, and vice versa.// XEO MAIN L 2*LOCALMAIN,SULIW,5UBZ*SUBY1,SUBY2,5UBY3•FILES(1,FILEN)FILES ALLOCATION1 01A3 0001 7061 FILEN• 22 0000 0001 7061 01A7STORAGE ALLOCATIONR 41 0004 (HEX) VdDS UNUSED BY CORE LOAD• CALL TRANSFER VECTORDATSW 167ESUBY3 1E9F LOCALSUBY2 1F67 LOCALSUBY1 1F67 LOCALSUEZ 1E9F LOCAL• SUBW 1F03 LOCALLIEF TRANSFER VECTORHOLTB 1059EAUDX 1AFFADD 1CDCFARC 1CBA• XMD 1C78ELDX 1Al2NORM 1C4EHOLEL 1C18• EBCT6 1C15GETAD 16CC• IFIX 16A0PAUSE 1868LSBR 1854• EADO 1AF9EDIV 1AA0EMPY 1A72EDVR 1A5AFLOAT 1A48SUBSC 1A2A• ESTO 1A00ELD 1A16PRNTZ 193E• CARDZ 1894WRTYZ 1858SFIO 14CFSDFIO 1109ID SYSTEM SUBROUTINESILSO4 0004ILSO2 0083• ILSO1 1F74ILSOO 1F8F• FLIPR 107A10CF (HEX) IS THE EXECUTION ADDR■A momentszero totalsRead ate.melt no..mc.Sad andnirdFind cal reedmama Adson didoComputefatal MIXCompummandatorydeductionsComport. nCknet a, etcMame diskrecordAccumulate101315THESE


Section Subsections Page90 40 10 06Step 5Since SUBY1 as a LOCAL is slowing down <strong>the</strong> program,we must try to keep it in core storage at alltimes. However, <strong>the</strong> previous load map showed that<strong>the</strong>re are only four words unused by <strong>the</strong> package,and SUBY1 is 400 words long. If we could free up396 words, SUBY1 could be taken out of <strong>the</strong> LOCALcategory, and <strong>the</strong> program would be speeded up.(Realize, of course, that SUBY1 could easily bemade non-LOCAL, but that SOCALs would <strong>the</strong>n berequired. The secret is to avoid both SOCALs anda LOCAL SUBY1).Note also that SOCALs would cause <strong>the</strong> programto run even slower. Since <strong>the</strong> sequence of <strong>the</strong>program is a repetition ofa. I/Ob. DISKc. ARITH, including SUBY1d. DISKe. ARITHf. I/0SOCAL level 1 will cause <strong>the</strong> disk arm to be movedbetween <strong>the</strong> data area and <strong>the</strong> overlay area betweenstepsa and bb and cc and dd and ewhile SUBY1 as a LOCAL will require such a movementonly between stepsb and cc and dAfter considerable study, we decide that <strong>the</strong>re isvery little that can be done to fur<strong>the</strong>r improve <strong>the</strong>performance of this program, unless, of course, wecan reduce its size by 396-100 or 296 words (Flipperwould no longer be required).Because SUBY1 handles <strong>the</strong> FICA calculation, itwill be called less and less as <strong>the</strong> year progresses,since more employees will attain a "paid up" status.(This won't be true, however, if your test for "paidup"is done inside <strong>the</strong> subroutine! It should be madein <strong>the</strong> mainline program, o<strong>the</strong>rwise SUBY1 will becalled every time, whe<strong>the</strong>r <strong>the</strong> employee gets a deductionor not.)Discussion of Case IHere you have seen one way to fit this "typical"program into core, at little or no sacrifice inthroughput. There maybe o<strong>the</strong>r ways to do <strong>the</strong> samething; <strong>the</strong>re may be better ways.Basically, common sense is used -- a step-bystepsegmentation of <strong>the</strong> program, with each stephaving a greater effect on performance:1. Make LOCALs out of those subroutines thatare not always called.2. Break <strong>the</strong> program into LINKs.


Section SubsectionsPage90 40 20 01Case IIThis program is of a basically different organizationthan Case I. It is typical of a job in which <strong>the</strong> inputconsists of a master card followed by a variablenumber of detail cards, with <strong>the</strong> sequence repeatedmany times. Some good examples of this type ofjob are billing, accounting, cost systems, etc.Assume that this application is some type of projectcost system, with a master card for each project,followed by a series of detail or change cards pertainingto that project. These detail cards may bedue to labor or materials charges against <strong>the</strong>project or, in a few cases, an accounting departmentadjustment.


Section Subsections Page90 40 20 02Step 1After several tries, <strong>the</strong> program COST achieves asuccessful compilation, only to be met by <strong>the</strong> R40and R18 messages shown. Even after SOCAL level2 has been attempted, this program package exceedscore storage by 43E or 1086 words.ID // )(EC) COST L 1*FILES(1.FILEN)• FILES ALLOCATION1 01A3 0001 7061 FILEN22 0000 0001 7061 01A7STORAGE ALLOCATION41 R 40 084C (HEX) ADDITIONAL CORE REQUIRDR 43 01E6 (HEX) ARITH/FUNC SOCAL WO CNTR 44 06E8 (HEX) F I/0, I/O SOCAL WO CNT411 R 45 02A2 (HEX) DISK FI/0 SOCAL WD CNTR 40 043E (HEX) ADDITIONAL CURE REQUIRDR 18 COST LOADING HAS BEEN TERMINATED


Section SubsectionsPage90 40 20 03A. InitializeB. Read acardbadlastX. Type Errorcard C. Check <strong>the</strong> cardY. Print grandmessage card code totalsmaster card;one in 8.labor card;4 out of 8.material card;3 out of 8.D. Update diskfor lastmasterL. GET data fromlabor cardjust readP. GET data frommaterial cardjust readT. GET data fromadjustmentcard just readZ. Skip to newpage, prin<strong>the</strong>adingsM. Calculations G. CalculationsU. CalculationsE. Print totalsfor lastmasterN. Add to jobtotalsR. Add to jobtotalsV. Add to jobtotalsF. Clear totalsfor lastmaster0. Print detaillineS. Print detaillineW. Print detaillineG. GET data frommaster cardjust readH. Read diskrecord fornew masterGo backto B


Section Subsections Page90 40 20 04Step 2Observing <strong>the</strong> flowchart, we see that we are fortunatein having several subroutines that are seldom,if ever, called:• BADCD, <strong>the</strong> illegal card message• NEWPG, <strong>the</strong> skip to new page routine• FINAL, <strong>the</strong> final total routine• T, U, V, W, four routines involved in <strong>the</strong>processing of an accounting adjustment card (anunusual occurrence)These seven subroutines are ideal LOCALs, and,executing COST in this mode, we get <strong>the</strong> load mapshown. The program (at SOCAL level 2) runs, butquite slowly. Checking <strong>the</strong> flowchart, we see wehave two blocks involving disk READs/WRITEs, Dand H, bracketing blocks E, F, and G, which use botharithmetic and non-disk I/O functions. Obviously,this will cause continuous disk arm movement between<strong>the</strong> disk data file area and <strong>the</strong> overlay area.The only way we can reduce this time-consumingfunction is to eliminate <strong>the</strong> need for overlays between<strong>the</strong> disk READ and WRITE.41 // XEO COST L 2*FILES(1,FILEN)*LOCALCOST,FINALsNEWPG,BADCD,ToUtV,W41 FILES ALLOCATION1 01A3 0001 7061 FILEN22 0000 0001 7061 01041 STORAGE ALLOCATIONR 40 02FE (HEX) ADDITIONAL CURE REQUIRUR 43 01E6 (HEX) ARITH/FUNC SUCAL WD CNT41 K 44 06E8 (HEX) F1/0, I/0 SOCAL WU CNTK 46 ULAL tHtAl UISK FI/U SUCAL WU CNTit 41 U114 thltAl wUS UNUStO BY CURt LUAU41 CALL TRANSFER VECTOR141D135541 E 12F1128DDATSW 181A SOCAL 141 W 162F LOCAL3 15CB LOCAL• I6F7 LOCAL4, 15CB LOCALBADCD 1567 LOCALNEWPG 162F LOCAL41 FINAL 1693 LOCALLIRE TRANSFER VECTOR41ID41414,HOLT8 1DE9 SOCAL 2EADDX 1781 SOCAL 1XDD 18A0 SOCAL 1FARC 187E SOCAL 1XMD 183C SOCAL 1ELDX 1006NORM 1452HOLEZ 1080 SOCAL 2EBCTB 1070 SOCAL 2GETAD 1034 SOCAL 2IFIX 1426ESBR 1806 SOCAL 1EADD 17AB SOCAL 1EDIV 1752 SOCAL 1EMPY 1724 SOCAL 1• EDVR 170C SOCAL 1FLOAT 10FCSUBSC LODE4041ESTO 1064ELD 1OCAPRNTZ 1C76 SOCAL 2CARDZ 1BCC SOCAL 2WRTYZ 1890 SOCAL 2SF10 1807 SOCAL 2SDFIO 1783 SOCAL 340 SYSTEM SUBROUTINESILSO4 00C4•ILSO2 0083ILSO1 IDFOILSOO lEOBFLIPR 14A6104B (HEX) IS THE EXECUTION ADDR


Section SubsectionsPage90 40 20 05A. InitializeB. Read acardLOCALsAREC/RCL.ED8A0cDFINAL.X. Type ErrormessagebadcardC. Check <strong>the</strong>card codelastCarmaster card;one in 8.labor card;4 out of 8.material card;3 out of 8.D. Update diskfor lastmasterL. GET data fromlabor cardjust readP. GET data frommaterial cardjust readM. Calculations Q. Calculations U. CalculationsE. Print totalsfor lastmasterN. Add to jobtotalsR. Add to jobtotalsV. Add to jobtotalsF. Clear totalsfor lastmaster0. Print detaillineS. Print detaillineW. Print detailline•G. GET data frommaster cardjust readH. Read diskrecord fornew master


Section Subsections Page90 40 20 06Step 3As mentioned in Step 2, we now realize that <strong>the</strong>reis no real reason for blocks E, F, and G to besandwiched between <strong>the</strong> disk READ and <strong>the</strong> diskWRITE.Rearranging <strong>the</strong> program slightly, to make <strong>the</strong>sequence Z, E, F, G, D, H, we reexecute and findthat <strong>the</strong> program runs substantially faster than before.There is still some disk arm movement, butit is not quite as frequent. Actually, as long as wehave disk data files and overlays, <strong>the</strong>re will besome disk arm movement. The goal is to reduce it,if it cannot be eliminated altoge<strong>the</strong>r.// XED COST L 2*FILES(1,FILEN)• *LUCALCOST,FINAL,NEWPGIBADCD,T.U.VI,WFILES ALLOCATION1 01A3 0001 7061 FILEN22 0000 0001 7061 01041 STORAGE ALLOCATIONR 40 02FE (HEX) ADDITIONAL CURE REOUIROR 43 01E6 (HEX) ARITH/FUNC SUCAL WD CNTID R 44 06E8 (HEX) FI/Uo I/O SOCAL WO CNTR 45 02A2 (HEX) DISK 1-1/L) SUCAL WO CNT41 01(4 (HEX) w05 UNUSED 8Y CURL LUAUCALL TRANSFER VECTORG 141D1355IDE 12F1D 128DDATSW 181A SOCAL 1•162F LOCALV 15CB LOCAL16F7 LOCAL15C13 LOCALBADCD 1567 LOCALNEWPG 162F LOCALFINAL 1693 LOCALLIBF TRANSFER VECTOR• HOLTB 1DE9 SOCAL 2EADDX 1761 SOCAL 1XDD 18A0 SOCAL 1FARC 187E SOCAL 1XMO 183C SOCAL 1ELOX 100641NORM 1452HOLEZ 1080 SOCAL 2E8CT8 1070 SOCAL 2• GETAD 1034 SOCAL 2IFIX 1426•ESBREADD180617ABSOCAL 1SOCAL 1•EDIV 1752 SOCAL 1EMPY 1724 SOCAL 1EDVRFLOAT170C1OFC SOCAL 1SUBSC LODEESTO 1084ELD IOCAPRNTZ 1C76 SOCAL 2CARDZ 18CC• WRTYZ 1890 SOCAL 2SOCAL 2SFIO 1807 SOCAL 2• SDFIO 1783 SOCAL 3SYSTEM SUBROUTINESILSO4 00C4• ILSO2 0063ILSO1 10F0ILSOO lEOBFLIPR 14A6• 1048 (HEX) IS THE EXECUTION ADDR


Section SubsectionsPage90 40 20 07A. InitializeB. Read acardLOCALsARECIRCLEDBADCDFINALX. Type ErrormessagebadcardC. Check <strong>the</strong>card codelastcar40.Y. Print grandtotalsmaster card;one in 8.labor card;4 out of 8.material card;3 out of 8.D. Update diskfor lastmasterL. GET data fromlabor cardjust readP.. GET data frommaterial cardjust readT. GET data fromadjustmentcard just readM. CalculationsQ. CalculationsU. CalculationsE. Print totalsfor lastmasterN. Add to jobtotalsR. Add to jobtotalsV. Add to jobtotalsF. Clear totalsfor lastmaster0. Print detaillineS. Print detaillineG. GET data frommaster cardjust readBL OCK DH. Read disk Pawn/record fornew master//ERE!Go backto B


Section Subsections Page90 40 20 08Step 4In step 3, we have prevented overlays from occurringbetween disk READs/WRITEs. The nextlogical step is to eliminate overlays altoge<strong>the</strong>r, or,if that is impossible, limit overlays to LOCALs orSOCALs that are infrequently called.Fur<strong>the</strong>r study of <strong>the</strong> flowchart reveals that amaster card is somewhat exceptional, even thoughevery eighth card or so is a master card. Adding D,E, F, and G to <strong>the</strong> LOCAL list, we again executeand find that <strong>the</strong> program now runs even faster thanbefore, with disk arm movement only when a mastercard is encountered. The load map shows thatSOCALs are no longer required.• // XE0 COST L 2*LOCALCOST,FI-NAL,NEWPGoBADCD,T,U,VtWoOtErFoG*FILES(1,FILEN)41 FILES ALLOCATION1 01A3 0001 7061 FILEN22 0000 U001 7U61 01A741 STORAGE ALLOCATIONR 41 000A (HEX) WDS UNUSED BY CORE LOADCALL TRANSFER VECTOR41 DATSW 1AEE1E33 LOCAL•F 1DCF LOCALE 1DCF LOCALO lEFB LOCAL1E97 LOCAL41 V 1E33 LOCALO 1F5F LOCAL1E33 LOCALI) BADCD 1DCF LOCALNEWPG 1E97 LOCALFINAL lEFB LOCAL• LIBF TRANSFER VECTORHOLTB 1CC9EADDX 1A85XDD 1C4CFARC 1C2AXMD 1BE8• ELDX 1998NORM lbBEHOLEZ 1B8841 EBCTB 1B85GETAD 1B3CIFIX IBIO41 ESBR lADAEADD 1A7FEDIV 1A2641 EMPY 19F8EDVR 19E0FLOAT 19CE41 SUBSC 19130ESTO 1986• ELD 199CPRNTZ 18C4CARDZ 181A• WRTYZ 170ESFIO 1455SDFIO 115FSYSTEM SUBROUTINES• ILSO4 00C4ILS02 U0B3• ILSO1 1F6CILSOO 1F87FLIPR IDOE104B (HEX) IS THE EXECUTION ADDR41


Section SubsectionsPage90 40 20 09A. InitializeB. Read acardLOCALsAREC/RCLEDbadlastX. Type Errorcard C. Check <strong>the</strong> caY. Print grandmessage card code totalsmaster card;one in 8.labor card;4 out of 8.material card;3 out of 8.adjustment card:UNUSUALL. GET data fromlabor cardjust readP. GET data frommaterial cardjust readT. GET data fromadjustmentcard just readM. Calculations Q. CalculationsU. CalculationsE. Print totalsfor lastmasterN. Add to jobtotalsR. Add to jobtotalsV. Add to jobtotalsF. Clear totalsfor lastmaster0. Print detail S. Print detail W. Print detailline line lineG. GET data frommaster cardjust readH. Read diskrecord fornew masterBLOCKHAS BEENMOVEDDOWNHERE


Section Subsections Page90 40 20 10Discussion of Case IIHere, as in Case I, we take a similar series ofcommon-sense steps to improve performance:1. Make <strong>the</strong> exception subroutines LOCAL.2. If that still requires SOCALs, consider separating<strong>the</strong> program into LINKs. In this case, thisapproach did not seem to be too effective.3. Since SOCALs seem unavoidable, we try torearrange our program steps to reduce <strong>the</strong>ir effect.


Section SubsectionsPage90 40 30 01Case IIIHere you have a technically oriented job, with agreat deal of iterative or trial-and-error computationand very little input/output. The program readsa deck of ten cards, computes for quite some time,<strong>the</strong>n prints a page of answers. On <strong>the</strong> basis of asimilar program, you estimate that <strong>the</strong> computationsshould take <strong>about</strong> 15 minutes.


Section Subsections Page90 40 30 02Step 1Attempting to execute this program, TECH, for <strong>the</strong>first time, we are informed that it exceeds corestorage by 2A0 or 528 words.// XEQ TECH L 1•FILES(11,FILEN)FILES ALLOCATION•1 01A3 0001 7061 FILE,(22 0000 0001 7061 01A7STORAGE ALLOCATIONAl R 40 068C (HEX) ADDITIONAL CORE REQUIRDR 43 0104 (HEX) ARITH/FUNC LOCAL WD CNTR 44 06E8 (HEX) FI/Or I/O LOCAL WO CNT11 R 45 02A2 (HEX) DISK FI/0 LOCAL WD CNTR 4U 02AU (HEX) ADDITIONAL CORE REQUIRDR lb TECH LOADING HAS BEEN TERMINATED•A. Read input cardsB. InitializeC. Compute:Call LCall MCall NI. Typo message:"STEP NUMBER n"D. Write diskmordE. ComputeCoil Lcan PCell 13Sixes of <strong>the</strong>Subroutines used:I. 100 wardsAl 300 wordsN 300 wordsP 400 wordsO 400 wordsX 100 words3 300 words2 100 wordsF. Write diskrecordG. Read diskH. CompoteUSXCOYCa02It not Completeit oomMemJ. Wrap.up K. PrintComputationsEXIT


Section SubsectionsPage90 40 30 03Step 2Noting that <strong>the</strong> program may be split into threeseparate programs or LINKs, we make some minormodifications and obtain:• INPUT, made up of <strong>the</strong> first two blocks, Aand B• ANSWR, <strong>the</strong> printing of <strong>the</strong> results, formerlyblock K• TECH1, <strong>the</strong> main programExecuting, we find that INPUT and ANSWR fit withroom to spare, but TECH1 is still too large; however,it now exceeds core by only 8E or 142 words.• // XE0 TECH1 LFILES ALLOCATION1 U000 0001 7061 01A7• 22 0001 0001 7061 01A7STORAGE ALLOCATIONR 40 047A (HEX) ADDITIONAL CURE REQUIRO• R 43 01C4 (HEX) ARITH/FUNC SOCAL WD CNTMAKE TH/SR 44 0514 (HEX) FI/O. I/O SOCAL WI) CNT A LINK,CALLED INPUTR 45 02A2 (HEX) DISK FI/0 SOCAL WD CNT• R 40 008E (HEX) ADDITIONAL CURE REOUIRDR 18 TECH1 LOADING HAS BEEN TERMINATEDA. Read Input nrdsB. InitializeG Compute:CO I.MCOINI. Type MUMPS:"STEP NUMBER n"D.WrItedIsksewnE. Compute:Call LCall P4110Sloes of <strong>the</strong>Subroutines used:L 100 wordsM 300 wordsN 300 wordsP 400 wordsCI 400 wordsX 100 wordssl 300 wordsZ 100 wordsF. Write diskrecordG. Reed diskH. CompoteCMIXCARYCellMAKE THISA K.CALLED ANSPIRIf not comp/meIf completeH J. Womm0computationsK. Print results,EXIT


Section Subsections Page90 40 30 04Step 3Reexecuting TECH1 with all eight subroutines asLOCALs (L, M, N, P, Q, X, Y, Z), we learn from<strong>the</strong> load map that this strategy not only gets <strong>the</strong>program into core storage, but eliminates <strong>the</strong> needfor SOCALs. It runs quite slowly, however, andtakes nearly 60 minutes to go to completion, comparedwith <strong>the</strong> 15 minutes we expected. The soundof <strong>the</strong> disk arm moving gives us a clue to what iswrong: we have caused an overlay to be placedbetween <strong>the</strong> disk READ/WRITE commands. In thiscase <strong>the</strong> LOCAL subroutines L, P, and Q are <strong>the</strong>culprits.// XEQ TECH1 L 2.*FILES(1,FILEN)*LOCALTECH1oLoMpN0,011X,Y,240 FILES ALLOCATION1 01A3 0001 7061 FILEN22 0000 0001 7061 01A741 STORAGE ALLOCATIONR 41 0132 (HEX) WDS UNUSED BY CORE LOADCALL TRANSFER VECTOR• Z 1040 LOCAL• 1E15 LOCALX 1040 LOCAL• Q 1E79 LOCALP 1E79 LOCALN 1E15 LOCAL• M 1E15 LOCALL 104D LOCALLIBF TRANSFER VECTOREADDX lAA3••••••••XDD 1C12FARC 1BFOXMD 1BAEELDX 1986NORM 1684EBCTB 1881GET AD 1838IFIX 1BOCESBR 1AF8EADD LA9DEDIV 1A44EMPY 1A16EDVR 19FEFLOAT 19ECSUBS( 19CEESTO 19A4ELD 19BAWRTYZ 1964SFIO 15DBSDFIO 12E5SYSTEM SUBROUTINESILSO4 00C4ILSO2 0083FLIPR 1C8C110A (HEX) IS THE EXECUTION ADDR


Section SubsectionsPage90 40 30 05A. Read input cards..ZNPUTB. InitializeC. Compute:Call L -Call M-*Call N--*I. Type message:"STEP NUMBER n"D. Write diskrecordE. Compute:Call LCall P- *Call Q-*Sizes of <strong>the</strong>Subroutines used:*L 100 words*M 300 words*N 300 wordsP 400 words400 words*XA- YZ100 words300 words100 wordsF. Write diskrecordMAKE7-14E-szLOCALG. Read diskH. ComputeCall X-,CallCall Z-*ANS WI?If not completeIf completeJ. Wrap-upcomputationsK. Print results,EXIT


Section Subsections Page90 40 30 06Step 4Leaving L, P, and Q off <strong>the</strong> LOCAL card, we againexecute TECH1, but find that it runs even moreslowly, since we now need SOCAL level 2 to fit intocore storage.At this point, you have a choice: accept <strong>the</strong>program as a one-hour job, or work on it fur<strong>the</strong>rto speed it up. Since it is used quite often, youdecide to give it one last check.// XECI TECH1 L 2*LOCALTECHItMoNtXtYt2*FILES(1,FILEN)40 FILES ALLOCATION1 01A3 0001 7061 FILEN• 22 0000 0001 7061 01A7STORAGE ALLOCATIONR 40 010C (HEX) ADDITIONAL CORE REOUIRO• R 43 01C4 (HEX) ARITH/FUNC LOCAL RD CNTR 44 0514 (HEX) FI/Ot I/O SOCAL WD CNTR 45 02A2 (HEX) DISK FI/0 LOCAL WD CNTR 41 0274 (HEX) WDS UNUSED BY CORE LUAU410 CALL TRANSFER VECTORL 1607• 15A3O 1413Z 1745 LOCAL1800 LOCALX 1745 LOCALN 1800 LOCALM 1-80D LOCAL4, LIBF TRANSFER VECTOREADDX 18C5 LOCAL 1XDD 1992 LOCAL 1FARC 1970 LOCAL 1XMD 192E LOCAL 1ELDX 124C40 NORM 163CEBCT8 1029 LOCAL 2GETAD 10EO LOCAL 2411 IFIX 1610ESBR 191A LOCAL 1EADD 188F LOCAL 140 EDIV 1866 LOCAL 1EMPY 1838 LOCAL 1EDVR 1820 LOCAL 14/ FLOAT 1282SUBSC 1264ESTO 123A40 ELD 1250WRTYZ 1CA4 LOCAL 2SFIO 1918 LOCAL 2SDFIO 18C7 LOCAL 3SYSTEM SUBROUTINESILSO4 00C4• ILSO2 0083FLIPR 168411DA (HEX) IS THE EXECUTION ADDRI


Section SubsectionsPage90 40 30 07A. Read input cards/A/PUTB. InitializeD. Write diskrecordSizes of <strong>the</strong>Subroutines used:Type message:"STEP NUMBER n"E. Compute:Call LCall PCall QL-* Mytr NPQ44 XYjE Z100 words300 words300 words400 words400 words100 words300 words100 wordsL,P2ANOARE A/OLONGER.L OCAL c9L.F. Write diskrecord* MAKETHESELOCi91._G. Read diskH. ComputeCall X.Call Y---*Call ZAAISWRIf not completeIf completeJ. Wrap-upcomputationsK. Print results,EXIT


Section Subsections Page90 40 30 08Step 5After some study, we notice that <strong>the</strong> typewrittenmessage, block I, is <strong>the</strong> only non-disk input/outputin <strong>the</strong> entire program. It looks innocent enough, butbecause of it, <strong>the</strong> entire Format Interpreter (SFIO)is required, plus <strong>the</strong> Typewriter routine (WRTYZ)and <strong>the</strong> typewriter code conversion routine (EBCTB).The total size of this package may be determinedfrom <strong>the</strong> previous R44 message -- 514 (hexadecimal)or 1300 words.Removing that message -- and <strong>the</strong> *IOCS(TYPEWRITER) Card! -- we recompile <strong>the</strong> program(calling it TECH2) and find, on execution, that itruns with no SOCALs or LOCALs.It now executes to completion in 15 minutes, aswe hoped, and <strong>the</strong> disk arm movement is reduced toan occasional "click" as it moves from one cylinderto <strong>the</strong> next in <strong>the</strong> data file area.If a typewritten message is really needed, considerusing <strong>the</strong> TYPER routine of CSP - it is quite smalland does not use SFIO.• // XE0 TECH2 L 1•FILES(1,FILEN)FILES ALLOCATION• 1 01A3 0001 7061 FILEN22 0000 0001 7061 01A7STORAGE ALLOCATION111 41 00F2 (HEX) WDS UNUSED BY CORE LUAUCALL TRANSFER VECTORN 1CA341 N 1877L 1A4BP 19E7lb 0 1857Z 16C7Y 166310 X 1537LIBF TRANSFER VECTOREADDX 1063•••••••XDD 1E68FARC 1E66XMD 1E24ELDX 1DCANORM 1DFAESBR 1DE6ESTO 1088EAU() 1050EDIV 1004EMPY ICD6EDVR 1CBEFLOAT 1CACSUBSC 14BESDFIO 12CBSYSTEM SUBROUTINESILSO4 0004ILSO2 00831107 (HEX) IS THE EXECUTION ADDR


SectionSubsectionsPage90403009Sizes of <strong>the</strong>Subroutines used:L 100 wordsM 300 wordsN 300 wordsP 400 wordsQ 400 wordsX 100 wordsY 300 wordsZ 100 wordsDROP TH/5PART OF THEPROGRAM .1USE TYPERC5P ROUT/NEIF MESSAGE /5REALLY NEEDEDF. Write diskrecordNOLOCALSREOv/RE.o!G. Read diskH. ComputeCall XCallCall ZANSWRIf not completeIf completeJ. Wrap•upcomputationsK. Print results.EXIT


Section Subsections Page90 40 30 10Discussion of Case IIIThis type program, although quite different from<strong>the</strong> previous two cases, is analyzed in much <strong>the</strong>same way:1. The main program is split into three LINKs:Input, <strong>Processing</strong>, and Output.2. Since all subprograms are called during eachpass, we try to LOCALize only those that do notappear inside <strong>the</strong> main disk READ/WRITE loop .3. With excessive overlays still required, weattack <strong>the</strong> main program and try to shorten it oreliminate some of <strong>the</strong> subroutines it uses.SOCAL's, LOCAL's and/or LIN K's are usedOverlays UsedNo. SOCAL'sOverlaysLimited toContinuously,But Not InOverlays Usedin between. LOCAL'S Seldom-Used between Disk Disk Read/Write. LINK'S Blocks Statements StatementsCase 1Temporary files,residing in WS,are close tooverlay areaUser's Area(UA)/////o<strong>the</strong>r material FilesWorking Storage(WS)OverlaysUnused01No Disk Program Program will<strong>Data</strong> will run at run at lessFiles some basic than "Top"Top Speed". Speed", butprobably notenough to benoticed.Small to Program Program will Program will Program willMedium- will run at run at less run noticeably run slowly;Size some basic than "Top below "Top many armFiles Near "Top Speed". Speed", but Speed", but movements ofWS (at <strong>the</strong>End ofprobably notenough to benot too much,since overlayWS) noticed. area is not toofar away fromdata file area.short distancewill be needed.Case 2File is in UA,but still closeto overlay areaUser's Area(UA)r//////o<strong>the</strong>r materialAverage armmovementdistanceFiles OverlayskAverage armmovementdistanceWorking Storage(WS) -01UnusedVery Program Program will Program will The combinationLarge will run at run at less run slowly, of many armDisk some basic than "Top since overlay movements, and<strong>Data</strong>Files,or Small"Top Speed".Speed", butprobably notenough to bearea is proportionatelyfur<strong>the</strong>r awaylong distances,will cause thistype programFiles Deep noticed. from data to run coninsideUA file area. siderably below"Top Speed".Worst easelCase 3File is in UA,but far removedfrom overlayareaUser's AreaWorking Storamial(UA)(INS)Fl //7./T-.o<strong>the</strong>r material Files o<strong>the</strong>r material .; Overlays Unused/ ///////:(I.. Average a rm m.,1movement distanceFigure 90, 11, Figure 90. 12,


Section SubsectionsPage90 40 40 01SummaryTo recapitulate <strong>the</strong> lessons learned in <strong>the</strong> precedingthree case studies, performance depends on fivemajor factors:1. The size of <strong>the</strong> program. When writing anyprogram, you should anticipate problems withcore storage and performance. Plan programsof reasonable scope, and code <strong>the</strong>m asa series of LINKs, if at all possible.2. The subroutines required by <strong>the</strong> program.Realize that many seemingly innocentFORTRAN statements can cause sizable subroutinesto be included in your core load.Some examples are PAUSE, STOP, FIND,division, use of <strong>the</strong> data switches, etc.FORTRAN control cards can have a similareffect -- for example, unnecessary *IOCScards, <strong>the</strong> TRACE, etc.3. The way <strong>the</strong> program is structured. Whenflowcharting and coding your programs,always keep in mind <strong>the</strong> location of <strong>the</strong> diskarm, so that you do not invite excessive armmovement between <strong>the</strong> overlay area and <strong>the</strong>data area. Place as little coding as possiblebetween disk READ/WRITE loops so that <strong>the</strong>chance of an intervening overlay is reduced.Figure 90.11 shows <strong>the</strong> various combinationsof data files and overlays.Note that <strong>the</strong> location of <strong>the</strong> overlay has agreat effect on performance. If you mustmove <strong>the</strong> disk arm from one area to <strong>the</strong> o<strong>the</strong>r,you can at least try to minimize <strong>the</strong> numberof times it is required (or reduce <strong>the</strong> distanceinvolved, by making data files compact).4. The overlay scheme used. If your programis of such magnitude that some overlaying isrequired, you should have a good feel forhow each works and how each can affect performance.Figure 90.11 shows that <strong>the</strong>re isno differentiation made between LOCALs,SOCALs, and LINKs -- <strong>the</strong>y are all overlays.Note also that <strong>the</strong> number of times an overlayis required is not as important as <strong>the</strong> diskarm movement that may be necessary to getit. For this reason you should take particularcare to avoid causing an overlay to be placedin between disk READ/WRITE statements.LOCALs, because <strong>the</strong>y are selected by<strong>the</strong> programmer, will often yield better performancethan SOCALs, which are chosen by<strong>the</strong> CLB according to predetermined rules.However, if you select LOCALs withoutregard to <strong>the</strong>ir effect on performance, it ispossible that <strong>the</strong>y can slow down executiontime even more than SOCALs.5. The size and location of <strong>the</strong> data file. Sinceyou are concerned with minimizing disk armmovement time, you should try to shorten<strong>the</strong> distance involved.The overlay area is always at <strong>the</strong> end of <strong>the</strong>UA or at <strong>the</strong> beginning of WS, whichever way youprefer to look at it. The data files may be ei<strong>the</strong>r:• In <strong>the</strong> UA or FX, if you have put <strong>the</strong>m<strong>the</strong>re with <strong>the</strong> *STOREDATA card• At <strong>the</strong> end of UA (beginning of WS), if youhave not used a *STOREDATA or *FILEScardIf you have a temporary file, in WS, your armmovement times will be minimized, since <strong>the</strong>files and <strong>the</strong> overlays are as close as <strong>the</strong>y canbe. If your file is in <strong>the</strong> UA, however, <strong>the</strong>picture may be quite different, depending onhow "deep" it lies in <strong>the</strong> UA. If a DUMPLETshows that <strong>the</strong>re is a great deal of distancebetween <strong>the</strong> file and <strong>the</strong> end of UA, you shouldconsider moving <strong>the</strong> file. Figure 90.12 showsthree possible situations.The key to gaining good program performance isknowledge:• Knowledge of <strong>the</strong> way in which <strong>the</strong> threeoverlays work• Knowledge of <strong>the</strong> basic workflow of yourprogram


Section Subsections Page01INDEXA1DEC: 70.30.00, 70.40.10 Commercial Subroutine Package: 20.30.10, 20.60.01, 30.20.00, 30.30.00,Accidents: 15.10.60, 15.20.01, 15.20.10, 15.20.30, 15.20.50, 15.20.60,70.10.20, 70.10.30, 70.20.01, 70.20.10,15.20.7070.20.20, 70.30.00, 70.40.10, 70.40.20,Accounting controls: 10.30.00, 20.01.00, 20.10.01, 20.10.10, 20.10.20,70.60.10, 80.60.00, 90.20.3025.40.40, 40.20.00COMMON: 65.10.50Accounts payable: 10.40.50Comparing fields: 70.10.30Accounts receivable: 10.40.20Components, nonstandard: 45.45.00Accumulator: 30.20.00, 45.05.30Computed GO TO: 30.20.00Accuracy: 70.10.01, 70.10.20Configurator: 45.55.00ADD: 70.10.30ConsoleAddend: 70.10.30Debugging: 30.20.00Addition area: 85.10.10Display lamps: 45.05.30Address calculation sorting: 75.30.10Keyboard: 15.10.40, 45.05.10, 70.20.10Alphabetic fields, comparing: 70.40.20Keyboard input: 25.40.10Alternating exchange sort: 75.40.00Continuous Systems Modeling Program: 20.60.01Arithmetic: 70.10.01Contour map plotting: 20.60.01Binary: 70.10.20ControlConstant subscripts: 70.50.10Field, major: 75.10.00Decimal: 70.10.20, 70.10.30Field, minor: 75.10.00Extended precision: 70.10.20Key: 75.10.00, 85.10.30Fractions: 70.10.20Panel, punched card: 10.20.00Integer: 70.10.10Tape: 10.30.00Interaction with I/O: 70.30.00Word: 75.01.00Real: 70.10.20Controls (see "accounting controls")Real fixed point: 70.10.20Conversion: 40.10.00, 40.20.00Real floating point: 70.10.20Methods: 40.30.00Standard precision: 70.10.20Copy a data file: 60.30.20Variable precision: 70.10.20Copy a data file onto ano<strong>the</strong>r disk: 60.30.30Arithmetic statement function: 25.40.40Copy an entire disk onto ano<strong>the</strong>r disk: 60.30.30Assembler: 50.01.00, 60.10.20Copy a program onto ano<strong>the</strong>r disk: 60.30.30Assembler Language: 20.60.01COPY program: 60.30.30Audit: 20.10.10Core image format (see "disk data formats", "disk core image")Control: 20.30.10Core image buffer: 55.10.00, 60.10.20Trail: 20.40.70Core load builder: 60.30.01, 65.10.30, 90.10.10, 90.20:00, 90.20.20,Auditors: 20.10.1090.30.40Augend: 70.10.30Core storageBackup: 15.10.60, 15.20.60, 25.40.40Dump: 30.20.00Batch size: 20.10.10Factors affecting: 85.10.30Batch controls: 20.10.20, 20.40.70Logical layout: 65.10.00Billing: 10.40.10Management: 50.01.00, 65.01.00Blocking factor (see "packing factor")Map: 65.10.30Bugs (see "errors")Reducing requirements: 90.20.30CALL LINK: 65.10.50Saving: 70.50.00CALL PDUMP: 30.20.00Crossfooting: 20.10.20CALL TSTOP: 30.20.00CRT (see "cathode ray tube")CALL TSTRT: 30.20.00CSP (see "Commercial Subroutine Package")Cancellation: 20.10.20Cutover: 40.30.00Card data filesOne-time: 40.30.00Backup: 15.10.60Cycle stealing: 70.20.01Changes to: 15.10.30Cylinder: 45.10.00, 80.10.00Size: 15.10.50Cylinder zero: 60.10.10, 60.20.20Card: 15.10.01DASD (see "direct access storage device")Design: 20.30.10<strong>Data</strong>: 15.10.01Formats: 40.30.00Area on disk: 80.20.00Layout: 10.20.00Live: 30.01.00Layout form: 20.30.10Packing: 25.40.10Paths: 45.20.00Switches: 15.10.40, 25.40.40, 45.05.20, 65.10.30Punches: 45.20.00Types: 15.20.10Punching: 30.01.00DATA statement: 70.10.30, 70.20.20, 70.40.20, 70.50.10, 70.50.20Punching standards: 30.01.00<strong>Data</strong> Presentation System: 20.60.01Readers: 45.20.00DCI (see "disk core image")Verification: 20.10.10Debugging (see "programs, testing of')Zone punches: 70.20.10, 70.40.10, 70.40.20Debugging, console: 30.20.00CARDZ: 65.10.30DECA1: 70.30.00, 70.40.10Cartridge identification: 55.10.00Decimal arithmetic: 70.10.20, 70.10.30Cathode ray tube: 45.35.00Decision tables: 25.10.00Check, reasonableness: 15.20.40DEFINE FILE: 80.30.10, 80.30.20, 80.40.10, 80.70.10, 85.10.30Check register: 25.40.60*DEFINE VOID ASSEMBLER: 60.20.20Check writing: 25.40.50*DEFINE VOID FORTRAN: 60.20.20COGO: 20.60.01DELETE: 60.30.20Collating sequence: 75.10.00Desk checking: 30.40.00


Section Subsections Page02Direct access storage device: 15.10.10Disk (see "disk data file", "disk cartridge", etc.)Disk arm movement time: 45.10.00Disk cartridge: 15.20.20, 45.10.00, 80.10.00Checking of ID numbers: 55.30.00Format of material: 60.30.01ID numbers: 50.01.00Number required: 50.01.00Scratch: 50.01.00Space on: 60.20.10Disk core image: 60.30.01, 80.30.20Disk core image l format (see "disk data formats")Disk data file: 15.10.01, 45.10.00Adding items: 85.10.10, 85.10.20Addition area: 85.10.10Backup: 15.10.60, 15.20.60Changes: 15.10.30Design: 20.30.10Duplicate copies: 15.20.10Hazards: 15.20.20Inquiry: 15.10.40Intentional modification: 15.20.20Jobs involving more than one: 15.10.20Organization: 85.10.01, 85.10.20Organization, choosing: 85.30.10Organization, direct: 85.10.30Organization, indexed sequential: 20.30.10, 75.20.10, 85.10.20Organization, partitioned direct: 85.10.30Organization, pure sequential: 85.10.10Organization, random: 20.30.10, 75.20.10, 85.10.30Organization, searching a pure sequential: 85.10.10Organization, sequential: 75.20.10<strong>Processing</strong>: 85.20.00<strong>Processing</strong>, random: 85.20.00<strong>Processing</strong>, sequential: 85.20.00Reorganization: 15.10.30, 85.10.10Safeguarding: 15.20.01Setup: 80.70.10Size: 15.10.50Space required: 80.40.00Disk data formats: 60.30.01, 80.30/.20Conversion: 60.30.20Disk drivesLogical: 50.01.00Physical: 50.01.00Disk file (see "disk data file")Disk management: 50.01.00Disk Monitor System: 50.01.00Version I: 70.20.10Version II: 65.10.00, 70.20.10Disk storage (see "disk data file", "disk cartridge", etc.)Disk system format: 60.30.01Disk Utility Program: 50.01.00, 60.30.01DIV: 70.10.30Dividend: 70.10.30Divisor: 70.10.30Documentation: 10.01.00, 15.20.70Current system: 20.01.00Old system: 40.20.00Standards: 25.10.00Document controls: 20.10.20Document register: 20.10.20DSF (see "disk system format")D1.3333p: 60.30.20Dump a data file and reload: 60.30.20Dumplet: 90.30.40*DUMPLET: 60.20.10DUP (see "Disk Utility Program")Duplicate files: 15.10.60EDIT: 25.40.50, 70.30.00, 70.40.10, 70.40.20Editing: 25.40.10Input cards: 85.30.10EDIT mask: 70.40.20, 70.50.10Employee numbers: 85.10.30EQUIVALENCE statement: 70.50.10Error recovery sheet: 15.20.70Errors: 15.20.20, 15.20.40, 15.20.50, 15.20.60, 15.20.70, 30.10.00,40.30.00Card punch: 30.01.00Program logic: 30.01.00Programmer clerical: 30.01.00Programmer procedural: 30.01.00Exchanging sorting: 75.30.10Execution time (see "running time, factors affecting")Executive: 40.30.00Exponentiation: 70.50.20Extended precision: 70.10.20, 80.50.00, 80.60.00Fields: 10.10.00, 80.20.00Field size: 20.30.10File maintenance: 20.30.10 (see also "disk data file, organization")File organization: 20.30.10FILES: 80.20.00, 80.30.20, 80.70.10, 90.30.30FILL: 70.10.30, 70.40.20FIND: 65.10.30, 70.50.20, 90.20.30Fixed area: 60.10.50, 60.20.20, 80.30.20, 80.70.10Fixed Location Equivalence Table: 60.10.50, 80.30.20Fixed point arithmetic: 70.10.20FLET (see "Fixed Location Equivalence Table")Flipper: 65.10.20, 65.10.30FLOAT: 70.40.10Floating boundary: 60.10.40Floating point arithmetic: 70.10.20Flowcharts: 10.10.00, 20.01.00, 25.10.00, 25.30.20, 30.40.00Format, A1: 70.40.10Format, A2: 70.40.10Formats, core storage required: 70.50.10FormsDesign: 20.20.10, 20.20.20Preprinted: 45.40.00FORTRAN: 20.60.01Compiler: 50.01.00, 60.10.20Fractions: 70.10.20FUNCTION, arithmetic statement: 25.40.40FX (see "fixed area")GET: 70.30.00, 70.40.10GO TO, computed: 30.20.00Graphic output: 45.30.00, 45.35.00Half-adjust: 25.40.40, 70.40.10Hash total: 20.10.10, 20.40.70Hazards (see "disk data file, hazards")Hexadecimal numbers: 30.20.00, 45.05.30High/low/equal compare: 70.40.20<strong>IBM</strong> System/360: 45.50.00<strong>IBM</strong> systems area: 60.10.20, 60.20.20ICOMP: 70.10.30IFIX: 70.40.10IF statement: 30.20.00ILSOO: 65.10.40ILS1: 65.10.40ILS2: 65.10.40ILS3: 65.10.40ILSO4: 65.10.40Index: 25.40.20Index to a disk data file: 85.10.01, 85.10.20Maintaining: 85.10.20Indexed sequential (see "disk data file, organization, indexed sequential")Input data, errors: 15.20.70Input stream: 55.20.00Inquiry: 15.10.40Insertion: 75.30.10Inside controls: 20.10.20Installation: 05.01.00, 05.30.00Integer arithmetic: 70.10.10Integers: 70.10.10, 80.60.00One-word: 80.50.00, 80.60.00Interchangeable chain cartridge: 20.20.10Internal sort: 75.10.00Interrupt: 70.20.01


Section Subsections Page03Inventory: 10.40.40, 85.10.20Involution: 70.50.20*IOCS card: 65.10.30, 70.20.20, 70.50.20, 90.30.40IOND: 70.20.10JOB: 55.10.00Job management: 50.01.00Job-to-job transition: 50.01.00KEYBD: 70.20.10, 70.20.20Keyboard, console: 45.05.10Keypunching (see "cards, punching")Key-tag pair: 75.10.00Key verification: 20.10.10Language selection: 20.60.01Large real numbers: 70.10.20LET (see "Location Equivalence Table")Light pen: 45.35.00Linear Programming: 20.60.01LINK: 65.10.60, 70.20.20, 90.20.20, 90.30.40LINK area: 65.10.50Load on call: 65.10.40LOCAL: 65.10.20, 65.10.30, 70.50.20, 85.10.10, 90.20.20, 90.20.30,90.30.40LOCAL area: 65.10.40Location Equivalence Table: 50.01.00, 60.10.40, 80.30.20Magnitude: 70.10.20Main line: 25.30.20Manpower requirements: 40.30.00Master cartridge: 50.01.00Matching: 20.10.20Match/no match: 70.40.20Mechanism Design System: 20.60.01Merge order: 75.10.00Merging: 75.10.00, 75.30.10Minuend: 70.10.30Modular programs: 15.20.50, 25.30.20Monitor control record: 55.10.00MOVE: 25.40.50, 70.40.20MPY: 70.10.30NCOMP: 70.40.20Negative balance: 20.10.20Next record number indicator: 80.30.10, 80.40.10Nonstandard components: 45.45.00Non-systems cartridge: 50.01.00NSIGN: 70.10.30NumbersBinary: 45.05.30Hexadecimal: 30.20.00, 45.05.30Numerical Surface <strong>Techniques</strong>: 20.60.01NZONE: 70.40.20Object code: 70.50.01Operation manual: 15.20.70Optical reader: 45.40.00Optical System Design: 20.60.01Order entry: 45.40.00Outside controls: 20.10.20Overlap: 70.20.01Overlays: 65.10.30PACK: 70.30.00, 70.40.10Packing factor: 80.40.00Paper tape punch: 45.25.00Paper tape reader: 45.25.00PAPTZ: 65.10.30Parallel operations: 40.30.00Partitioned direct (see "disk data file, organization, partitioned direct")Pass: 75.10.00Patches: 30.40.00PAUSE: 30.20.00, 45.05.30, 65.10.30, 70.20.10Payroll: 10.40.60, 15.10.20, 15.20.10, 15.20.50, 55.30.00, 80.60.00,85.10.30, 85.30.101PDUMP: 30.20.00Performance (see "running time, factors affecting")Personnel: 05.01.00Petroleum Engineering and Exploration: 20.60.01PID (see "Program Information Department")Pigeonhole sorting: 75.30.10Pilot operation: 40.30.00Planning: 05.10.00For conversion: 40.10.00For testing: 30.01.00Plotter: 45.30.00PNCHZ: 65.10.30Precision: 70.10.01Preinstallation: 05.01.00PRINT: 70.20.10, 70.20.20Printer, console: 45.05.10Printers: 45.15.00Priority interrupt system: 70.20.01PRNTZ: 65.10.30PRNZ: 65.10.30<strong>Processing</strong>, order: 15.10.10Programmers, experience: 15.10.90ProgramArea: 65.10.50Change authorization: 25.20.00Changes: 25.10.00, 25.30.20Comments: 25.40.10Modular: 15.20.50, 25.30.20Patches: 30.40.00Testing: 30.01.00, 30.10.00Type I: 20.60.01Type II: 20.60.01Type III: 20.60.01Type IV: 20.60.01Program Information Department: 50.01.00Program informatiom manual: 35.10.10ProgrammingAids: 25.30.10Modular: 25.30.20Standards: 25.10.00Project Control System: 20.60.01PUNCH: 70.20.10, 70.20.20Punched card systems: 10.20.00Punching cards (see "cards, punching")PUT: 25.40.50, 70.10.20, 70.30.00, 70.40.10Random file organization (see "disk data file, organization, random")READ: 70.20.10, 70.20.20Read/write heads: 45.10.00, 80.10.00READZ: 65.10.30Real arithmetic: 70.10.20Real numbers: 80.60.00Output of large: 70.10.20Multiplication of large: 70.10.20RecordLayout: 30.40.00Length: 80.40.00, 80.40.10Length, computing: 80.50.00Length, shortening: 80.60.00Number: 85.10.30Size: 15.10.70Records: 80.20.00Recovery: 15.20.60Replacement selection: 75.30.10Resident monitor: 65.10.10Rotational delay: 45.10.00Rounding: 70.10.20Route accounting: 20.60.01Route slip: 20.10.20Run book: 15.20.70Running time, factors affecting: 80.01.00, 80.40.00, 85.10.20, 85.10.30SAC (see "storage access channel")Sales analysis: 10.40.30Sample documents: 10.10.00Satellite cartridge: 50.01.00SCA (see "synchronous communications adapter")Scientific Subroutine Package: 20.60.01Scratch disk: 50.01.00SDFIO: 65.10.30SDFND: 65.10.30, 70.50.20


Section Subsections Page04Searching an index: 85.10.10Sectors: 45.10.00, 80.10.00, 80.40.00Utilization: 80.40.00Seek time: 45.10.00Selective sorting: 75.30.10Selective tracing: 30.20.00Sequential organization (see "disk data file, organization, sequential")Serial numbering: 20.10.20SFIO: 65.10.30SKIP: 70.20.10, 70.20.20SOCAL: 65.10.10, 65.10.20, 70.50.20, 85.10.10, 90.10.10, 90.20.20,90.20.30, 90.30.40SOCAL area: 65.10.30Sorting: 15.10.10, 15.10.20, 75.01.00, 75.10.00, 85.30.10Mechanical: 70.40.20, 75.20.20<strong>1130</strong> flowchart: 75.40.00Sort phases: 75.10.00SQRT: 70.50.20Stabilization time: 45.10.00STACK: 70.20.10Stacker select: 25.40.30Standard precision: 80.50.00, 80.60.00Arithmetic: 70.10.20StandardsDocumentation: 25.10.00Error handling: 25.10.00FORTRAN labels: 25.10.00Programming: 25.10.00Statistical System: 20.60.01Stock status: 15.10.40STOP: 45.05.30, 70.20.10Storage access channel: 45.45.00Storage costs: 15.10.80*STORE: 60.30.20*STORECI: 65.10.40Store core image: 60.30.20*STOREDATA: 80.30.20, 80.70.10Store data core image: 60.30.20Strategy, testing: 30.10.00STRESS: 20.60.01String: 75.10.00SUB: 70.10.30Subjob: 55.10.00Subprograms, subtypes of: 65.10.10Subroutine library: 50.01.00Subroutines: 25.30.20, 70.50.01Devices not on your system: 60.20.20Logarithmic: 60.20.20Long argument lessons: 70.50.10Trigonometric: 60.20.20Unlikely to be used: 60.20.20Subtrahend: 70.10.30SUFIO: 65.10.30Supervisor program: 50.01.00Survey: 10.10.00Survey questionnaireAccounts payable: 10.40.50Accounts receivable: 10.40.20Billing: 10.40.10Inventory: 10.40.40Payroll: 10.40.60Sales analysis: 10.40.30Synchronous communications adapter: 45.50.00System overlay: 65.10.30Systems cartridge: 50.01.00Systems testing: 30.10.00Table lookup: 25.10.00Tag: 75.10.00Tag sort: 75.10.00, 75.30.20Teleprocessing: (see "synchronous communications adapter")Temporary indicator: 55.10.00Test decks: 30.10.00Testing: 30.10.00, 30.20.00, 30.30.00, 30.40.00Throughput (see "running time, factors affecting")TimeRotational delay: 45.10.00Stabilization: 45.10.00Stamps: 20.10.20Timing: 70.60.10Trace: 30.20.00, 30.30.00, 45.05.20, 70.10.20, 70.20.20, 70.50.20Transfer vector: 65.10.10Transmittal slip: 20.10.20TSTOP: 30.20.00TSTRT: 30.20.00Type Composition: 20.60.01TYPER: 70.20.10, 70.20.20TYPEZ: 65.10.30UA (see "user area")UDISK: 65.10.30UNPAC: 70.30.00, 70.40.10Unused area: 65.10.70User area: 60.10.40, 60.20.20, 80.30.20, 80.70.10Variable precision arithmetic (see "arithmetic, variable precision")Variable summary sheet: 25.30.10Verifier: 20.10.10WHOLE: 25.40.40, 70.10.20Work Measurement Aids: 20.60.01Working storage: 60.10.30, 60.20.20, 80.30.20, 80.70.10WRTYZ: 65.10.30WS (see "working storage")X-punch: 70.40.20Zero balance: 20.10.20, 25.40.40Zone punch: 20.30.10, 70.40.10, 70.40.201DUMY: 60.20.1011-punch: 70.20.10, 70.40.10, 70.40.2011-zone: 70.40.2012-punch: 70.40.2012-zone: 70.40.20941 report: 25.40.701055 Paper Tape Punch: 45.25.00<strong>1130</strong> Configurator: 45.55.001131 Central <strong>Processing</strong> Unit: 90.30.201132 Printer: 45.05.10, 45.15.00, 70.20.10, 90.30.201134 Paper Tape Reader: 45.25.001231 Optical Mark Page Reader: 45.40.001403 Printer: 45.05.10, 45.15.00, 70.20.01, 90.30.201442 Card Read Punch: 45.20.00, 70.20.10, 90.30.20Model 5 Card Punch: 45.20.001627 Plotter: 45.30.00, 90.30.202250 Display Unit: 45.35.002315 Disk Cartridge: 45.10.00, 80.10.002501 Card Reader: 45.20.00, 90.30.20


C20-1690-0EENInternational Business Machines Corporation<strong>Data</strong> <strong>Processing</strong> Division112 East Post Road, White Plains, N.Y. 10601(USA Only)<strong>IBM</strong> World Trade Corporation821 United Nations Plaza, New York, New York 10017(International)


READER'S COMMENT FORM<strong>IBM</strong> <strong>1130</strong> <strong>Computing</strong> System User's GuideC20-1690-0Please comment on <strong>the</strong> usefulness and readability of this publication, suggest additions anddeletions, and list specific errors and omissions ( give page numbers ). <strong>All</strong> comments and suggestionsbecome <strong>the</strong> property of mm. If you wish a reply, be sure to include your name and address.COMMENTSfoldfoldfoldfold• Thank you for your cooperation. No postage necessary if mailed in <strong>the</strong> U.S.A.FOLD ON TWO LINES, STAPLE AND MAIL.


C20-1690-0YOUR COMMENTS PLEASE ...Your comments on <strong>the</strong> o<strong>the</strong>r side of this form will help us improve future editions of this publication.Each reply will be carefully reviewed by <strong>the</strong> persons responsible for writing and publishingthis material.Please note that requests for copies of publications and for assistance in utilizing your <strong>IBM</strong>system should be directed to your <strong>IBM</strong> representative or <strong>the</strong> ism branch office serving yourlocality.foldfoldFIRST CLASSPERMIT NO. 1359WHITE PLAINS, N. Y.BUSINESS REPLY MAILNO POSTAGE STAMP NECESSARY IF MAILED IN THE UNITED STATESPOSTAGE WILL BE PAID BY ...<strong>IBM</strong> Corporation112 East Post RoadWhite Plains, N. Y. 10601Attention: Technical PublicationsfoldfoldInternational Business Machines Corporation<strong>Data</strong> <strong>Processing</strong> Division112 East Post Road, White Plains, N.Y.10601[USA Only]<strong>IBM</strong> World Trade Corporation821 United Nations Plaza, New York, New York 10 017[International]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!