C24 1464 3_1401_fargo 3 1401 Fargo
C24-1464-3_1401_fargo C24-1464-3_1401_fargo
User Manual: C24-1464-3_1401_fargo
Open the PDF directly: View PDF .
Page Count: 53
Download | |
Open PDF In Browser | View PDF |
File Number 1401-28 Form C24-1464-3 Systems Reference Library FARGO for IBM 1401 FARGO (Fourteen-a-One Automatic Report Generating Operation) is a report generator that requires no expert knowledge of programming techniques. This manual explains the writing of report specifications and the preparation of FARGO control cards to produce the desired results. Reports can be prepared on blank paper or preprinted report forms. The method requires a minimum of 4,000 positions of core storage and is applicable to card input files only. For a list of associated publications and abstracts, see the IBM 1401 and 1460 Bibliography, A24-1495. Fourth Edition This is a reprint of C24-1464-2 incorporating changes released in the following Technical Newsletter: Form Number Pages Affected N24-0231 10, 11, 14 July 24, 1964 Significant changes or additions to the specifications contained in this publication will be reported in subsequent revisions or Technical Newsletters. Copies of this and other IBM publications can be obtained through IBM Branch Offices. A form is included at the back of this manual for readers' comments. If this form has been removed, address comments to: IBM Corporation, Programming Publications, Dept. 425, Rochester, Minn. 55901. © International Business Machines 1961, 1963 Contents Introduction ................................................................................................... 5 General Description 6 Report Specifications ....... ............................................................................ 6 Coding Sheets ...................................................... .......................................... 8 Phase 4 (F:orm No. X24-6SS6) ........................."........................................ Report-Heading Control Cards ........ ................. ...... ................ ......... ...... Field-Headings Control Cards .................... "........................................ 8 8 8 Phase 1 (Form No. X24-6SS6) ................................................................... ~1aster-Report Control Card .................................................................. Control-Break Control Cards .................................................................. 10 10 10 Phase 1 (form No. X24-6SS7) ....... ................ ............ ............................... Constants Control Cards .... .................................................................... 11 11 Phase 3 (Form No. X24-6SS9) ................................................................... Detail Control Cards .............................................................................. 11 11 Phase 2 (Form No. X24-6SS8) .................................................................. Total Control Cards ........ ................. ......... .............. .......... ...... ......... ....... 13 13 Automatic-Carriage-Control Operation ................................................ 15 Operating Instructions ................................................................................ 16 Program Halts ................................................................................................ 16 Patching .......................................................................................................... 17 Multiply-Divide Optional Feature ........................................................... I\1ultiplication .......................................................................................... Division .................................................................................................... Half-Adjustments of Products and Quotients .................................... 20 20 22 26 FARGO General Program Operation and 1401 CoreStorage Organization ........................................................................ 30 FARGO Report Examples ........................................ .................................. Register of Earnings and Deductions .................................................... Remittance Statement and Voucher Check .......................................... 31 31 31 Index ................................................................................................................ 50 Fargo FARGO, Fourteen-O-One Automatic Report Generating Operation, is a report generator that requires no expert knowledge of programming techniques. It is easy to learn and apply. Developed for the IBM 1401 Data Processing System, F ARGO may be quickly adapted to many types of listed reports or groupprinted reports now prepared with unit-record equipment on blank paper or on preprinted forms. In addition to providing the program for processing the input detail-data cards, FARGO provides for printing one title line, including page number, on each page of the report. It also provides for printing two lines of field headings used to designate the various columns of the report. The printing of this information, normally required when preparing reports on blank paper, is controlled by the carriage tape. One advantage of FARGO is that any number of different reports may be prepared in a continuous mode, provided the reports are prepared on blank paper and that the carriage-tape specifications are standardized for all the reports. Requirements of the report, such as title and field headings, detail and/or total printing, carriage spacing, skipping, ejecting, etc., are first laid out on an IBM 1403 Printer Spacing Chart. The report specifications are then recorded on specially-designed FARGO con- trol card coding-sheets (Phases 1, 2, 3 and 4). Control cards for each of the four phases are then punched on standard 50B1-type cards. These are inserted behind their respective F ARGO condensed-program decks, and all precede the detail data cards to be processed. The file is then loaded into the 1402 file feed. The operation is started by pressing the load key. The 1401 loads each phase of the FARGO program, and generates the program steps from the control cards that follow each phase. In approximately 20 seconds, report printing is started. It continues without interruption until the report is finished. This procedure is graphically illustrated in Figure 1. If several reports are to be run consecutively, a separator card containing a lozenge (0 , 12-4-B) punch in card column one is placed behind the last detail data card for each report. This branches the generated program into the last card routine, ejects to the first printing line of the next form, and immediately begins reading-in the next program deck. FARGO is designed primarily for IBM 1401 card systems having a minimum of 4,000 positions of core storage, and parallels the 407 approach to report preparation. It is a load-and-go system with no intermediate operations such as symbolic assembly. 5 General Description Following is a list of operations that can be performed under FARGO control. Print one full line (132 positions) of Report II eading on the first line of each page of the report (carriagetape channel-I, including page numbers. Skip to carriage-tape channel-2 and print a maximum of two full lines of columnar- or field-headings on each page of the report. Skip to the body line of the report (carriage-tape channel-3). List or group-print the body of the report. Control on a maximum of four fields anywhere in the detailed data cards regardless of length. Group-indicate a maximum of four fields on the first line of each minor control group. Distinguish a maximum of 10 different types of detail cards and print results in the appropriate columns of the report. Each code used to identify a given type of card may be punched in the same column of the detail card, or a separate column may be used to identify each type up to a maximum of 10. If more than one card-column must be tested to identify a given type of card (multiple column type), a patching routine is generally required. Special provisions have been made within the FARGO program for accomplishing this type of patching. (See Patching.) However, two columns may be tested without patching if, as is frequently the case, a type of card is identified by a digit (1-9) in one column and a zone (usually an X) in another column. Example: 3 in column 6, X in column 80. (See Figure 25.) Add, subtract, multiply, and divide detail data or totals. Accumulate and print totals (with or without summary punching) for each control level, plus final totals at the end of the report. Minor totals are rolled into intermediate totals, intermediate totals into major, etc. 6 Space before or after printing, or skip to predetermined total-lines (carriage-tape channels 4 to 9). Crossfoot detail data or totals, print the results on desired total levels, and print progressive totals whereever desired. Print totals horizontally or vertically for each total level on as many lines as desired. Print multiple lines from one card (MLP). Print reports on preprinted forms, including inverted forms with MLP printing. In such cases, specifications for report and field headings are not required. Card count by types of cards and print card count totals on desired total levels. Overflow or eject from form to form. Print any number of different types of reports consecutively, provided that reports are prepared on continuous blank paper and that the carriage-tape specifications are standardized for all the reports. Report Specifications In developing report specifications, the first step is to layout the report on an IBM 1403 Printer Spacing Chart (step 1 in Figure 1). This establishes the positions at which the various data will be printed and indicates the spacing or skipping between lines of printing. This step is always required for new reports but may not be necessary for existing reports, that is, reports that have been prepared previously with the 407. In such cases, the same spacing chart used in laying out the report for the 407 can be used with the FARGO system. If minor modifications are made in the conversion of the report from the 407 to the 1401 because of the greater printing capacity, a new layout using the 1403 printer spacing chart is necessary. Once the report layout is completed and the operations to be performed are clearly indicated, the next step (step 2 in Figure 1) is to record the specifications on FARGO coding sheets. Carriage r--:::-:--Tape - ____ -Glue -'--_.';" 1403 Spacing Chart ---------------------I..r' V- Sample of report now being prepared on unit record equipment to be, converted to FARGO ----------------- xxx xx xxx xx xxxxxx xxx xx xxx xx xxxxxx xxx xx xxx xx xxxxxx xxxxxx* xxx xx xxx xx xxxxxx xxx xx xxx xx xxxxxx 0) ---- -- I eD I .- + I Phase 3 Phase 2 Phase 1 Phases 1 &4 FARGO Code Sheets rI- f- ~. Key~ FARGO (2) Numbers in squares indicate sequence cod~s punched in column 77 of the FARGO condensed program decks and control cards. Control Cards G) ( + L ( Phase 4 REPORT DETAIL DATA CARDS Phase 3 J- Phase 2 I-- Phase 1 FARGO Control Cards / @] CD 0 Figure 1. 1401 Data Processing System I FARGO Report F ARGO--Basic Steps 7 Phase 4 (Form No. X24-6556) Coding Sheets Coding sheets (Figure 2) are designed to facilitate the recording of specifications in the FARGO language, following a few simple rules. The statements used to supply the information are based on the logic of the -107. Thus, any person with sufficient knowledge to develop IBM 407 specifications for a given report can learn and apply the FARGO language with very little training. The areas on the coding sheets labeled Report, Programmed By, Page Nos., and Date are for the convenience of the programmer, but are not punched in the FARGO control cards. If the programmer assigns a number to the program for identification purposes, the number is entered in the area labeled Program Identification, 73-76. This number is later punched in each FARGO control card. Each line of the coding sheets is identified by a preprinted sequence number in columns 77-80. These sequence numbers should be punched in the control cards. When the control cards for the four phases are properly inserted behind their respective FARGO condensed-program decks, the sequence numbers must be in ascending order as shown here. Phase 1 1 2 2 3 3 4 4 Cards Condensed Program Control Cards Condensed Program Control Cards Condensed Program Control Cards Condensed Program Control Cards Deck Deck Deck Deck No. of Cards 50 variable 32 variable 33 variable 12 variable Sequence Numbers 0001-0050 1000-lxxx 2000-2031 301O-3xxx 4000-4032 501O-5xxx 6000-6011 7001-70xx The coding sheets for the four phases are described in the order in which they are normally filled out. x24-6556 Phase 4 - Report-Heading Control Cards (two cards maximum). Field-Headings Control Cards (four cards maximum). Phase 1 - Master-Report Control Card (one card maximum). Control-Break Control Cards (four cards maximum). FORM NO. x24-6557 Phase 1- Constants Control Cards (50 cards maximum). Report-Heading Control Cards Two report-heading control cards (sequence numbers 7001 and 7002) provide a maximum of 132 positions of report-heading information that may be printed at the top of each page of the report (carriage-tape channel-I). Report-heading specifications are entered in columns 1-68 as follows: Card Columns 1 2 3-68 RULE: FORM NO. x24-6558 Phase 2 - Total Control Cards (variable) 8 If a report heading is required, two cards always must be punched, and HI control card must precede H2 control card. Depending on the length of the report heading and the print positions selected, either HI or H2 control card may be blank in columns 3-68. The report heading may include the word PAGE' anywhere on the line if page numbering is specified. . If a report heading is not required (preprinted forms), these two control cards are omitted. Field-Headings Control Cards Four field-headings control cards (sequence numbers 7011-7014) provide two full 132 positions for fieldheading information that may be printed on each page of the report following the report heading (carriagetape channel-2). Field-headings specifications are entered in columns 1-68 as follows: Card Columns 1 2 3-68 FORM NO. FORM NO. x24-6559 Phase 3 - Detail Control Cards (variable) Control Data H - Report-Heading Control Carel. 1 - First card. 2 - Second card. Enter report-heading information (66 characters maximum for each card). Card 1 prints in positions 1-66, Card 2 prints in positions 67-132. Control Data F - Field-Heading Control Card. 1 - First Card. 2 - Second Card. 3 - Third Card. 4 - Fourth Card. Enter field-heading information (66 characters maximum for each card). Cards 1 and 2 print first line of field headings: Card 1 - print positions 1-66. Card 2 - print positions 67-132. Cards 3 and 4 print second line of field headings: Card 3 - print positions 1-66. Card 4 - print positions 67-132. RULE: If field headings are required, these four cards must enter the machine in ascending sequence. If not required (preprinted forms), they are omitted. RULE: Whethcr or not report and/or field headings are specified, a blank card punched with the # (3-8) symbol in column 1 must be the last card in the combined program deck. In other words, it always precedes the first detail data card. This signals the end of FARGO program loading and the beginning of detail card processing. r--.-----------------------______________________.______________________ ~ FORM X24-6!1i59 Printed In U.S,A. IBI4 INTfiNAllOHAl IUStNESS MACHINES CORPORATION IBM 1401 DATA PROCESSING SYSTEM REPORT __________________ IFARGO REPORT SPECIFICATIONS • PRCIGRAMMEO BY 1731741"IJ PROGRAM IDENTIFICATION Phase 3 DATE Pave of DETAIL CONTROL CARDS - PHASE 3 A-Add; 5 Subtract @ ;;;: Multlplyl % ;;;: Dly. . ? ;;;: Z.ro Addj I = Z.ro Subt,oct D ;;;: Move Dlg"; Y ;;;: Mtn. ZOMI ........ M=Mov. Z=MoveaftdSupp''''z...OI _ConI ,,_1 IIII~~II I .- C""'- , T. N....... .. IT 25 71 ' ULI ' 7 1 111 '11' "ISII"II 11 :..1. II 7 "('1 ..... II 11 11 11111 I I I I ttT~l~li~~~~~~~~~~t~~~~~.~~~~~~~-U~~~~~~~~~~~~~ I I ~lol, 0 D -.l..1. D -.l..1. D I I D -.l...l FORM )12-4·6.558 in U.S..... 'rl"~itd ~T INTERNATIONAL BUSINESS MACHINES CORPORATION _____________________ IBM 1401 DATA PROCESSING SYSTEM FARGO REPORT SPECIFICATIONS I'I!OGIIAMMED BY ..1.~ j ___________ • PROGRAM IDENTIFICATION Phase 2 DATE ~17i7'17.i ~of Page TOTAL CONTROL CARDS·- PHASE 2 I ~..1. S::::Subt,ad @=:Muhiply LI " "'Divide l=load edif'Control Word E:...::Edit Summ~Jry ctlKlr Punch Column Split M ::::: MOve (fln,tanl Dolo M = Move ~;;;: Move and Suppress Zeros I = Move and Suppren Ierot ~..1. J.J.. ~_I D D I -.l...l J...1.. j FORMX2"6!i!i7 Printed in U.S.A.. I IB"1 11 INTERNATI()NAl BUSINESS MACHINES CORPORATION IBM 1401 DATA PROCESSING SYSTEM REPORT _____________________ J_..L Ll _U T t-J .I 1 .L FARGO REPORT SPECIFICATIONS PROGRAMMED BY • PROGRAM IIlENTIFICATION Phase 1 DATE _ Poge_of_ CONSTANTS CONTROL CARDS - PHASE 1 ; No. S POI. Label Column 1 C Conltant with a word matk; S Corlltant without a word m.grk Colt.,tnnI2·3 = Size of Con,tant Word Columnl .. -6 = label to IdentlfyConltantWo,d Column I 7·72 = field for punching Conltant Word (66 charaete,. mQlllmum) 1234 15 20 25 3D Sequlnce 3,·.tO 50 5" 70 IB"': FARGO REPORT SPECIFICATIONS • ·'1· w ~ IBM 1401 DATA PROCESSING SYSTEM ~--~---- PROGRAMMED BY ~:;~3~;;;:;;::;;;:::,;;:"··· w U ~ ,.7.,32 ~ PROGRAM IDENTIFICATION Phases 4 and 1 ~ ~ ~ l! J...1..1.J..LJJ L~U I.LLJ_LLLll.LU...1J..l.-Ll...LLLLL..LLL..LLUI I II I t-+-t-I--H .. ~ 12 ....++++-t-t. ,J oJ,JQ INTERNATIONAL BUSINESS MACHINES CORPORATION REPORT _ _ _ _ _ _.__. __ I' ~ sa 7217178 I-++-+-+-I--t ~-L-l1 __l.....L.LbhbdJ....!J~I.~1-"L""U±~L..L1-.lbd~·~I±;I::!:I:;!I;:;!I~I:0;1::!:Ll==J~~~~:;!I..:::...LLL~:!::;!:.l:..:!.I=.li~.-l=J...!I~±:1::::1::!I::!I~",-Ic:L::!J..:c.J~L..=.1c:j...!.I_l!.-:..I..=.1 11 I I I 1 I. II J DATE _ _ _ ..____ Poge_ A I·S~' ~ ~ I I I..lJ.J ...1.~..1.111 II I I . '7' Ci I';' I I I I I I I 17101'2 I I II I I I II I I IJ UJ.I ILJ.J.JLL..UL.LLl...JJ....l-.lL1L.LLl._LLl...J....l ..l_LLU_LLLU I III I I I II I '7Iol'~. J..1..1.1 I LLl....l..Ll.l.-LLLLLLLL1..J_LJ..J.._LIJ..JJ lli_LLLlLLLl...LJJ.LLLU.lJ .. lil.i of.,~J-N~t Hu~ct,~i,~fol~MV ~u~T~o1.o~1 '~T Ok~6~ili-t'!'jH'~,J J 1 ~ER_ 1JLL! ILl Ll oL .. I LLJ_LLLLLLLI LL L~L~l' .< LLl REPORT :ONTROL CARD - PHASE 1 CONTROL BREAK CONTROL CARDS PHASE 1 Control Field Card Coh. Sequence Number ~~ I 1 I I I I • 2..1~ .-l~ .3f-.L.1-_U .< Figure 2. II II Flullevel Control (minor) Second level Control (Intermediate) Third Level Conlrol (molor) 6206 I 5MSP 1004 FARGO Coding Sheets 9 Phase 1 (Form No. X24-6556) Master-Report Control Card This card (sequence number 1000), always punched "AI in column 1, specifies: l. type of report (list or group-print). 2. page overflow, if desired. 3. page numbering, if desired. 4. positions selected to print the page number anywhere on the report-heading line. 5. data to be group-indicated on the first line of each minor control group of a listed report only. The control data is entered in the various columns of the coding sheet as shown here. Card C antral Data Columns M - Master-Report Control Card. L - List; Blank - Group Print. 1 2 3 o (alpha) - Page overflow to carriage-tape channel-I. Blank - No page overflow. 4 P - Page numbering if desired. Blank - No page numbering. 5-7 (from) 8-10 (to) 1403 print positions selected for printing page number on report-heading line. (From indicates the left-hand or high-order print position while to indicates the right-hand or units print position.) IBM 11 First field to be group indicated. M - Move Z - Move and suppress zeros. 12-14 (from) 15-17 (to) Location of data in detail card to be groupindicated. (From indicates the left-hand or high-order card column, while to indicates the right-hand or units card column.) 18-20 (from) 21-23 (to) IBM 1403 print positions selected for printing first group-indicated field. 24-36 Second field to be group-indicated. Same format as Field 1. 37-49 Third field to be group-indicated. Same format as Field 1. Fourth field to be group-indicated. Same format as Field 1. 50-62 RULE: 10 The master-report control card is -always punched, even though it might be blank except for the M in column 1 and the sequence number (1000) in columns 77-80. Control-Break Control Cards These cards (sequence numbers 1001-1004) always punched B in column 1, specify the four control levels and define the card columns in which the control fields are punched in the detail cards. For a simple listed report with no controls, these cards are omitted. When controls are required, the specifications are recorded in columns 1-8 as follows. Card Columns 1 2 Code B 1 2 3 4 3-5 (from) 6-8 (to) C antral Data Control-break control card. First-level control (minor). Second-level control (intermediate). Third-level control (major). Fourth-level control. Location of control field. Split-Control Fields Normally, information in a given level control, identified by a single card-field heading, is punched in consecutive columns of the card. In some cases, the information may be punched in more than one card field but still in consecutive columns of the card. The various card fields involved may be treated as one-level control merely by specifying the level desired (1, 2, 3, or 4), and the high-order position of the left-most field (from) and the low-order position of the right-most field (to). When a given level control (for example, minor) is split, that is, represented by two card fields that are not adjacent, one field is specified as minor (code 1) and the other field as intermediate (code 2). Because an intermediate control-break forces a minor totallevel, all the total operations are specified in Tl (minor level) control cards in Phase 2. A single T2 (intermediate level) control card, coded SPS in columns 52-54, follows. However, no total operations are specified on the intermediate level. For each extra B-control card required in Phase 1, one total level is sacrificed in Phase 2. Phase 1 (Form No. X~24-6557) Constants Control Cardl; These cards, punched C or S in column 1, define the length of each constant word, the label used in the program when referring to the constant, and the characters that compose the constant word, with or without a \vord mark. Constant areas of core storage used to accumulate totals must be given a label. A maximum of 50 constants control cards may be used. Any combination of characters except PGE may be used as a label. The reason PGE cannot be used is that a 4position constant area is reserved by the program to permit addressing the page number counter. If page numbering is not required, the counter may be used for other purposes in the program, in which case the counter must be referred to by the PGE label. Because the number of constants control cards may vary from report to report, complete sequence numbers are not preprinted on the form. Only the hundreds position (column 78) need be entered, using 0 for the first 9 lines, then l'~, 2's, etc., as required to establish sequence. If more than one sheet is needed, skip the first line (sequence no. 1010) on all overflow sheets and continue numbering with the second line (lx20). The same numbering scheme applies to sequence numbers for Total and Detail Control Cards recorded on other forms. Specifications for constants are recorded in columns 1-72 as follows. Card Columns 1 2-3 4-6 7-72 Control Data C - Constant with a word mark. S - Special constant without a word mark. Number of positions in the constant word, including blanks. Label assigned to identify the constant word when referring to it in the program. Composition of the constant word (66 characters maximum). Blank positions are considered characters. Phase 3 (Form No. X24-6559) Detail Control Cards These cards, always punched D in column 1, specify the various operations to be performed for each type of detail card as follows. 1. Recognize type of card upon which operations specified in the same card are to be performed. 2. Move digits or zones from a single column of the detail card. 3. Transfer constant words to print/punch areas. 4. Transfer data from detail card to print/punch areas. 5. Perform arithmetic operations on detail-card data. 6. Print multiple lines from a single card. 7. After printing a detail line, skip to a carriage-tape channel, or space 1, 2, or :3 lines. Detail-control-card specifications are recorded in columns 1 to 72 as follows. Card Columns 1 2-6 RULE: Control Data D - Detail Control Card. If only one type of detail card, leave columns 2-6 blank. If more than one type (maximum 10), enter infonnation in columns 2-6 as specified in the following rule. For operations that are to be performed on all detail cards regardless of type, leave column 2 blank and enter ALL in columns 3-5. On the last ALL control card, also enter an asterisk C') (11-4-8) in column 2. ALL control cards must precede all other control cards punched D in column l. For operations that are to be performed on specific types of detail cards, enter in column 2 the type code, in columns 3-5 the column in the detail card that contains the type code, and in column 6 C for a character tcst or Z for a zone test. The C and Z codes in column 6 control the method to be used for determining the type of card indicated in column 2. Applications of this rule are illustrated in the following examples. For detail cards where no operation is to be performed, columns 1-6 of the detail control card must always be punched. Applications of this rule are illustrated in the following examples. 11 Card Columns Control Card Columns 1 2 345 6 D D D D D ° ALL ALL ALL ALL ALL Character test. Operations specified in this control card are performed on cards containing only an X (11-punch) in column 80. D - 080 Z Zone test. Operations specified in this control card are performed on cards containing an X in column 80. This includes characters in the 11-zone (] to R). D & 080 C Character test. Operations specified in this control card are performed on cards containing only a 12-punch in column 80. D & 080 Z D 6 080 C Control-card columns 14 through 20 are used primarily to move credit X-punches from some position of the data card to the units position of an amount field that is to be accumulated or edited. If the position from which the X was moved must be cleared, another control card may be used to move a blank zone into the position from which the X was moved. 22-24 Character test. Operations specified in this control card are performed on cards containing a 6-punch in column 80. Enter the label assigned to the constant to be transferred to the print or punch areas. 25-27 (from) 28-30 (to) Print positions selected to print the constant data. 31-33 (from) 34-36 (to) Summary-card columns selected to punch the constant data. 37 E - Edit detail data. M - Move detail data. Z - Move and suppress zeros from detail data. D - Move digit. Y - Move zone. No-Zone test. Operations specified in this control card are performed on cards containing no-zone punches (0, 11, 12) in column 80. For this type of test, any digit from 1 through 9 can be used in column 2 of the control card. Zero-Zone test. Operations specified in this control card are performed on cards containing a zero-zone punch. This includes special character (I) and letters S to Z. For this type of test, any of the characters mentioned can be used in column 2 of the control card. D Blank-column test. Operations specified in this control card are performed on cards that are blank in column 80. 7-13 Enter the card column to which the digit or zone is to be moved. Zone test. Operations specified in this control card are performed on cards containing a 12-punch in column 80. This includes characters in the 12-zone (A to 1). D Z 080 Z Card Columns 18-20 (to) E L M Z D Character test. Operations specified in this control card are performed on cards containing the letter Z (0-9) in column 80. 080 Z Enter the detail card column that contains the digit or zone to be moved. 21 D Z 080 C 080 C Control Data 15-17 (from) Last ALL control card. 080 C D 12 Operations specified in these control cards are performed on all cards regardless of type. D - D 6 080 Z 14 ) ) ) ) ) Result No-Zone test. Operations specified in this control card are performed on cards containing no-zone punches (0, 11, 12) in column 80. This test can be used to differentiate between an X80 or NX80 condition. 38-40 (UOfrom) Location of field to be transferred. 41-43 (to) oooNOTE: To conserve on 1401 core storage, subsequent references to the same field in the same card types may be made by inserting asterisks in columns 38-40. This also applies to columns 57-59. 44-46 ( from) 47-49 (to) Print positions selected to print detail data. 50-52 (from) 53-55 (to) Summary-card columns selected to punch detail data. 56 A S @ % ? I Control Data Special 4- or 7-position instructions coded in actual IBM 1401 machine language, to be executed for specific types of cards, can be inserted in these columns. Instructions can also be used to branch to patching subroutines written in actual machine language. The specific patch point in the program must be determined by the programmer. Instructions for inserting patching subroutines are given under Patching. D - Move digit. Y - Move zone. Edit. Load edit control word. Move constant data. Move and suppress zeros. Move digit. Y - Move zone. .. D Y M Z - Add. - Subtract. - Multiply (4-8 punch). - Divide (0-4-8 punch). - Zero and Add (12-0 punch). - Zero and Subtract (11-0 punch). - Move digit. - Move zone. - Move. - Move and suppress zeros. 57-59 (UOfrom) Location of field upon which operations 60-62 (to) coded in column 56 are to be performed. 63-65 Label assigned to constant upon which operations coded in column 56 are to be performed. 66-68 Label of core-storage positions to be used as accumulator, multiplier-product, or quotientdividend-remainder. Card Columns 69 Control Data P - Print. Primarily used for MLP printing. A control card is required for each MLP line to be printed from the same type of card. Coding in column 69 is required for all MLP lines except the last. Printing the last line of an MLP card is automatic. All lines printed from an MLP card are single-spaced. SP - Space after printing a detail line. 70-71 SK - Skip after printing a detail line. 1-3 - Single-, double-, or triple-space after 72 printing. 4-9 - Skip to corresponding carriage tape channels. In a listed report, skipping or spacing indicated in columns 70-72 takes place after printing of the detail line for' the particular type of card specified in column 2. In a group-printed report, skipping or spacing indicated in columns 70-72 causes no carriage operation. In such cases, skipping and spacing is controlled with T (Total) control cards entered in Phase 2. RULE: When several control cards are entered for the same type of detail card, a skip or space instruction must be entered in the last control card of each type. RULE: For printing and punching the same detail data, two separate control cards are required: one to move data to print positions, the other to move data to punch positions. This rule must be observed when entering data in control card columns 22-36 and 38-55. 10. Print multiple lines of information read from a single card in Phase 3. 11. Punch summary cards. Several totals within the same class, designated by Held headings, may be printed horizontally on the same line, each under its appropriate column of the report. Or, they may be identified by constants and printed vertically on separate lines in the same column of the report. Examples: Horizontal Method Gross Withholding Earnings Tax 27.00 150.00 These cards, always punched T in column' 1, specify the various operations to be performed for each class of total or each total within the same class. Operations include: 1. Skip to a carriage tape channel, space before and/or after total printing, or eject from form to form. 2. Add one total-level accumulator to a higher-level accumulator. Subtract one total-level accumulator from a higher-level accumulator. Multiply or divide one total by another on the same level. 3. Crossfoot totals on any total level desired. 4. Load or move constant data to the printer output area. 5. Move, move and suppress zeros, or edit accumulated totals to the print or punch areas. 6. Move digits or zones from a single storage position. For example, remove or add a sign to the units position of a total. 7. Clear accumulators. 8. Print constants on totailleveis to identify totals. 9. Print totals on total lines. Other Deductions 10.00 Net Pay 107.56 Vertical Method Gross Earnings Less WHTax F.I.C.A. Other Net Pay 150.00 27.00 5.44 10.00 107.56* Similarly, different classes of totals may be printed horizontally under designated report columns or vertically in the same report column. Total-control-card specifications are recorded in columns 1 to 56 as follows. Card Columns 1 2 Phase 2 (Form No. X24-6558) Total Control Cards F.I.C.A. 5.44 3-4 5 6 7-9 (from) 10-12 (to) 13 Control Data Total control card. Minor-totallevel. IntermedIate-total level. Major-total level. Fourth-total level. Fifth- (final) total level. (Occurs on last card ronout with Sense Switch A turned ON.) SP - Space before total printing. SK - Skip before total printing. T 1 2 3 4 5 - Enter 1-3 to space number of times designated. Enter 4-9 to skip to corresponding carriage tape channels. NOTE: Because normal single spacing is automatic, leave columns 3-5 blank if normal spacing is desired. A - Add. S - Subtract. @ - Multiply (4-8 punch). % - Divide (0-4-8 punch). M - Move. Label of accumulator read out of. Label of accumulator read into. L - Load edit control word. M - Move constant data. Z - Move and suppress zeros. 14-16 Label assigned to constant being moved or loaded. 17-19 (from) 20-22 (to) 23 Print positions selected to print constant data. E - Edit total or constant data. M - Move total or constant data. Z - Move and suppress zeros from total or constant. 13 Card Columns Control Data 24-26 Label assigned to accumulator or constant. 27 -29 (from) 30-32 (to) Print positions selected to print total or constant data addressed by the label coded in columns 24-26 of the same control card. 33-35 (from) 36-38 (to) Summary-card columns selected to punch total or constant data addressed by the label coded in columns 24-26 of the same control card. Card Columns 54 NOTE: RULE: RULE: 39 40-42 4.3-4.5 For printing and punching from the same accumulator, two separate control cards are required. One moves data to print positions, and the other moves data to punch positions. Enter S to single space. Enter 1-3 to obtain additional spaces beyond the normal &ingle space (1 for double space, 2 for triple space, 3 for quadmple space). Enter 1-9 to skip to corresponding carriage tape channels. When skipping to carriage-tape channel-1 after total printing, report and field headings do not print. When several totals within the same level are printed on separate lines, the last T (Total) control card for each total level must contain a Skip, Space, or Eject instmction. If normal single spacing is desired, the last control card must be coded SPS in columns 52-54. D - Move digit (only) portion of a character from one card column to another in punch area. Y - Move zone (only). 55 E Summary-card column from which digit or zone is to be moved. 56 (J Summary-card column to which digit or zone is to be moved. 46 S 47-49 Label assigned to accumulator to be cleared. NOTE: When both printing and punching from the same accumulator, clear accumulator on the second control card, after information has becn transferred to the print and punch areas. - Clear accumulator by subtracting it from itself. 50 P - Print total line. All totals within the same level may be printed on one line or on separate lines. 51 P - Punch total summary card. All totals within the same level may be punched ill one card or in separate summary cards. 52-53 SP - Space after total printing. SK - Skip after total printing. 14 Control Data - Eject form to carriage-tape channel-1 after total printing. Report and field headings will print on the next page following the eject. The last T control card specified in Phase 2 (Form No. X24-6558) must contain an asterisk (<:I) punch in col- umn56. RULE: \Vhen four control levels are specified in the problem, final-total operations are specified on level 5. When less than four control levels are specified, final-total operations are specified on the next higher level. Examples: No controls, final-total operations are specified on level 1. Minor control only (level 1), final-total operations are specificd on level 2. Minor and intermediate controls (levels 1 and 2, respectively), final-total operations are specified on level 3. Minor, intermediate and major controls (levels 1, 2 and 3, respectively), final-total operations are specified on level 4. For all the conditions mentioned in these examples, the last final-total control card must contain an asterisk (<:I) punch in column 56. If Final Totals are not required, a last-card-runout total-card for levell, 2, 3, 4 or 5 must contain an asterisk in column 56. The level is always one higher than the number of control levels specified in the problem. Automatic-Carriage-Control Operation Page overflow is controlled by the letter 0 in column 3 of the master-report control card - Phase l. Ejecting from form to form (carriage-tape channels 12 to 1), and skipping to carriage-tape channels 2 and 3, occur automatically as shown in Figure 3, depending on the presence or absence of report- and field-headings COIltrol cards - Phase 4. C~~~~~N ~=. ··ir:r"'r",;:,;w:":;"':":;:--+--Re=-po-rt-frl~~ea-d-ing---' NO FIELD HEADINGS G L:U E '." +. -+. NO REPORT HEADING Report Heading Field Headings Field Headings NO REPORT HEADING NO FIELD HEAD INGS Body Body Body Body = . ~ :=I:S:: •••, ..... .,UI .... W N _ I!!I ... ... Overflow line Overflow line Overflow line Overflow line t:; it ...+~ I:: I-H--I-II+.-+-, .. H,'--+1-++--1- - - - - - - - - - - - - - - - - .g. ·-hit -.~ Figure 3. - Automatic-Carriage-Control Operation 15 Operating Instructions Program Halts To prepare reports with FARGO, proceed as follows: Program halts may occur not only during the loading of the FARGO program deck (Phases 1 to 4) but also during processing of the detail cards. Halts occurring during Phases 1 to 4 indicate that the control cards punched from the coding sheets are not in the proper sequence as shown in Figure l. Or, if they are in the proper sequence, invalid codes are punched in column 1 of the control cards. Valid codes are M, B, C, S, T, D, H, F, or #. Codes other than these are invalid. Following is a list of program halts, reason for halt, and procedure for restarting. When the halt occurs, the last card in the read stacker (NR) has an invalid code in column 1. l. Ready the IBM 1403 Printer. a. Insert into the carriage the paper or form on which the report is to be printed. Make the necessary vertical and horizontal adjustments to properly position the form. b. Insert the carriage tape punched as follows. Normal Condition Channell- Report-heading line. Channel 2 - First field-heading line. Channel 3 - First body line. Channels 4-9, if required. Skip-stops for predetermined line printing. Channel 12 - Overflow line. NOTE: For conditions other than normal, channels 2 and/or 3 may not be required. (See Figure 3.) c. Set feed-clutch knob to neutral position. d. Press carriage-restore key. e. Turn feed-clutch knob back to drive position. f. Press check-reset key on the 1403 printer. 2. Ready the 1401 Console. a. Set mode switch to run position. b. Set I/O check-stop switch to the ON (up) position. c. Set sense switch A to the ON (up) position. d. Press check-reset key on the 1401 console. e. Press the start-reset key on the 1401 console. 3. Ready the 1402 read-punch unit. a. Set reader switch to ON. b. Press the non-process runout read key to clear the read feed. c. Place FARGO program and detail cards in the 1402 read unit in the sequence illustrated in Figures lor 6. d. If summary punching, set punch switch to the ON position. 1. Press the non-process runout punch key to clear the punch feed. 2. Place cards to be summary punched in the punch hopper. e. Press check-reset key on the 1402 read-punch unit. f. Press load key on the 1402 read-punch unit. If the control cards punched from the FARGO coding sheets contain no errors, the program is loaded in approximately 20 seconds. Processing of detail data cards is started immediately thereafter. When the last card has left the hopper and the machine stops, press the start key on the 1402. If specified in the program, final totals print automatically on the runout. 16 Storage Address Displayed 2639 2947 2363 2379 3090 Phase 1 1 2 3 4 Card Card Card Card Card has has has has has Reason for Halt other than M. other than B, C, or S. other than T. other than D. other than H, F, or #. To restart from any of these halts, proceed as follows. 1. Remove cards from read hopper. 2. Press non-process runout read key. 3. Remove the last three cards from the read stacker (NR). The first of these three cards is the control card in error. 4. Correct the error. 5. Replace the three cards in front of the cards taken from the read hopper. 6. Place the card file in the read hopper. 7. Press check reset key on the 1402. Do not press the start reset key on the 1401 console. 8. Press start key on the 1402 read unit. CAUTION: During processing of detail cards, if the machine stops with the red Stop Light ON (1401 Console) and storage address 0157 displayed, a constants label has been referred to in one of the T or D control cards for which there is no corresponding constants control card. This may be due to misspelling the 3-character label abbreviation on the T or D control card. Or, it may be that constants control card was inadvertently omitted in the constants coding sheet. To restart, proceed as follows. l. Remove all cards from read hopper and file feed. 2. Press non-process run out read key on the 1402. 3. Locate erroneous control card, make corrections, and restart from the beginning. If the machine stops with the red Stop Light ON and storage address 3547 displayed, the last card in the stacker is a type of card for which no entry was made on the Phase 3 code sheet. 5. Locate the control card in which the invalid character is punched and remove it from the program deck. 6. Correct the error by punching a new control card and inserting it in the program deck. 7. To restart, a complete card run out and start reset is necessary. During processing of detaH cards, the program may hang up at an unknown address with the following lights ON: PROCESS CHECK RESET A- DEl I-ADDRESS REGISTER. The A·Address Register Light means that an edit control word entered in the constants coding sheet is too small for the data being edited. The I-Address Register Light means that a 1401 operation code represented by an invalid character is detected in storage. To locate the edit control word that is too small for the data being edited, execute a STORAGE PRINT-OUT as follows. 1. Set mode switch to STORAGE PRINT-OUT. 2. Press I-address register key and note address location displayed. 3. Turn hundreds and thousands manual-address switches to digits corresponding to the hundreds and thousands positions displayed. 4. Press start key on the 1401 console. 5. Examine the storage print-out and find the I-address displayed in Step 2. 6. Go back from there to the first load (L) instruction. The A·operand of this instruction contains the storage address of the edit control word that is too small. 7. Locate constants control card, make corrections, and restart from the beginning. Patching The term patching as used in connection with FARGO, means linking a special subroutine or library program to the main FARGO program. The linkage is accomplished by branching from' a specific patch point in Phase 3 (detail control cards) or Phase 2 (total control cards) to the patch subroutine, then branching back to the main FARGO program, after the subroutine is executed. With a 4k machine, at least 956 storage positions are available for storing patch subroutines. In some cases, depending upon the complexity of the report involved, more storage positions may be available. These subroutines must be entered into the machine in actual 1401 machine language. Therefore, a knowledge of 1401 programming or symbolic programming (SPS) is a prerequisite. The specific patch pOint(s) for linking subroutines is determined by the programmer as he normally writes the FARGO instructions. These patch points are first recorded on Phase 3 and Phase 2 coding sheets as 4- or 7-position no-op instructions. They are changed later to unconditional branch instructions after the· exact locations of the patch subroutines are determined. To locate and correct an invalid character used as an operation code execute a STORAGE SCAN as follows. 1. Set mode switch to STORAGE SCAN. 2. Set manual-address switches to 0000. 3. Hold down the start key. 4. Machine stops when an invalid character is detected in storage. The storage position in error is shown in the storage-address display unit. The B-register displays the contents of the storage position in which the error is detected. Phase 3 - Detail No-Op Control Cards At each point in Phase 3 where branching to subroutines is required, make an entry on the coding sheet in columns 1, 2-6, and 7-10 as shown in Figure 4. Del AIL CONTROL CARDS - PHASE 3 0 Typ. of D.tail Card C Z ., =Chal'. =ZonE "0 a U 1 Card Cois. 2 3 +- Special" or 7 position 1-'01 Instruction (adual) C 0 Z P Digit Y :: Moye Zone 10 1 5 6 7 8 From From 202 122 From From To 3~ 31 27128. 2" 25 Data Card Columns Punch Positions Print Positions label To 1718 13 1" 15 = = o =: Moye 11 E = Edit DETAil CARD DATA M Mov. Z = May. and Suppr... Zeros D = Mov. Digit Y = Mov. Zan. = Column Split B A E - Edit l = load Edit Control Word M = Moye Constant Data Z = Moye and Suppress Z.ros o Mov. Digit Y Moye Zone ... To From 36 3738 3 34 Print Positions 40141 To Punch Positions To To From From 43 ..... .u. '7 4950 §2 53 55 OX XtXlx Ix N 01010 I I I I I I I I I I I I I I I I I I I I I I I I I I 0 I I I I I I I I I I I I I I I I I I I I I I I I i I I I i I I I Figure 4 17 The D in column 1 is preprinted on the form. This indicates that branching to the patch subroutine is to occur during the detail portion of the program. The codes entered in columns 2-6 specify the type of detail card for which the patch subroutine is to be executed. The entry, NOOO in columns 7-10, is the no-op instruction. This is changed later to an unconditional branch instruction (~xxx), with xxx indicating the actual machine address of the patch subroutine. Phase 2 - Total No-Op Control Cards At each point in Phase 2 where branching to subroutines is required, make an entry on the coding sheet in columns 1, 2, and 39-45 as shown in Figure 5. The T in column 1 is preprinted on the form and indicates that branching to the patch subroutine is to occur during the total portion of the program. Any digit from 1 to 5 entered in column 2 specifies the program level during which the patch subroutine is to be executed. The entry N788788 in columns 39-45 is the no-op instruction. This must be changed later by an instruction in the patch subroutine to an unconditional branch instruction (~xxxbbb), with xxx indicating the actual machine address of the patch subroutine and bbb indicating blanks. The FARGO program, including the no-op control cards that cause no machine operation, is completely tested with a representative deck of detail data cards and approved before the subroutines are inserted into the program deck. This is necessary because any change in the FARGO control cards after the subroutines are inserted affects the storage locations of the gencrated report program, requiring changes in the subroutine instructions. After the FARGO-generated portion of the report is satisfactorily tested, execute a STORAGE PRINT-OUT and examine it to determine: 1. the end of the FARGO-generated program. 2. storage location of patch points (no-op detail and total control cards). The end of the generated program is determined by locating the report-heading information that is loaded into storage immediately after the last instruction from the detail control cards. If report-heading information is not specified in Phase 4, the end of the generated program is the last ~E66 instruction. This instruction appears follOWing the last generated instruction for each type of detail card specified in Phase 3. Therefore, the end of the generated program is either the last position of the report-heading information (including blanks), or the last BE66 instruction. The area available for storing the-patch subroutines extends from this point (storage location 2358 or lower, depending upon the complexity of the report involved) to 3313. Thus, with a 4k machine, 956 storage positions or more are available for patch subroutines. Obviously, with machines of greater capacity, an additional amount of storage is available, starting with location 4000. The storage location of each patch point is determined by visually scanning the storage print-out and finding the no-op instructions. Detail no-op instructions are identified by NOOO. Total no-op instructions are identified by N888888. ~888888 was recorded on the coding sheet as N788788 but changed by the FARGO program to ~888888. TOT AL CONTROL CARDS - PHASE 2 Be- '? T "i fore Print A =Adr.l S = Subtract @ = Multiply % = Divide M = Move L = Load Edit Control Word M = Move Constant Data Z Move and Suppress Z.ros = > .! Label '] 1 0 ..... S 1 S 2 3 T X T 1 Print Positions Label 1 Print Positions Punch Positions D = Move Digit Y = Move Zone Clear Accum. Label S- ~ P To To From To From To From From To From From From To K -f---32 33 12 113 114 42 4l 49 4 5 ~6 7 1920 9 10 _29 30 45 4647 16 17 22 23124 26 127 35 36 38 139 40 I I Figure 5 18 Label Summary Punch Column Split E = Edit M = Move Z = Move and Suppress Zeros I I I I I I I I I I I I I I I I I I I I I I I I I~ I I II I I I I I I I I I I N ~lli~ Zlilt - - J __L I I I I I I Converting No-Op Instructions The control card containing the detail no-op instruction (~OOO) may be removed from the FARGO deck and replaced with a control card containing an unconditional branch instruction ]xxx. Or, it may remain in the deck in which case the no-op instruction must be converted to an unconditional branch instruction ~xxx by an instruction in the patch subroutine. The control card containing the total no-op instruction a~:7BB7BB) always remains in the FARGO deck. The nOl-op instruction, therefore, must be converted to an unconditional branch instruction Bxxxbbb by an instruction in the patch subroutine. NOTE: If the 1401 does not have a Multiply-Divide optional feature, the Multiply-Divide Subroutines discussed in the 1401 Reference Manual can be patched into the FARGO program. 1 \V fs\( o 4 oCD ( REPORT DETAIL DATA CARDS TRAILER CARD (PATCH SUBROUTINES c- { ## 0/~~~~~ FARGO PROGRAM AND CONTROL CARDS Codin!1 the Patch Subroutines As previously stated, a patch subroutine must be entered in storage in actual 1401 machine language. It may be written in symbolic language and assembled with an assembly processor as described in IBM 1401 Symoblic Programming Systems, Form C24-1480. To branch back to the main FARGO routine after the subroutine is executed, the last instruction in each patch subroutine must be an unconditional branch instruction. For example, if a detail (Phase 3) no-op instruction (~OOO converted to ~xxx) is in locations 1445-144B as noted in the storage print-out, the last instruction in the subroutine used at this point must branch back to 1449. If a total (Phase 2) no-op instruction (N~BBBBB converted to ~xxxbbb) is in locations 1201-1207 as noted in the storage print-out, the last instruction in the subroutine used at this point must branch back to location 120B. If coded in SPS, the program is assembled after testing the FARGO portion of the job so that the origin address of the subroutine can be determined from the storage print-out. When the object program deck is created by the SPS assembly processor, the first two cards contain instructions to clear storage. These two cards must be removed from the deck. The rest of the object program deck (one instruction per card) can then be loaded directly behind Phase-4 control cards. Or it can first be condensed into multiple instructions per card with a condensing program as described in IBM 1401 Symbolic Programming Systems, Form C241480. An example of a patch subroutine coded in actual machine language is shown in Figure 23-G. Another example of FARGO patching and linkage using SPS is shown in Figure 24. (Phases 1 - 4 ) 1. Combined FARGO Program and FARGO Control Cards 2. Last card in Phase 4 punched # in columns 1 and 2 3. Patch subroutine(s) 4. Trailer card containing instructions to clear the read-in area, and branch to 3314(C14). s. Report Detail Data Cards Figure 6. FARGO with Patch Subroutine Loading the Patch Subroutines All patch subroutines are loaded immediately after the Phase-4 control cards. Normally, the last Phase-4 control card is punched # in column 1 of a blank card. To signal the FARGO program that patch-subroutine instruction cards are to be read into the system after Phase 4 is completed, this same card must also have a # punched in column 2. This causes the program to clear the read-in area (locations I-BO), set a word mark in location 001, read the next card, and then branch to location 001. After the last patch subroutine is loaded, a clearand-branch trailer card must follow to clear the readin area, and branch to location C14 (3314), this being the starting location of the permanent FARGO program. The report detail cards immediately follow the trailer card. The cards are run through the machine in the sequence illustrated in Figure 6. 19 Multiply-Divide Optional Feature If the multiply-divide optional feature is installed in the 1401, direct multiplication and division can be specified with FARGO detail and/or total (Phases 3 and 2) control cards. Before the proper entries can be made in these coding sheets, however, several factors must be considered. Multiplication Whenever FARGO report specifications involve a multiplying operation, the first thing that must be decided is the size of the product to be developed. As explained in the IBM 1401 Data Processing System Reference Manual, A24-1403, this is done by adding 1 to the sum of the number of digits in the multiplier and the multiplicand. Assuming a 3-digit multiplier and a 4digit multiplicand, the size of the product can then be readily determined by the following formula: 3 (multiplier) plus 4 (multiplicand) plus 1 = 8 (size of product). The multiplier may be fixed; that is, not punched in the detail cards but set up as a constant with an identifying label in Phase 1 for later reference in Phases 3 or 2. Or, it may be variable; that is, punched in each detail card or some specific type of card within a control group. A fixed multiplier (example: 125) may be set up as a constant in one of several ways as shown in Figure 7. A variable multiplier may be punched in known columns of all or specific types of detail cards. Multiplicands are always variable and may be punched in known columns of all or specific types of detail cards. Or, they may be developed as a total in an accumulator and identified with an appropriate label. Although any 1-, 2-, or 3-character label may be used to identify an accumulator, many users of F ARGO prefer to use labels corresponding to 407 counters; for example, 2A, 2B, etc., 4A, 4B, etc. Experience has shown that this method of labeling accumulators often simplifies the conversion of report specifications from the 407 to the 1401. Having determined the size of the product, set up a work area in storage for developing and retrieving the product. This is done by making two successive entries on the constants control cards coding-sheet (Phase 1) as shown in Figure 8. CONSTANTS CONTROL CARDS - PHASE C No. ~ Pos. Label 1 2 Column 1 C = Conltant with a word mark; 5 = Constant without a word mark Columnl 2·3 Size of Conltant Word Columnl 4-6 Label to identify Conltant Word Columnl 7·72 Field for punchinG Conltant Word (66 characters maximum) = = = 10 40 15 co 45 I I co Figure 7 CONSTANTS CONTROL CARDS - PHASE Column 1 C C or S No. Pos. Figure 8 20 Label =Conltant with a word mark; 5 =Conltant without a word mark 50 I I I I The first entry, C (constant with a word mark), sets up the three high-order (left-hand) positions of the product work area into which the 3-digit fixed or variable multiplier will be moved later with a T or D control card. The second entry, S (constant without a word mark), sets up the five low-order (right-hand) positions of the product work area, thus establishing an 8-position product work area somewhere in storage. fixed multiplier, however, is still available for subsequent operations from the area labeled 125 or FIX. Following the multiply operation @, another entry moves the product either to print positions and/or to an accumulator identified by a constant label. If the product is to be punctuated, an edit control word is first loaded into the desired print positions. The prodduct is then moved to the same print positions with an E (edit) instruction. Multiplying in Phase 3 with a Fixed Multiplier Multiplying with a fixed multiplier (125) can be spe·· cified flOr all or any specific type of detail card by making the entries in columns 56-68 as shown in Figure 9. The first or second entry? (whichever one is used) zeros (resets) and adds the constant 125 in the three high-order (left-hand) positions of the product area. Entry @ multiplies the 4-digit multiplicand punched in columns 31-34 of the detail card by the fixed multi·· plier (125). When the multiplying operation is completed, the product is in the seven low-order positions of the product area, thus destroying the multiplier. The Multiplying in Phase 3 with a Variable Multiplier Multiplying with a variable multiplier can be specified for all or any specific type of detail card by making the entries in columns 56-68 as shown in Figure 10. Entry? zeros (resets) and adds the variable 3-digit multiplier punched in columns 21-23 of the detail card into the three high-order (MPR) positions of the product area. Entry @ multiplies the 4-digit multiplicand punched in columns 31-34 of the detail card by the variable 3-digit multiplier punched in columns 21-23 of the same card. The product is developed in the same manner as previously described. DETAil CONTROL CARDS - PHASE 3 0 Type al' Detail Card C = Char. Z Zane = iu Card Call. 1 2 3 o " Special.' or 7 pOlition Y I~~I Digit =Mov. Zone ! OX ,xIXIXIX ~X flXlxlX I I = = ''"~ Print POlitionl Po"itl~~ From 3~ = = = 31 ~ 1... Data Card Calumnl From To 363738 34 Print POlltionl 4344 46 47 Data Card Columns Punch ... Posltio~~ To From To 4041 = A Add; S Subtract @ = Multiply; % = Divide ? Zero Add; ! = Zero Subtract D Move Digit; Y = Move Zone M = Move Z = Move and Suppress Zeros E = Edit DETAIL CARD DATA M = Move Z = Move and Suppr... Zerol D Mov. Digit Y Move Zone = = = C 0 B From To From From I P A To 1011 131415 1718 202122 5 6 7 8 2425 2728 I I 0 o =Move (actual) ~ Edit Load Edit Control Word Move Constant Data Move and Suppress Z.ros o Move Digit Y=Move Zone Column Split 1401 Inltruclion XI XIX X 0 E= L= M Z From 4950 To ~.~ 5253 Lobel From To To From -_.---c 5 57 59 60 62 63-65 iM~ _LL _LI I I I I I.L __Ll 1 1 LI I I I I I 1 I I I I I I I I U I I I I I I l L r~~ LL __LL _LL -.l.L_ _L I I I ---LL '-- _LL ~LL LL ~JL LL I I 11 LJ l..l I I 11 I I I I LL 2 LL f-!;)- l~lS 1\'Ul'l~ 1 I LL t-- _LJ~_ r- L1 1 1 L_L I L __ l-.-l_ ~LL 2- LL r---ll FI/IX IMjPI!i I J I I I I I I I I LL LLLLLL ~LL __LJ _ ~ I I I I I-.L I I LL -LL I I I I I I I I I I .~Ll ~ I I 11 I I ~.LL 1 1 J_L LJ_ ~Ol~( _~~I't I I fjl)IT I I I I I I I I Figure 9 DETAil CONTROL CARDS - PHASE 3 0 i U 1 2 3 ~ Special 4 or 7 pOliti on 1401 Instruction (actuol) C 0 Z p Card Call. 1011 Move Digit Y = Move Zone ! From 131415 To 1718 .. o .,x XIXlxlx I~~I o= B A 5 6 7 8 I I E = Edit DETAIL CARD DATA M = Move Z = Move and Suppress Zerol o = Move Digit Y = Move Zone Data Card Print Columnl Posi.tions = = Column Spilt OX XIXU(lX. W-l-- _LL I~_ .~ l~--.l 0 Edil load Edit Control Word Move Constant Data Move and Suppress Zeros o Move Digit Y = Move Zone = Type of Detail Card C - Chaw. Z = Zon .. E= L= M Z Prinl Position. From 20 2122 ~LL From 2425 To 2728 JJ_ --.ll ~Ll Punch Position I From 363738 _4041 _I L_ .J._J I I I I I I I I I I ~L I I I I _J_L I I I I I I I I I I I I I I I I 1 From To 30~3--: 34~ LJ~ ... -11 To To From 4344 4647 A @ ? -- Punch Positi"_1!!From 4950--s253 I I I I I I I I I I Ll I I I I I J 11 LLl- To = Add; S = Subtract = Multiply; % = Divide = Zero Add; ! = Zero Subtract o = Move Digit; Y = Move Zone M = Move Z = Move and Suppress Zeros Data Card Columns ... label From To To From 6263 55 5 57 6566 611 5960 .Ll _ _LL L~8J! ~L2JJ I I '1IPl~ U ~ I I ~Oj.J11 1.>1) 11 I I ~~JI ~LL.LL _-LL I I I I Jl Figure 10 21 area labeled PDT (or any other label chosen by the programmer). For example, in a payroll application, the multiplier might be labeled RTE (rate), the multiplicand HRS (hours), and the product GES (gross earnings). In another application, the multiplier might be labeled UNP (unit price), the multiplicand QTY (quantity), and the product AMT (amount). Multiplying in Phase 2 Multiplying in Phase 2 (total control cards) always involves three labels. One label identifies a fixed- or group-multiplier. A second label identifies an accumulated multiplicand, while a third label identifies the product. In establishing the size of the product, the same rule applies. However, because the multiplicand factor is an accumulated total, the maximum number of digits expected in the multiplicand must be predetermined before setting up a product work area. Having determined the size of the product, make the appropriate C and S entries on the constants control cards coding-sheet (Phase 1) to set up the product work area. During the Phase-3 (detail) portion of the program, a fixed multiplier set up with a constant control card, or a group multiplier punched in a specific detail card within the control group, is moved to the MPR portion of the product work area. The detail multiplicands are accumulated in a storage area labeled, for example, MCD. On any given total level in Phase 2, multiplication is specified by making the entry in columns 6-12 as shown in Figure 11. Entry @ multiplies the accumulated multiplicand labeled MCD (or any other label chosen by the programmer) by the fixed- or group-multiplier moved to the MPR portion of the product work area during Phase 3. The product is developed in the product work Division Whenever FARGO report specifications involve a dividing operation, a work area for accommodating the dividend and developing the quotient and dividendi remainder must be set up in storage with constants control cards in Phase 1. The size of this work area must be equal to the sum of the number of digits in the divisor and dividend, plus 1. Assuming a 3-digit divisor and a 4-digit dividend, the size of the work area can be readily determined by the following formula: 3 (divisor) plus 4 (dividend) plus 1 = B-position work area. Having determined the size of the work area, set up the area in sections to permit addressing specific locations of the quotient, dividend, and dividendi remainder. These sections must be set up in proper sequence, which may vary, depending on the size of the dividend and the divisor. For the example used, the following analysis of the problem illustrates how this sequence is established. TOT Al CONTROL CARDS - PHASE 2 A S @ = Add = Subtract Be~ fore Print T "i > .!l '0 a S P S 1 2 3 K ~ I T I Figure 11 22 ! L M Z Label From 4 .5 16 1 Tix =Load Edit Control Word =Move Constant Data =Move and Suppress Zeros = Multiply % = Divide M = Move ~ "II CJl> I I Label To 9 10 Print Positions 1 From 1211:1 lu ,From 1617 = Move = Move and 1 From 22 23124 Clear Accum. Suppress Zeros From 2t1 127 29 30 D Y Punch Positions Print Positions Label To 1920 Summary Punch Column Split = Edit E M Z To 3233 :1.5 36 P~lr I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I ~ To From :1A I 1 I I Label S- From 1:19 40 1,_ ~- r---- = Move Digit = Move Zone 424:1 To To 45 4647 f--l~- LJ-L I I I I 4~ --W-l I I PROBLEM ANALYSIS III" " II B-position area required for example used. I I I I II I I I Counting from the low-order position of the work area, draw a line to the left of the length of the divisor plus 1. 3 (divisor) plus 1 = 4. Quat. !I LlI!X!X!i ! ! ! ! To the left of this line, a 4-digit quotient is developed. The units position is the address of the quotient upon completion of the divide operation. Dividend IIII Ilxlxlxl~1 The 4-digit dividend with a plus sign in the units position is placed in the loworder positions of the work area with a ZERO and ADD instruction (?). The high-order position of the dividend must be addressed when executing the DIVIDE instruction. L To set up the three sections of the work area in the sequence established by the foregoing analysis, make three entries in the constants control card coding-sheet as shown in Figure 12. Entry C (constant with a word mark) sets up the 4-digit quotient section of the work area. The first entry S (constant without a word mark) sets up the high:-order position of the dividend. This position is addressed when executing the DIVIDE instruction. The second entry S sets up the remaining low-order positions of the work area, thus establishing the 8position work area required for the example used. In some problems, the analysis will show that the quotient area and the dividend area overlap; that is, the high-order position of the dividend extends further to the left than the low-order position of the quotient. Example: 5-digit dividend, 2-digit divisor. Quot. ID/R 1!.lxlxlxlx Olxlxl Quot. Div /Rem +1 + 1~lxlxlx!Olxlxlxl Dividend L The units position of the work area is the address of the dividend/remainder upon completion of the divide operation. With a 3-digit divisor, the dividend/remainder is always less than the divisor. Therefore, the position immediately to the right of the quotient is always zero. I I I Ixlxlxlxlxl In such cases, the work area is set up in four sections as shown in Figure 13. Other variations are presented later in this manual under Half-Adiustments of Products and Quotients. CONSTANTS CONTROL CARDS - PHASE 1 C No. or Pos. S 1 2 Column 1 C Columns 2·3 Columns 4·6 Columns 7·72 LClbel 3 4 6 7 CO I£/- QN IT So I 5 03 10 =Constant with a word mark; 5 =Constant without a word mark =Size of Constant Word =label to identify Constant Word = field for punching Constant Word (66 characters maximum) 15 20 25 45 40 3~ 30 (NOTE: Blanks instead of zeros could be used in columns 7-10 if desired) OIOIOELLU_J~Lli_LLl_1 1 1 1-1 1 1 1 1__L1J __llJLJ__LLLLLU_l 50 LLJJ 1J " V 01 1 1 J)/ I I I LI I I I I I I I I 1-Ll-1 1 1 1 I 11-_1_Ll~_LJ ___Ll_U_LJ I I I 1 I J R. 0 1°1°1 I 1 1 I 1 I 1 I 1 1 1 1 1 1 1 1-1 1 1 1 I 1 1 LUlU~~ 1 I 1 1 I l_LU_J I I 1I 11 1 1 I 1 1 1 1 I 1 1 I I 1 I 11 I I 1 11 1 I 1 I I I I I I I I I I I I I I - Figure 12 CONSTANTS CONTROL CARDS _. PHASE 1 C No. or Pos. S 1 2 3 4 Label 6 7 Column 1 C = Constant with a word mark; S = Constant without a word mark Columns 2·3 = Si:r.e of Constant Word Columns 4·6 = Label to identify Constant Word Columns 7·72 = Field for punching Constant Word (66 characters maximum) 15 25 10 20 30 3~ 40 45 50 This label is never referred to in the program. 3 0 00 OIOIDI I 1111I I 1 I 1 I I I I 1 II LI 1 I 1 LLLU_JlL_I--'-u 1 1 1 1 1 1 1_~_L_l J label addresses the hig4-order position of the dividend when executing the divide instruction. S () , 1> l V 01 I I I IThis I 1 1 I 1 I 1 1 I I 1 1 1 I 11-1 1 I I I 1 1 I 1 1 1 1 I 1 1 U~l_l~~_LLJ label addresses the low-order rsition of theV Ii. 0IOIOLLLLLJ--LLLLL 1 1 1 1 1 1 1-1 1 1 1 1 1 1 I 1 1 1 1 1-1_ C{J fu I I 1 I 1 1 1 1 I 1 1 1 1 1 1 1 I 1 1 I 1 I 1 I 1 1 1 1 I 1 1 1 1 I 1 1 I 1 I 1 I 1 I I 1 1 1 Figure 13 23 entries are made in columns 56-68 as shown in Figure 15. Entry? zeros (resets) and adds the dividend punched in columns 21-24 in the four low-order positions of the work area placing a plus sign in the units position, if the dividend is positive. Entry % addresses the high-order position of the dividend, divides it by the divisor punched in columns 25-27, and develops a 4-digit quotient in the highorder positions of the work area labeled Q NT placing a sign in the units position of the quotient, Dividing in Phase 3 with a Fixed Divisor Assuming that the fixed divisor (3 digits) is set up in storage with a label FIX, and the 4-digit dividend is punched in detail card columns 21-24, the divide instructions are recorded in detail control cards Phase-3 coding-sheet as shown in Figure 14. Entry? zeros (resets) and adds the dividend punched in columns .21-24 in the four low-order positions of the work area placing a plus sign in the units position, if the dividend is positive. Entry % addresses the high-order position of the dividend, divides it by the fixed divisor, and develops a ·4-digit quotient in the high-order positions of the work area labeled QNT. Following the divide operation, another entry moves the quotient to print positions and/or to accumulator identified by a constant label. If the quotient is to be punctuated, an edit control word is first loaded into the desired print positions; the quotient is then moved to the same print positions with an E (edit) instruction. Dividing in Phase 2 Dividing in Phase 2 (total control cards) involves an accumulated factor that may be either the dividend or the divisor. Once the sizes of these factors are known, appropriate C and S entries, as previously described, are made on the constants control cards coding -sheet (Phase 1) to set up the work area. Assume that the accumulated factor developed in Phase 3 (detail portion of the program) under the label AMT (amount) is to be used as the dividend. The divisor is either a fixed- or a group-divisor, properly identified with any label chosen by the programmer. On any given total level in Phase 2, division is specified Dividing in Phase 3 with a Variable Divisor Dividing with a variable divisor can be specified for all or any specific type of detail card. Assuming that the 4-digit dividend and the 3-digit divisor are punched in columns 21-24 and 25-27, respectively, the DETAIL CONTROL CARDS - PHASE 3 Type of Detail Card . 0 C = Char. Z = Zone i t0 C Z P Card Cols. u 1 2 3 D1 o X Xl11X X I I Column Split 1011 1,.b., o = Move Digit Y = Move Zone ! B A 5 6 7 8 IXIXIX i 0 Special 4 or 7 position 1401 Instruction (actual) E - Edit L = Load Edit Control Word M = Move Conltont Data Z = Move and Supprell Zeros o = Move Digit Y = Move Zone From 131415 To From 20 2122 1718 I I I I I....L I I I I I I I 1 I I I I I I I I I I From I I from To 3~ 31 2728 -.U_. _-1.1 I I I J. I I Data Card ColUMn. PUMh POIItIan. Print POlitionl 2425 A = Add; S = Subtract @ = Multiply; % = Divide ? = Zero Add; ! = Zero Subtract 0= Move Digit; Y = Move Zone M = Move Z = Move and Suppress Zeros E=Edit DETAIL CARD DATA M=MaN Z = MaN and Supprell Zeros D=MaN Digit Y= . . . Z_ I I I I I I I I I I ... froM To 33 :u Print Positions 36 738 To 4041 To from 4344 I I I I I I 1 I I I I I I I I I I I I I From 4647 I I J L I I Data Card Columns Punch Positions ... To 55 5 57 From To From 5253 4950 Label I I I I I I ? OIl-II I I I I I I % I I I I I I 01 2 1'1' I I I I I I I I To 65166 6263 5960 I FillX' I All .1>1/J/e I I J)I/IV I I Figure 14 DETAIL CONTROL CARDS - PHASE 3 D Type of Delall Card C = Char. Z = Zone iCard U Col.. 1 23 = Special 4 or 7 polition t 1401 Instruction (actual) 1 Column Split Z~~; D- M D' I Y : M::: 1 Po~;i:n. P Pos;t:n. = ~:~um:: ••• h col t D P:~~:~s Cd' p:';::ns D~:~u~::d ••• Label Z P A B From To From from To From To From To From To From To From To From To 56 78 1011 131415 1718 202122 2425 2728 3C31 3 34 363738 4041 4344 4647 4950 5253 5~5 57 5960 6263 65166 All X'~ l.n.l£'x'-l-iY~e-L-L 11.-1- I I I I I I I I t-D-t'-Xf-IXWf-'IX"-JfLIX-'-llX"-t--t--,-I--,-I-+-I,-~I+--,-I..L.-t-I...LI-LI--+-+--L.I...L I I Figure 15 24 A = Add; S = Subtract @ Multiply; % = Divide ? = Zero Add; ! = Zero Subtract 0 = Move Digit; Y = Move Zone M = Move Z = Move and Suppress Zeros DETAIL CARD DATA Z = Move and Supprell Zeros D = Move Digit Y = Move Zane PI Label I-D-¥x'-'-!ILL D E = Edit M = Move E - Edit L = Load edit Control Word M = Move Constant Data Z M_ and Supprell Zeros D = M_ DIgit y = MaN Z_ I I I I I I I I I I I I I I I I I L ~LL LL.~ qgU. ~l3-llf I I bl/!R I I I I I I I I I I I I I I %~S ()1~17 I I J)IIIV I I I I I I I I I 1 I I I I I I I I I ..1. __ LL .J_.L.. I I I _L....LL I I I I I I I 1 I I I I by making the entries in columns 6-12 as shown in Figure 16. as the divisor. The dividend is either a fixed- or a group-dividend properly identified with any label chosen by the programmer. On any given total level in Phase 2, division is specified by making entries in columns 6-12 as shown in Figure 17. Entry ? zeros (resets) and adds the fixed- or groupdividend (xxx) into the low-order positions of the work area (D/R). Entry % addresses the high-order position of the dividend (DIV), divides it by the accumulated quantity (QTY), and develops the quotient in the highorder positions of the work area labeled QNT. Entry ? zeros (resets) and adds the accumulated amount (AMT) in the low-order positions of the work area (D/R). Entry % addresses the high-order position of the dividend (DIV), divides it by the divisor (xxx), and develops the quotient in the high-order positions of the work area labeled QNT., Assume that the accumulated factor developed in Phase 3 under the label QTY (quantity) is to be used TOTAL CONTROL CARDS - PHASE 2 - - - - - - - - ,---------_________ - y - -_ _ _ _ _ _ _ _ _ _ _ _ _ _- - - ._ _' _ _ _ _-y--_ _- - - , t----.---.-------- A = Add S = Subtract @ = Multiply % = Divide M = Move Be- ":l T fore Print Qj r > ~ "0 '0 I- S P S K '1 :2 3--4 T X l := load Edit Control Word M = Move Constant Data Z := Move and Suppress Zeros 1 label 1 label From 5 16 7 To From 1 ]1 From Positions I I From From I I I I I I From Di~ label Y = Move Zone Positions To Clear Accum. I S t To From f----- To To 29 :iO--32~33s '3638 39 40= --42 43 --4546 47 49 ILLJ~_J.___ . J I I L ___ 1--1 I I 1 LL LJ-c-Di-LJ--~--'--J-Lr---L j _ I l (~~!jta~d~ forar.1Y abel c~osen ty the ~rograitfmer to i( entity the --~ 1 1 To '-9 20--:22 2:ii4---26 27 12 1314 --16 17 - 9 10 T Il) I III iJ t---f'---+-'-+---fL'4~X~~~!..~r- T 1 r-"la-b-e-I-'---'-P'-ri-nt---'---P-u-nc-h--t--D-=-M--o--ve Positions r---.----I ? AIMIT]) I/IR r70 IX I X I Print Summary Punch Column Split E -= Edit M = Move Z == Move and Suppress Zeros 1 ° 1 1 1 ~pl d!v ~o U 1 I I I I I 1 1 1 1 1 ' 1 1 1_ 1 1 1 Figure 16i TOT AL CONTROL CARDS - PHASE 2 BEI- ":l T fOI'. Print .l!! II > ~ S FI S 2 3 ~: I- 1 Add Subtract Multiply Divide Move = = = 1 I ] 0 A= S= @ % M ~ l ;= load Edit Control Word M Move Constant Data Z = Move and Suppress Zero. = Lobo' 1 To FrOM 5 6 7 Print Positions label From 12 113 flo( 9 10 From 1 From 22 23'24 T~ I ?IXIXlX l)VI~ I(f:e ~prl QI ~U:0~, ~iJ ~Ilfl) TX I ~ QITIY bl/iV I I T 1 1 1 1 1 1 I I I I I 1 1 1 1 I To From 21§ 27 la~l standb 'OSjD br tl"r 1 I I I I , 1 1 I I 1 I -cc Move Digit Clear Accum, .----Label Y = M'Dve Zone ~ S I----From To To 38 39 40 __ 4243 35 36 T c---------D To From 3233 29 30 J_ __ 1 I I I -- Punch Positions Print Positions label To 19 20 16 17 Summary Punch Column Split = E Edit M = Move Z = Move and Suppress Zeros 45 4647 mer :0 ide.ll1tify the l~ -- -.J__":'~_ 1 . L 1 1 I : :- I i 49 1 I i I I I I Figure 17 25 Half-Adjustments of Products and Quotients Products and/ or quotients may be half-adjusted (rounded) by adding 5 to the position in the product or quotient immediately to the right of the wanted result. If the position to which the 5 is added stood at 5, 6, 7, 8, or 9, a carry occurs to the units position of the wanted result, thus rounding the product or quotient by adding the carry-over 1. If the position stood at 0, 1, 2, 3, or 4, the carry does not occur and the product or quotient is not adjusted. This procedure is often used to round out results to the nearest cent. The following examples illustrate. Product Adjustment Assume a 4-digit multiplicand (with two decimals) and a 3-digit multiplier (all decimals). EXAl\IPLE Rule /01' placing the decimal point in the product: 34.85 The sum of the number of decimal X .125 positions in the multiplicand and Product 4.3562 the multiplier equals the number of decimal positions in the product. !1 adjust 500 4.36125 Rounded Product Dropped decimals PROBLEM ANALYSIS II II I I I I I MPR t JxlxJxJ :125 IIIII 4-digit multiplicand plus 3-digit multiplier plus 1 = 8-position work area. 3-digit multiplier area (label MPR). PRODUCT t JOJxJxlxJxJxJxlxJ 004.35625 - LUnits position of developed product (label PDT). Upon completion of multiply operation, sign in this position must be moved to the units position of Constant t 500 (label RND). 500 RND with sign must then be added into the 3 low-order positions of the developed product. ADJ '--P....D ....T- Units position of wanted product. JOlxJXlxl:!xlxJ!1 004.36 125 - 26 t.___ Units position of adjusted product (label ADJ). Sign in units position of PDT must be moved to units position of ADJ. To set up the three sections of the B-position work area (MPR, ADJ, PDT), the constant 500 (RND), and an edit control word (ECW) to edit the adjusted product, Rve entries are made in the constants control cards coding-sheet as shown in Figure lB. Characters &CR in the edit control word are not required if the products are always positive. The zero (0) to the left of the decimal point suppresses all insignificant zeros to the left of the decimal point, and the & causes a space between the units position of negative amounts and CR symbols. Examples of edit printing: .09 4.36 15.0B .07 CR B.39 CR 29.06 CR To make proper entries on the coding sheets for this example, base the specifications on the following assumptions. 1. Multiplication is to be accomplished for all detail data cards (Phase 3). 2. Multiplier is punched in columns 21-23, with an X punch in column 23 if negative. 3. :Multiplicand is punched in columns 31-34, with an X punch in column 34 if negative. 4. Adjusted product (positive or n~gative) is to be edited and printed in print positions 101-109, with no sign if positive, and CR. symbols if negative. To accomplish item 4, make the following entries in addition to those required to perform the basic multiplication. 1. Move the plus or minus sign from the units position of the developed product to the units position of the constant RND 500. 2. Add RND with sign to the low-order positions of the developed product (PDT). 3. Move the sign from the units position of PDT to the units position of the adjusted product (ADJ). 4. Load edit control word (ECWbbO.bb&CR) to print positions 101-109. 5. Edit and print ADJ in print positions 101-109. Seven entries are required in various columns of detail control cards (Phase 3) coding-sheet as shown in Figure 19. CONST ANTS CONTROL CARDS - PHASE 1 = C or No. Label SPas. 1 2 Column 1 C :: Constant with a word mark; S Constant without a word mark Columns 2·3 -=:'Size of Constant Word Columns 4·6 :: Label to identify Constant Word Columns 7·72::' Field for punching Constant Word (66 characters maximum) 3 4 6 7 15 10 20 :~:'4f+: 25 C. 03 NIP Ii 0 0101 ~ Ol. 41> I:T 01 0 1 I I S 03 PJ:J T a·dlDI c. (J.3 I~:N b.fi 0101 I I I I I I I I I I I I I I I I 1~21 afj'f" IC~DSMt ~IC.IRI I I I I I I I I I I I I I I I I I I I I 1 C 0'1 E:C. W I i I I 101' I I : 3~ 30 45 40 50 I I I I I ! : : : : : : : : : : : : : : : : : : : :- I I ; I I I I I I I I I I i I I I I I I I I I I I I I I I I I I I I I I i i I I I I i I I I I I I I II I I I I I I I ~ I I I I I I I I I I I I I I I I I I i I I I II i j I I I I I ! ! I I : I I I I I I Figure 18 DETAIL CONTROL CARDS - PHASE 3 0 T,ype of Detail Card C = Char. Z Zone = j Card Call. 1 2 3 t Special 04 or 7 pOliti on 10401 Inltructlon (actual) E- Edit L= Load Edit Control Word M = Move Conltant Data Z = Move and Supprell Zerol o = Move ~igit Y = Move Zone Print POliti on. Column Split o =Move Y 1~~I Digit =Move Znne ! PUrich POlltlon. C 0 B from From From To To From To A Z P 1011 13104 15 202122 5 6 7 8 1718 204 25 3031 3~304 2728 Ox IXI.XIX X t. ilX'IK X I I I I I I I I I I I I I I E = Edit DETAIL CARD DATA M = Move Z = Move and Supprell Zerol o = Move ~igit Y = Move Zone Data Card Print Columnl POliti on. I I ... 3~ I I A - Add; S - Subtract = = = M = Move Z =Move and Supprell Zeros @ Multiply; % = Divide ? == Zero Add; ! Zero Subtract o Move ~igit; Y = Move Zone Data Card Column. Punch POlltlon!.._ ... Label From To To To From To To from from From 37,38 .co 041 0430404 461047 041'150 -~ "5'3_ ~ 5 ~7 5960 62163 65 66 68 j I I I j I I I I I Ll ? PI.2.11 OIJ.13 ~ I I "'!1~ .LL ~l~lL o I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I DI~ yj XI X X I I I I I I I I I I I I I 1 I I I I 1 I I 1 1 1 1 1 J I J_ I ~ I I I I PIDIT ~1"'1l> X 1 1 1 1 1 1 1 1 I I I I I I I I -.J.I I I I I I I I I I I I I IRiNib PlblT I I I I I I I I I I I I I 1 I I I I I I I 1 1 1 I 1 I 1 J I IA 1-1 IY I I XIXIX X I I I I PIDIT AI1>~ 'LOJ Cf I I' I I I I I I I I I I I I 1- I I I I I I 1 I I I I I I I 1 I I I 1 I I I I LL_ r--W·I I I I I I I I I I I I I I I I I I I I_.L,-Ll Dlt IXI)'I..( D Ix D X XIXIX' X- I 1 1 I 1 1 1 I L fl'lw IIOLI D X k'IYIX,X I I I I I I I I EAID!.1' 11°11 '1°19 D I I I I I I I I I I I I I I I I "1.311 0J3j'i I I 1-.-1._ ~-.L ,-'-~ Figure 19 27 Quotient Adjustment Assume a 6-digit dividend (with two decimals) and a 3-digit divisor (with no decimals). EXAMPLE 0034.856 125)4357.12(' 375 ~Extended quotient adjusted to 34.86 by adding 5 to the units position. 607 Rule for placing the decimal point in the quotient: 500 1071 1000 -m (end of actual dividend) 625 870 (dividend extended) 750 120 (end of division) Number of decimals in the dividend minus the number of decimals in the divisor equals the number of decimals in the quotient. PROBLEM ANALYSIS I II JJJJI JJJJ 7-digit extended dividend plus 3digit divisor plus 1 = ll-position work area. Line to the left of the number of digits in the divisor plus 1 locates the extended quotient including sign in the units position. Dividend ± J J J J JxJxJxJxJxJxJ J ~Units position of extended dividend (label EXD). Supplied by moving constant 0 or blank to EXD. Units position of actual dividend (label ACD). To signal end of division, sign in this position resulting from a ZERO AND ADD instruction must be removed and transferred to the units position of extended dividend before executing the divide instruction. &.-..---- High-order position of actual dividend (labcl DIV). This position is addressed when executing the divide operation. 4 3 5 7.1 2 0 L -I JXJxJX,x,x'X,iIO'X'X,i, o0 3 4.8 5 6 0 1 2 0 ± 5 Adj.Quot. Units position of extended quotient (label EXQ). Upon completion of the divide operation, sign in this position must be moved to Constant 5 (RND). RND with sign must then be added to units position of extended quotient. !xlxlxlxlx!~+1+~IOix~xlxl r t 0 3 4.8 28 10 120 Units position of adjusted quotient (label ADQ). Sign in units position of EXQ must be moved to uilits position of ADQ. High-order position of ADQ. To set up the various sections of the work area in the proper sequence and to set up other required constants as analyzed in the foregoing, make entries in the constants control cards coding-sheet as shown in Figure 20. To make the proper entries on the coding sheets for this example, base the specifications on the following assumptions. 1. Division is to be accomplished for all detail data cards (Phase 3). 2. Dividend is punched in columns 31-36, with X punch in column 36 if negative. 3. Divisor is punched in columns 37-39, with X punch in column 39 if negative. 4. Adjusted quotient (positive or negative) is to be edited and printed in print positions 101-111 with no sign if positive and CR symbols if negative. To develop adjusted quotient as specified, make entries in the various columns of the detail control cards (Phase 3) coding-sheet as shown in Figure 21. CONSTANTS CONTROL CARDS - PHASE 1 C No. or SPas. 1 2 Label 3" CO L/. Column 1 C Columns 2-3 Columns 4-6 Columns 7-72 6 7 00 o SOl 1.1 I V S () I oS () I = Constant with a = word mark; S Constant without a word mark Size of Constant Word Label to identify Constant Word Field for punching Constant Word (66 characters maximum) = = = 10 15 20 25 30 35 40 50 45 55 II II Never referred to in the prorram. o o QlQLLL1 __LU_LI I_~I L_U I I I I i lL I ILJ_JU-JJ~I I I I I I I I I LlJ lIigh--oroer posffiOilor actua aivldenT. JI 01 I ~-.LL~ I I I I ILOlJorke~ Josttibn Iot-akjJst~d IqJotlekli-L, lJn _L 1_ L I I. I I I 1._ L J I I j I J AD a 0 I c: X 001 I I I -LLLL1~w~~Josltibn Iot-ekt~nJeJ qhoke~t~ I I I L-L~_J_lJ I I I I I 1 1 1-1 I I I I 1~-l\.U-_LJ~l_l J_l.Ll_J_Ll 1--4U- ~b.&-JA-hl- L LJ Low-order position of actual dividend. , LL L L j 1 J. L I J J 5 03 A C]) QI()lfJ I I 1 I I I I_LU_ I I I I 1-1 I I IL~l I I I II I I I I I I I I I_~L I I I I I low-order position of extended dividend. I S pq..0-=-t-=-/t--f+~ )(-'-!--=-Dt-=-0...L.....I..._---'--~I__L_.L...1-1-l-I----!--I..1-1-L1---J1l--,-1~I--II~II_LLLLLI I I I I I I JiU __LLL1_LU_nLLLL1J1JJ Constant zero to extend dividend. 0 _'+=2,,:+_R--+=-D+-O-L-'I---iI_--I---'----'I--L--L---1I--<-1-I-I_I,-U I I I I I I I 1-1 I I I I-1J I I I U-J--1..LL I I I I I I I I I I I I I--C'-t--t Constant 5 to half-adjust quotient. I--C-+0-t--'+-~.~+N-t--/)F-JT--'----'--I_-'----'--'-I--,---,--_LLLJ-LJ_-LU I I I I_L1-1~LL~~U_ J--LLl I (. II f:C W 01. 1.. 1 / C. 0 I 13 L Ik 1 1 1 I I I I I I I I I I Edit Control Word. I I~ICIRI I I I 1 I Il~1-1~ I 1 1 I I I 1 I I I LLLl I I I I LLLL 1 1 IJ Cc;mstant 1?1"nl.< lJSed to mov~_ blank zone to units pgsition of actual dividend, 1 1 I 1 1 IthUs lc1eah~ thElslglLd.fter !1itidenkLk~tgl11l1 ~~LMqrkL!IoteLvt!tltJ_lerpj 1 L L 1 and Add instruction. I I I I I I I I I I I I I I 1 I I I I 1 I I I I II! I I 1 1 I I 1 1 1 I I I 1 1 1 I I I 1 Figure 20 DET AIL CONTROL CARDS - PHASE 3 0 Type of Detail Card =Char. Z =Zone C + Special 4 or 7 po.ition 1401 In.truction (actual) C 0 iCard A Z P U Col •. 1011 1 2 3 !i 6 7 8 o X XIXIXlx o XXIXIXlx o ;. XI,XIXlX DrX' XI XI 'I 'I XXIXIX X olx XIXIX K oX XIXI,~IX o o X XIXIX ,x o _}( XIKIX lr o 0 I- X XIXIXIX I L Y B 1 t __ L I I)igit =Move Zone From 131415 1718 From To 20 21 22 I I I I I I I I I I I 1 1J LL I I I I I I -'I I I I I I 1 I I I I I I ~ I I LL I I I-.-L _1-1 I I J _L From 2425 2728 3~ 3031 .*. 1 From To From To 363738 34 Data Card Columns 4041 -- From 4344 4647 Positiol1~~ To From 4950 11 LI I I I 1 I I I I I I 1I I I I I I I 11 I I I I I I I I I I I 1 I I I I I I I I I I I I I I I I I I I I I I I I I I I 1 I I I I I I 1I I I I I I 1I I 1 I I I I LL .*. Label From To To From 6263 65'66 68 59 160 To 555 57 5253 .LL -Ll. 1 I I I -.LL ~I 1 I Data Card Columns Punch Print POlitions To Subtract =Multiply; % = Divide = Zero Add; ! = Zero Subtract D = Move Digit; Y = Move Zone M = Move Z = Move and Suppress Zeros ? 1 I b I I I I :z..1~1/) EIXiJI 1 I ? 01.:3'11 0131b I 1 AICID 1 I Y I I I I Ale II> el,xlJ> I I I I I I I I I I I I I I I [1 I I I I I I I I I I 81L1/( AlcP Ll IY I I 01319 I I lJI/IV I I _1 I ~ 01317 f'IXlbI RiNlb I I 1 I J I 'I I I I I RiM]) flXIG I I I I A I I I I I I __ I I I I I I I I J L I I Ll I I I J J I 1 I I I I 1_ ~L I I I I -' I I I 1 I I I I II I I I I I L I-.-L W-L ~ t-~_LL 11___ I I Punch Po.ition. Add; S A @ DATA ~igit Print Po.itions L.b,1 I I .J . J .... I_L I I I I E M Z = = = = = Column Split o =Move = Edit DETAIL CARD =Mave =Move and Suppre.. Zero. o =Move Y = Move Zone E - Edit L Load Edit Contral Word M Mave Con.tant Data Z Move and Suppre.. Zero. o Move Digit Y Move Zone I I I I LL I I _LL ~ _Ll I I L L ElclW 1l~1( I1II1 E AI])~ LL~{ (]ll! I] I I LL ... L l J~LLL L~ I I I I I I ] J~ j I Y flXI~ 41DI~ I I LI I I I I I 1 I I I I -1--' I I I I L LL I I 11_l-lL Figure 21 29 FARGO General Program Operation and 1401 Core-Storage Organization The following table describes in summary the sequence of events occurring during the loading of the combined FARGO program decks and the control cards punched from the coding sheets. Code in Column 77 o 1 2 3 4 5 6 7 30 Program Operation and Core-Storage Organization FARGO Phase 1 program is loaded temporarily into locations 2618-3313. FARGO program is loaded permanently into locations 3314-3699 during Phase 1. Phase-1 control cards coded M, B, C, and S modify the permanent FARGO program, load up to 50 constants into storage beginning with location 333, and set up a table in locations 3700-3999 indicating the location of each constant. FARGO Phase-2 program is loaded temporarily into locations 2306-3313, canceling out the temporary FARGO Phase-1 program. Phase-2 control cards coded T generate total instructions and load them into locations immediately following the constant area. FARGO Phase-3 program is temporarily loaded into locations 2301-3313, canceling out the temporary FARGO Phase-2 program. Phase-3 control cards coded D generate detail instructions and load them into locations immediately following the total instructions. The last instruction generated in Phase 3 will be ~E66. FARGO Phase-4 program is loaded into locations 3023-3313, canceling out a portion of the temporary FARGO Phase-3 program. Phase-4 control cards coded H load the report-heading information into locations immediately following the last BE66 instruction generated in Phase 3. The conStant table in locations 3700-3999 set up during Phase 1 is cleared and the Phase 4 control cards coded F load the field-headings information into this area. Location 2358 (or less) up to location 3313 is available for storing patch subroutines. FARGO Report Examples Register of Earnings ~,"d Deductions This report will be listed on blank paper. Specifications include the following operations: 1. Report and Field Headings with overflow and page numbering. 2. Minor and Intermediate Controls. 3. Group-indication of control fields. 4. Addition and Subtraction (two types of detail data cards). 5. Three minor totals, three intermediate totals and three final totals. All amounts listed and totalprinted will be edited. Report format and completed FARGO coding sheets are shown in Figures 22-A to 22-E. An example of the finished report is shown in Figure 22-F. Remit~lance Statement and Voucher Check Statement and voucher check will be prepared on preprinted inverted forms. Statement portion of form provides for listing of debit and credit accounts payable items (4 types of detail data cards punched 1-4 in column 7), total printing of date, vendor number, and an edited statement total with floating $. Voucher check provides for date, vendor number, check number, and edited check amount with floating $ on' one line. This is followed by a space and 3-line printing of name, address, and city read into storage from a card punched - (II-punch) in column 7. A fourth line address, when required, is read into storage from a trailer address card punched & (I2-punch) in column 7. N arne and address cards precede detail data cards. Specifications include punching of a summary card for both valid and void (overflow) checks. The summary cards, including those punched for void checks, will be used to prepare check registers and for check reconciliation. Valid checks are printed and summary pmiched with FARGO instructions. Void checks are printed and summary punched with instructions from a patching subroutine. Format of Remittance Statement and Voucher Check and completed FARGO coding sheets are shown in Figures 23-A to 23-G. Patch subroutine card format is shown in Figure 23-H. Examples of statements and checks are shown in Figure 23-J. 31 C-) t-o "rj ciQ. c: ~ LINE DESCRIPTION to to ;> CJ:l '0 (!) n s; INTERNATIONAL BUSINESS MACHINES CORPORATION IB'4 III II III 6 Lines Per Inch I I I I I I I I I 1111 I I I I I I CARD TYPES II ~lILJII I I I III I I I I I I III Printing span' I II II II X XI} XXXXIX 111 I I I I I I I I I I I I I I I II III IIII II II II I I I II I II I I I A IJ Cf.I ..... "1 EG I STER F EA NING AND DEDU TIONS - PAGE XXX (!) oq ~ Q., ~ DEDU T I NS E PlO EE E NI GS SERIAL AFTER TAXES DEP X X XXX X XX • XX s· ~ XX .X E P.TO A XXX X IX XX ::! 0- E P. t:J DEPT.T TA S (!) XXX.XX OT L PAY X X. XX .X XXX.X X x. XX XXX.XX XX X X XX. XX XXX.XX X X X.XX • XX ~ N .XX XX X. XX xIX .XX xx ~ 3 R '" I X ~X • XX X XIX .XX X XX X 0- c: o·::!~ Cf.I ~ XXX XXX X E P.T TAL XX X XX • XX XX • X X •X XX .XX XXX.XX XX .XX X X. XX XXX.XX (!) '0 0 I I I I l..IXlXIXI: - 0 "1 ~IBM 1403. Modell-+i I ~ DE PI. TA S F I NA T T LS X Xx • XX XX XX X X X • XX X X. X ::+ X XX •X X X.XX R. XIXI~ 111 I IBM 407. 408, 409 I _ I B M 1403& 1404. Model 2 11 I I I I I I ·1 I I I I I I I I Oed 1\ XIXIXIXlXIX XI) n (!) I / I III II I I'Earnings) o·~::! ~ 11Llll1 I ILL (Opt Serial" Earnings Card (NoX-74) Deduction Card (X-74) FormX2~ Printed in U. S. A~ IBM 40,,!, 408, 409, 1403 AND 1404 PRINTER SPACING CHART FIELD HEADINGS/WORD MARKS II I I I I I III II I IIII II II I I I I I I I I I FORM X24-6556 Printed in U_S_A- IBM REPOR; I iNTERNATiONAL 8USiNESS MACHiNES CORPORATiON ~~Ea.."'''7' -ti-. IBM 1401 DATA PROCESSING SYSTEM FARGO REPORT SPECIFICATIONS • PROGRAM IDENTIFICAnON Phases 4 and 1 DATE PROGRAMMED BY REPORT ,-.11 , s- I r- ( Page~of~_ ~ - PHASE 4 fiE L D Fields 1-4 =Group r---~~----i-'-~Data~~C~a-rd~-r----P~r71.n-t----i-Jr--~--~~~----~------~r-----------'-----------~_r-----------.-----P------~ (InF~icatciondFiMel~s ) Irst ar Inor rint Columns I I~I~~~ Positions Positions M Z =Move =Move and Sequence Number CONTROL BREAK CONTROL CARDS - PHASE 1 B Control field Card Cals. "i .; 1 2 3 Sequence Number Yo from 5 6 8 7778 80 B 1 411 I? I"'~I' first leYeI Control (minor) 1 0 0 B 2 ~II t'I 101'1' Second l_1 Control (intermediate) 1 0 B 3 I I 11 Third Level Control (major) 1 0 0 B 4 J I I I fourth Level Control 1 0 1 0 2 3 0 4 FORM X24-6557 Printed in U.S.A. IBM (!)a,<:.-tu.. -fee; REPORT INTERNATIONAL BUSINESS MACHINES CORPORATION .. ;....... " 1,&,,,,, -t;...,.~ IBM 1401 r-a L , PROGRAMMED BY ~- V C No. or S Pos. DATA PROCESSING SYSTEM FARGO REPORT SPECIFICATIONS • PROGRAM IDENTIFICATION Ph ase 1 Label Sequence Number c-o >E A" o\a\OIOI61 I I I I I I I fiplfYielErrnr Fiunfe, 1 I' 1 1 I 1 I I I 10 6 7 15 20 Ie::. () {-E Al.. °IOld10141 0 1 I I 1 I I I pertol 25 iari 35 30 40 "5 50 ,, (J "1.1> ~J al0lalolo1 01 I 1 j I 1 C. S'N 010/010101 I I I I 1 I 0 r~tufef ~o~ir I d J filiall Df r1jns lCI'1~L I I fiplrielNitl~ Flunfe~ 101 0 10 I 01 01 I I I I I I pertol rfitiYi ( 0 60 65 70 727778 I \ I I I I I I \ \ I I I I I I I I I I I I I I I I I I I I I I 1Ctitjr I I I I I I I I I I I 1 I I I I I I I I I 1 I I I I I I I I , I , 1 , , 1 , , I I I 1 £ , 01 OJ 010 101 I I I I I I I f,plfYf e IDfdycyof EJ. 55 9S C 0 :1 E A3 016101 0 1010 10 1 l J ' J I r1al,Efjinfsr,urer I I I /111 J l 1 1 1 L l l l l I I I I 1 I 1(..0 P~ge ~ of!L CONSTANTS CONTROL CARDS - PHASE 1 3" "'"1:0 , .:L/Illl., Column 1 C = Constant with a word mark; S = Constant without a word mark Columns 2-3 = Size of Constant Word Columns 4-6 = Label to identify Constant Word Columns 7-72 = Field for punching Constant Word (66 characters maximum) 1 2 IL 0 DATE Lill I I I I 1 II L l l l i II I I I I I I I I I I I I I I I I I I 1 1I I I 1 I I I I I I I \:.'\ I I I 1 1 I I I I I I I I I I I I I I I I , I I I I I I I I I I I I I I I I I I: I I I I I I I I I , 1 Il 2 0 1 0 3 0 1 0 " 0 1 0 5 0 1 1 I 1 I 1 1 1 1 I 1 1 I 11 I 1 1 I I I , 1 I 1 J J I I I , I I I I , I 1 I I I 1 0 6 0 1 0 C.io (.N II).. 01 0 10 101 0 10 1 I I I I I I pertol ~e~ ~aYI C10jti I I I II I I I I I 1 I l J I J I 1'1 I I I I I I I 1 J I I l I 1 I I I I J I I I I I Coo 1 Nfl .3 01010101010101 J I I J I fijal l NltJ~Y {~iteI I I I J I 1 I 1 1 1 1 I 1 1 1 1 I 1 1 1 1 I I L 11 11 J 1 1 I 1 1 1 1 I I I I 1 I 1 M' f1J>IJPi. .,1 ! 1 0 J 0 I I I I I I I \ I I 1 I I I I 1 1 1 1 1 I 1 I 1 I 1 'I I I 1 1 1 1 I I 1 1 1 1 I 1 r Ie. I o E 80 InlliriAltl51 II} 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 I· 1 1 1 1 1 1 I 1 1 1 1 I 1 7 0 J 0 8 0 1 0 9 0 1 I o 0 C I I~ .DIEIPln .1716ITIAILISI 1 ' TOfaIII1e,~iCitiFf I I I I I I I I I I I I I I I J I I I I I I I I I I I I II 1 I I I I I I I I I I I I c.. I ).,11: I /II (:1/ iNlA I tl ITla ITIA III S I I I 1 I I J I 1.1 I l I I J I I 1 j I 1 I I I 1 , I 1 , I , I l L 1 J 1 11 1 1 I 1 , L 1 J 1 1 I J J 1 t l o (. I IE c.w 1 1 1 I '101.1 1 1(:le , lWj 1 1I 1 11 1I J I 1 1I I I I I I 1I 1 1I 1 I 11I I I I 1I 1I I I I I I I 1I I , 1 I 1 0 1 I 2 0 J I 3 0 I I I I I I I I I I I I I I I I I I I 1 I I I I 1 I I I I I I I I I I I I I I I I I I I I 1I I I I 1I 1I 1 I I I I I I I 1I 1 1 " f4 foror 1, I I I I I I I i I I I I I I I I I IJ 1 It I II I I I I I I I I I I I IJI I I I 11 I II I I I /1 i I I I I I I I I I I I 11 0 5 0 I I ' I lJll11 1 1 1 I 1 1 1 I I 1 1 1 I I1111 II I I I I111 I II I I 1 II I 1 1 I 1 1 I 1 I I 1 I I I I I I I I 1 1 1I I I I I I I I I I I I I I I I I I I I I I I 1I I I I I 1I I I I I I I I I I I I I I 1I I I I I I I I 1 I I I I I I I I I I 1 7 0 I I I I I I I I I I I I I I I I I I I I I I I I I IJI I I I IJ I l i l l I I I I /1 I LJ 11111111J lJ IJI /1 I I 1 8 0 LLl 11 I 11J I J ' 1'1 I 11111J111 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I II I I I I I I I 1 9 0 1I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 1I I I I I I I I I I I I I I 1 o 1 I I I I I I I I 1 I I I I \ I I I I i \ I I 11 I I I I t i l l I t I I t I I I I I I I 1 I 1 I I I t t I I l i t II I I I I I 1 1 0 1 I I 1 I I 1 1 1 I 1 1 1 1 I I I 1 1 I I 1 I I I 1 I_Ll-LL I I I I I I I I I I 1 I I I I 1 1 L 1 J 1.1 I 1 1 I J I L J I I I I j I I I I I I I I I 1 I 11I1111 I 1 I I I I I I I I I I I I I I I I I I I I I I I I I 1'1 I I I I I I I I 1 I I I I I I 1 I I 1 I I I I I I I I I I I I 1 I 1 I I 1 I L.I I 1 I I I I I I I I I I I I I I I I I I J L 1 1 I I I I I 1 I I I 1- 1 1 1 I I I I 1 I 1 1 6 0 0 FORM )(24-6559 Printed in U.S.A. IBM REPORT~~i~' n: r .. , cr.-(L j INTERNATIONAL BUSINESS MACHINES CORPORATION -J A/. ,it; ,~I_B~ _14~! DA~~ ~RO~~S~I.NG SY~TEM_ FARGO REPORT SPECIFICAliONS f; PROGRAMMED BY • PROGRAM IDENTIFICATION Phase 3 DATE v DElAIL CONTROL CARDS - PHASE 3 E=Edit L = Load Edit Control Word M = Move Constant Data Z Move and Suppress Zeros D = Move Digit Y=Move Zone Print Label Positions E= Edit M = Move Z = Move and Suppress Zeros D = Move Digit Y,-==Mo=ve:,.::Z=oM=-----r--_ _ _,.--_ _----f. Data Card Print Punch Columns Positions Positions = Type of Detail D Card C Char. I lone = = Special 4 or 7 position 1401 Instruction (acrual) Column Split D Y co! J, =Move Digit =Move Zone 1 I 1I Punch Positions iCard *** U Cols. Z P A I From To From From To From To From To From To From To 1 23 56 78 1011 131415 1718 202122 2"25 2728 3C31 3334 ~3738 4041 43 .... 46 ..7 4950 5:253 5!1 D 0I?141Z D ol?14Z I f I I D - oJ?14z I I I I D- (J1714-Z I I II I I I I t.. Elq\'\j "I~IS ol~lS- I I I I E Ol?lt. 01i10 01ld5 DI-:iIS I I 1 A = Add; S = Subtract @ = Multiply; % = Divide ? = Zero Addi ! = Zero Subtract D = Move Digit; Y = Move Zone M = Move L Aftw Z,-=_M_ove_a_nd_S....,:.up.:..,..pre_ss_Ze_ro_s_-I"'-'~ Print I Data Card ~ I--...=.;Co~iu=mn;;;...s-+_-=i.a;,;;;-:be",-i--I&. r--- rS P From To From To P S IC 57 59 60 6263 6.566 6R 69170 71 72 77 U J A *'I*~ bI riO I I .lIAII I SiP I I I I I L Elq~ 01.31S" "141S" I I I I ~ 5 0 1 0 5 0 2 0 I 50 3 0 lSlP I 5 0 4 0 o I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 1 1 I 5 5 0 D I I I I I I I I i I Ii I I Ii i Ii I i I IJ I I II I II I I I I I 5 6 0 I I I I I I I I I I I I I I I I I I I I I I I I I 1 I I I I I 1 I I I I I I I 5 7 0 11 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 5 8 0 I I I I I I I I I I I 1 11 11 1I I I I I I I 1 I I I I I I I I I I I I I I I I 5 9 0 o I I I I I I I I 1I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 5 0 0 o o o o I I I I I I I I I I I I I I I I I I I I I I I I I I I I J 11 J1 1J I I J I I I 1 L I I I I I I I 5 10 D I I I I I I I I I I J I I I I I I I I I I I I I I I I I I I I I I I I I I L I -I I 5 2 0 D I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 5 3 0 I I I I I I I I I I I I I 1 I I I 1 I I I I I I I I I I IJ 11 1I11111L I 5 4-0 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 5 5 0 I I I I I 5 6 0 o D o o o o D o I I I 11 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I J I I I I I I I 1 I 570 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 580 I I I I I I I I I I I I I I I I I I I I l1 I I I I I I I I I I 1 L I I I I I I I 5 1- I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 500 I I I I I I I I I I I 1 1 I I ILl I I I I I I I I I I I I I I I I I I I I I I I 5 9 0 1 0 FORM X24-6558 Printed in U.S.A. IBM REPOR; INTERNATIONAL BUSINESS MACHINES CORPORATION ~i. c;. -..-IA.ub 1-tA.-. ?:O_ L_ PROGRAMMED BY c IBM 1401 DATA PROCESSING SYSTEM v Be- '? T j "0 ~ r--l fore Print T I T I T I T , T J T I 1w~1 Print Positions I A flAil l A~EII l>IEI~ I AiN1Pli tV! PI 1. I I I I I I flAIl. 1w~1 ! I I I I, i ! 1 I j I I I I I I I I I I I I I I I I I I I ! I I 11 I I j I I E'~ 11..IEIAI3 ~ NIP~i"'IPI3 I I 1 I l J J I I L E'I't!p dl/ll i()I~IO I I I I I I I I e: .~ SI--- e: :;) 4 _ '" ~ 0 i I I 5 EIAI' I I I I I 5 ,l)IEI' i I I ; I I SIMAI I I I I I i I I I I if> 3 D 6 0 , , 1 I I I I I I I I I i I I I I I I I ! I I I I I I I I I I I I I I I I I 1 I I I 11 I I I 1 I " I °1'f1,lol~I' L.. E"ICjW TIl. I I I I I Ll>rPIT aI/if 01)...11 Tlj I ! I 1 I I L£ICI\\I OIl. 15 0131S r[3 I 1 L ! ENjPIJ-. 0l'fl' J 1 E [IAI3 I I °12..1~ iD,,sI,1 1 1 "I"'~ °1.5'1' EN,PI3 "14", I I I I I L Fill" bj/l' OI~IJ. I 1 I I I 1 1 1 1 1 I I I I 1 I I I I I I I I I I I I 1 OI~I' ! I I I I S NIPIl. I I I SEIAI.3 I ! S~~IJ I I I I I I I I I I I 11 I L J 1 I Jl 1 I I I I I j I I ! III ~ I I I' I I L I I 1 1 I r24..&~ ~~ 3,{) 8 0 ,)~--/.:.-..R.. /.~~ 3 C 9 0 I 3 f o 0 3 1,1 0 3 Ii I \ 31 "7 -r-~~ rA.~..Lc.. ---./~L/.. .~ ~_ ... ~ ) ~--J~ } F~}-'~ ~. I ~ £..-..~ , 3 3 L ,;:( J ~1 , £ 3 3 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 0 4 0 , t I 31/ '1-.*L! I 2 0 t 13 1 3 J I 5 0 3 () 7 0 J I I ~ ..c.A.._'lI· ~: Sf~ I I ---_-#~-f '> .J~.}-~ , I 5NIPl3 I I I " V 1Ud-~~ i I I i I I i .s ]) IEJ2. I I I I I : I I 1 1 ill " I I j i I I I I \ I I I I I : I I , 11 : I I iJ I "131.sl I I : I I I I LE]Cl~ ()13j£ {)I¢/.S- E'»lE~ OlliS' °1~1~ I I LEICiW I, I 1 I I -SEIAll. I I ' V ~ ~L J 3 () 4 0 ~ ~, SIPI I 1 I I I 30 3 0 J J I I 2 0 1 I I I I i I I (J 3 I I OI~lsf o141~ 3 I I L EICiW 01.1.1.51 DIJ IS" EEIAll 011.1.( 3 0 1 0 I I' i i ! ,~ 80 1~~~,,1,,I L.J I- . . 2~ I I I ,,~ v;-h , I I I I I \ I I I I I I I I 1 I I I I I I I ~~.J~ ~J..a.d~ > ;t:;) _ 73-:.c. n I I I 1 I I I J I 1 1 I TIl. I I I I I I I I I I I 77 78 I I 1 \ I l I I 1 1 I I I I I ! I I L E"ICIW 013 lSi 0141';- E~lfl~ 01.3 is 1 I i I 1 1 I I I I I I I i I I 1 : i I I I ! I I I I I of--¥- Sequence Number COMMENTS u .- a.. a.. I I I I I I I I Tl.l. I I 41~1S I I E MPII iOI~I' al5'"I"-' I I I I I I I I I I I TI~ T Label -,~ "\ E]C.IW Ol.JJS °1'1l.s- E ,)1£1' i O].J 15 alylS I I I L EjCIW 0141' i L) IS'I~ ~ ~IE 12.1) IE I;;' I I I I 1 I I T D = Move Digit Y = Move Zone Punch Positions ~ l EI~IW °1~1.6 01315 E EIAI/IOll..l.S' Til T .----- Print Positions 1. A TlJ Page After Print Clear Accum_ = I I I Tl1 Summary Punch Column Split E = Edit M = Move Z Move and Suppress Zeros I TI~ T~ l:2. ")LL s-7 Lt. l. DATE TOT AL CONTROL CARDS - PHASE 2 L = Load Edit Control Ward M = Move Constant Data Z = Move and Suppress Zeros Label Ph ase 2 w .... S P P To From To From From To From From To From To P P S K To From E * K .. 5 16 7 1920 3233 910 1213 14 1617 22 2324 2930 3536 38 3940 454647 211 27 4243 4950 515253 5415556 S S 1 2 3 T , A= Add S = Subtract @ = Multiply % = Divide M = Move • FARGO REPORT SPECIFICATIONS .I PROGRAM IDENTIFICATION I 5 0 6 1 0 7 0 8 0 9 0 3 o 31 1 0 0 0 0 0 0 REGISTER OF EARNINGS AND DEDUCTIONS - PAGE 0 EMPLOYEI: NO. EARNINGS DEDUCTIONS DEPT. SERIAL AFTER TAXES 0 00120 1:25.75 0 E·~p. 0 TOTALS 00121 EMP.TOTALS 0 00122 125.75 3.75 1. 10 11.00 8.85 125.75 3.75CR 1.10CR 4.00CR 116.90 4.75 4.75 85.00 4.75CR 80.25 108.92 1.25CR 3.00CR .80CR .07CR 103.80 135.00 135.00 0 NET PAY 108.92 0 0 0 0 0 EMP.TOTALS 108.92 1. 25 3.00 .80 .07 5.12 0 DEPT.TOTALS 319.67 18.72 300.95 0 11 23815 EMP.TOTALS 185.00 185.00 .00 185.00 185.00 0 25.00 3.95 28.95 160.00 25.00CR 3.95CR 131.05 0 5.63 10.00 15.63 115.00 5.63CR 10.00CR 99.37 0 0 I 11 0 0 1 2:3816 EMP.TOTALS 11 23905 160.00 160.00 115.00 0 EMP.TOTALS 115.00 0 0 0 0 0 0 0 0 I r- - _1- ._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ . _ _ _ _ _ _ --------- 0 0 0 0 0 I 0 REGISTER OF EARNINGS AND DEDUCTIONS - PAGE EMPLOYEE NO. EARNINGS DEDUCTIONS DEPT. SI:RJAL AFTER TAXES 23919 11 EMP.TOTALS .00 5.00 5.00 DEPT.TOTALS 460.00 49.58 124 01060 192.50 0 EMP.TOTALS 0 0 2 124 01070 EMP.TOTALS 225.00 225.00 410.42 16.50 22.15 3.10 '4,1.75 192.50 16.50CR 22.15CR 3.10CR 150.75 25.00 25.00 225.00 25.00CR 200.00 155.45 0 5.00CR 5.00CR 0 I 10 i_ 0 0 0 0 EMP.TOTALS 155.45 22.00 10.00 32.00 155.45 22.00CR 10.00eR 123.45 0 DEPT. TO'rALS 572.95 98.75 474.20 0 0 FINAL TOTALS 11,355.80 1,004.25 10,351.55 0 124 01080 1'92.50 0 NET PAY - ------- 0 0 0 0 0 0 Figure 22-F. 0 Register of Earnings and Deductions Report 37 Cr.:I Q:) "'l:j . ~~ ~ ta Vl ~ FIElD HEADI~SIWOID MAIKS (FIRST LINE) NAME AND ADDRESS CARD - (l1ponch) in column 7 TRAIlER ADDRESS CARD & (12 punch) in column 7 IMo DafRefer·1 Date SUMMARY CARD C':) ~ I 5' We enclose I cbeck in full ..... 0 o '"1 S" ::s C':) (I) CI':l S' .... (I) 8 ::s .... (I) Sl) ::sp,.. <:: 0 s:: C':) ::r' (I) '"1 (') ::r' (I) C':) Ii'i" + I ;; w - •- :::i :: II +++i+-H---~-=++ • ;; ;; ~ o :COOES: •• ;; ;; i I - : paymeot of I items listed I -•- = ;; = 1 • •• City or Address I I ~IBM 1-403. Modell+! I II I City I II II II II I II II II II I II II I .1 II 3 2 General MaDufacturing CompaDy - o : -- Pri"'" span- LINE) I Amount IXIXOOXIXIXIXI lLJ 1 1181901 I ::sen 8::;: I (THIRD IVeodorlCheckli1 Amount o ; Name or Address REPORT SPECIFICATIONS 5; .... I (SECOND LINE) I (FOURTH LINE) II III I t!j ~ Name VeDdor Vendor (I) fono X24-601U Printed in U. S. A. 6 Lines Per Inch CI':l (I) C':) INTBINATIONAL BUSINESS MACHINES CORPORATION IBM 407, 408, 409, 1403 AND 1404 PRINTER SPACING CHART Invoice ~ Ref. Invoice or ~'riaY Number Claim AmOUDt xx xx xx xx xx xx xx xx I 4 5 ~ 1I2J31415llilll111S 1111121314151611IM Endicott, No Y. Discount or i Allowance u 1 XXXX XX,XXX.XX XX,XXX.XX 3 XXX X 2 XXXX XX.XXX.XX XX,XXX.XX .. XXX X E 112131411 o AMOUNT o XX.xxx.XX XX,XXX.XXXX.XXX.XX XX,XXX.XX- o ~ MASTER REPORT CONTROL CARD - list CONTROL BREAK CONTROL CARD - MillOr Control on Vendor (columns 1-5) DETAIL CONTROL CARDS All - Move Vendor (columns 1-5) to YEN All - Branch to patch subroutine to test for overflow (see Figure 23-G) - Move Name, Address and City to NME, ADD and CTY; space 1 (see NOTE) & Move Trailer Address to TRL; space 1 r1 Edit Inv. Date (IDA); Move & Zero Suppress Reference; Move Code; Edit] L2 Amount (ECl); add Amount to TOT; space 1 r3 Move Zone (-) in column 6 to column 37; Edit Inv. Date, etc. same L4 for codes 1 and 2 asl J o 1.2. Claims I3.DJscomd:s 14., Allow_ I o o - o ... - : 0: 10 I IDEI'ACHCHECK XX/XX/X·X Ixxxxx I BEFORE DEl'OSlTING - __ 1- - - - - 11. bM>ioes - - - - - DIltIe I V~ TOTALPAID ...... SXX.XXX.XX I : 1 '::-:=-=-=--=-=::-'::=--=-=-=--=_ - - - _._ - - - - - - - - - - ___I GENERAL MANUFACTURING COMPANY Endicott, N. Y • 0 __ o Overflow - Execute patch subroutine TOTAL CONTROL CARDS Before priDt skip to carriage tape channel 5 Move Statement and Check Date (SCD) to print area Move & Zero S"PP"'ss Vendor (YEN) to print area Edit (EC2) TOT and print ,..-----------------, - - - FORM X24-6556 Printed in U_S.A. IBM REPOR;,?f ;Ua-,. ~ 1tJ._,d-.,."J!lL,,/"'. .J!!.le.A INTERNATIONAL BUSINESS MACHINES CORPORATION IBM 1401 DATA PROCESSING SYSTEM FARGO REPORT SPECIFICATIONS • PROGRAM IDENTIFICATION Phases 4 and DATE PROGRAMMED BY Page-L-of----b-_ REPORT HEADING CONTROL CARDS - PHASE 4 FIE L D FIE L D 4 Fields 1-4 = Group ~----~----ir-r--D~ma---C~a-M~-.----~P~ri-nt----~~--~----~--r-----------;r.------------.------------~.---D-o-to--C-or-d--.-----P-r-in-t----4 ;;~~a~::dFi~~:r) Columns Positions Columns Positions M = Move Z =Move and Sequence Number CONTROL BREAK CONTROL CARDS - PHASE 1 B Control Field CaM Cols. l .l from 5 6 1 2 3 B 1 Sequence Number io 8 qGljI Q()I!> 7778 First Level Control (minor) 1 0 0 80 1 B 2 I I I I Second Level Control (intermediate) 1 0 0 2 B 3 I I I I ThiM Level Control (major) 1 0 0 3 Fourth Level Control 1 0 0 .. B . 1I I I FORM X24-6557 Printed in U.S.A. IBM 1\ C , 10 I I~ C 1S 2S 20 30 Sequence Number 35 I I I I I I I IEft l Crnl~ rOidltol °ftfnl slacr IbeFier listi Iln~ d 4S 40 50 i1 f~ (,nIOifelite~ I I 60 55 65 70 727717B 1°, Srtj,ejt 1 1 1 I I I I I I I I I 1 I 1 I I I I J 1 I I I I I 1 I I I I I I I I I I 101.1 I I-I IEft l Crnrf rOfdlfof jInfitj t I I e.1 e .J. I 1"1 .. , INiOIII , 1_IEftICfnF~yofd,fcr~otfIIPatdlafoFf~nl4'teF1niardlI I I I I I I I I I I I I I 1 I I I I I I I L I I I I I I I I GI () E I r1 Co .f &,AE JVOIOI~IOIOI I I I I I ,VjnfO, I I I I I I I I I I I I I I 1 I I I I 1 I I I I I I I "Total Paid" counter c.1J 7 r DI 010 101010101 I , I I I I , I I I I I I I I I I I I I I I I I I I I I I I I I I I I' e s6 ij i c qs Co./( N 11'l1517'Sf I I I , I I ~I clt,k iusido, t~1 ~elk 1# ~ol bi r,teld tio if rii 1 t rr I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I<~ii iatf rlianper ~orl eyer jj> I 1 I I I I I I 0 i 1 iDi2 i i sic 80 I I lLLl I I I I I I I I I I I I I I I 1 ! 0 II 0 i 116] 3 0 ! 110 4 I i 0 I !Dj S 0 Ilo! 6 0 I .. I 'Or 7 0 nfart I"Y fO Iijc"e IChfCf Y11fbfr I J I I I I I I I I I , I I I I , I I I L l J ilL 1 1 I I I , I I I I I I e lfe ~ I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I ~J.l/ ('{ME I I I 1 I I LJ J I INii I(fi 1it) 8 0 11 0 9' 0 4blz> I I I I I I I I I I INf~e fr I Ar<¥sr veTo~d lliye ~ I I I I , I I I I I I I I I I I I I I I I I I I I I I I I I I I I I , I I I I I I (...J...O c-nY I I I I I I I I I I ICttyl of tdter 1(~i1 ¥n I I I I I I I I 1 I I I I I I 1 I I I I I , 1 I I I I I I I I I I I I I I I I I I I I C .,l..;l TRIL I I I I I I I I I I ICttyl (l°tfj ltn, Tile~) I I I I I I I I I I I I J 1 1 J I I .1 I j I I I I I I I I I I I I I I I I I I I I I I I 11 f l, Cal~ r) '= :t: 1 C-LA 1 I j I I I I I I I I~bil r I I I . : 0 0 I I I 0 I i I 2 0 3 0 1i e I 1 4 0 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 5 0 I I I I I I I I I I I I I I I I I I I I I IJ I I I I I I I I I I I I I I I I I I I 1·111 I I I I I I I I 1 6 0 I I I I I I I I , I I I I I I I I I , I I I 1'1 I I I I I I I I I I I I I I 1 I I I I I I I I , I I I I I I I I I I I I I I I I 1 7 0 I I I I I I I I , I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 1'1 I I I I 1 I I I I I I I I I I I I I I 1 8 I I I I I I I I I I I I I 1 I I I I I I I I I , I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I II I I I I I I I 1 910 I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I , I I I I I I 1 o I I I I I I I I I I I I I I I I I I I I I , I I I 1'1 I I 1 I I I 11 I I 1 I I I 1 : I i I I I I I I I I I I I I I I I I I i I Iclii ,uti f,urr llii I,iljr ,i4°ritiinl I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 1 I I I I I , I I I I , I I I I I I I I I I I I I I , I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I , I 1I I I I I I I III I I II I I I I I I I I I 1 I I I I I I lLI i I I I I I I I I I I I I I I I I I I I I I I III I I I I I 1 I I til 1 I I 1 1 I I I 1 I I I I I I I I I I I I I I I I I I I I I I I I f I I I I I I~I j I 1 I 1111 I J J I I I I I I I I I I I I I I I I I I I I I , I I 1 I , I I I I I I I I I I I I I I I I I LlJ.--.l-.-LU. I I I I I I I I I I I i 1 1 I 1 J J I I 1 1 J 1 1 I 1 I 1 I I I L -' I I , I '- I I I I I I I I I I I I , I I I I , I I I I I I II I i 1 j 1 1 I I I L ILl 1 0 0 0 '1 FORM X24-6559 Printed in U.S.A. ~ ~ IBM iF: (J ~ 6 d.c.I REPORT~~;tt..cc,J~...;~ PROGRAMMED BY INTERNATIONAL BUSINESS MACHINES CORPORATION lBM 1401 DATA PROCESSING SYSTEM FARGO REPORT SPECIFICATI 0 NS ,l • PROGRAM IDENTIFICATION , Phase 3 DATE /- - /~III>/,"r ; , Page~of~ DelAIL CONTROL CARDS - PHASE 3 0 Type of Detail Card C = Char. Z = Zone • . "& U Card Cols. C 0 Z P Special 4 or 7 position 140 1 Instruction (actual) A B Column Split o= Move ~igit Y = Move Zone t To From E=Edit L = Load Edit Control Word M = Move Constant Data Z = Move and Suppress Zeros o = Move Digit Y=Move Zone I ! Label From Punch Positions Print Positions From A = Add; S = Subtract @ = Multiply; % = Divide ? = Zero Add; ! = Zero Subtract o = Move Digit; Y = Move Zone M= Move Z = Move and Suppress Zeros E=Edit DETAIL CARD DATA M=Mvv. Z = Move and Suppress Zeros o = Move Digit Y=Move Zone From To To I ! Data Card Columns *** From To Print Positions Punch Positions To from From I To -! Data Card 11 ..~~-. From To A- Label from After Print Ii:" I~ To Sequence Number -- S P S P K 1 23 5 6 7 8 1011 131415 1718 202122 2" 25 2728 3C 31 3334 363738 4041 43 44 46 47 4950 5253 5!l1~ 57 5960 6263 65L66 _68 6417071 727778 80 0 IAILIL 5 0 10 I I I I I I I I I I I I II M 01 0 11 "IOli I I VIEW I 1 L II I I I 1 I I 11 I I I I e stora ~e prlD ~Ut, :be ma: n l'AH: ~r m a:na exam (Ongl al cOde e~ll~~~ Idt;~~ IT . [OJ I 5 I I I I M 01)"1'1- °171 3 I I I I M 0131l. 01$""13 I I TIRIL 1 I I I z. z. I I I I I I o 1101011 c... I I I I I 0- 01~17 D~ 01°11 o I 01017 c.. I I I I I I I I I 1 I I I I I I I I 1J LIIIDIAlol/l~61/1 I~IO I I I I Iz VIEIN O~17: i (J1~lf OIS-18 L £1c..1.l. I I I 1 I I I I I I II E1 eld. I I I I I I I 1 I 1I I I I I I I I I I I I I I I ISlf' ETlOIT Ol11cf {JI>IB I I ! I ~ q/(IN 1 I I J 0101/ 01 0 18 I I OI{}I~ DI/13 I ! 1~111'i I I I I 1 I I I ~IAlblb 01/10iol31/i I I MClnv i I I 01/10 01.11'1 1 1 1 01.).15 01313 1 I I r M'TIJ?iL,al/iOIOL~i/i I I I I ....... E * I I I I I I I I I I I P Move date to punch area I I I I I I I I I .1 J I I I I I I P I 1 I I I : ; I I 1 I P I I I I I : I I I I I IF I I I If I I I I I I I I I I I ' I ! ! I I i I I I .511<.1 I I I I 1 I I I I ! I i I I 1 I I I I ! I I I I I I I I I 1 I I I 1 I I I I I I I I I I I I I I I I I I I I 1 I I 1 I 1 1 1 I I I I I I I I I i 1 I ill 1 1 I I I I I I I I I I I 1 I I I I I J I I I I 1 I I 1 \ I I I 1 I I I I 1 1 \ 1 I 1 1 I I I .move name to print area pnnt M9ve address to print area and prInt Move city to print area and print Move trailer address to print area and print IClear trailer address and SkIp to channell 1 ' J I II I I ch~ck total to Fafch ~eaj remove SIgn; c ear to a an punch S&.~ce; I 0 3 2 0 3 0 3 0 3 () 4 0 3 D 5 0 3 0 6 0 3 (> 8 0 3 0 9 0 I o 3 I Move I : I 3 0 1 0 Move check # to punch area I Ir olflO °1.215 STIOIT P 80 77 78 3 () 7 0 I I I 1 I I I . ~~ to-wr.0talPaid' line and move t to pnnt area M9ve and zero suppress venaor to pnnt area Kart "Total Pafi:l' amount ana print Skip to checkj a.~ "1 I to check #j move date to pnnt area Move and zero suppress vendor to pnnt area Mqve and zero suppress check # to pnnt area Edit check total and print Move vendor to punch area 01 J It./- OJllf I I Mi1l0lT I I MIMMIE al'IO i 11 I I I I I P 11 I I I I 1 1 I Sequence Number ¥ -=a -- I 1 I I I I I 1 I I I I I I~ VlEIN . I I I I I I 1 I I I I i II I I I I ~ SIClb COMMENTS 4950 1515253 54155 56 I I I I I P P S II I I Iii P K I I z elKINi O131S" 01.31'1 I I 5 I I I I I I ~ I I I I I I 454647 e 0.0. I I I I I I To f---.-- u I I z1VIE ltV! o~ I I r I 80 I I Ski p to tape_ channel 1 This is the address of the ffirst instruction in Phase 3 that follows BKOl ~ranch back to Location 731. Constant "1" to increase Check Nl1'Inhp.1' fn1' voirlp.rl t"h~l"k~ Constant V -0-1-0 to void overflow checks I NOTE: The following addresses of the various instructions in the patch subroutine were determined from the storage printout after testing the main FARGO program: Address KOl = Starting location (2201) of patch subroutine 337 = Location of low-order position of Vendor Number for compare purposes 371 = Statement and Check Date (label SCD) 376 = Vendor Nwnber (label VEN) 388 = Check Number (label CKN) 500 = Location of first instruction in Phase 2 after control break 731 = Location of instruction in ·Phase· 3 immediately following BKOl I " 7 1 7 k9S 8 7:3:1 I I K. q 'f I II I (2306) S- l«1 1 $112.81 GENERAL MANUFACTURING COMPANY o o o o Treasurer o o Figure 23-J . (2) 47 II:t.. 00 '"%j Qq' C '"I CD to ~ tIj >< IBM INTERNATIONAL BUSINESS MACHINES CORPORATION FORM X24·1152 PRINTED IN U.SA IBM 1401 SYMBOLIC PROGRAMMING SYSTEM CODING SHEET Program Page No. ~ I Date _ _ _ __ Programmed by of _ _ __ 2 Identifi cation 80 76 III :3 ~ (;) 0 ..... '"%j >!Xl 0 0 (A) OPERAND LINE COUNT LABEL 3 5 6 7 8 I 10 ~ o 2 0 11: s·:r' o 3 0 1.Jf- III o 4 0 13 14 L 'i:j Ex A,M,? , ::s s·t""I 33 L,E: Q,F, 6 0 o R~G ~ o 7 0 B ~ o 8 0 OQ o 9 0 U':J 'i:j I 0 0 I I 0 I 2 0 ~ III s· til sn I ,3 0 I 4 0 I 5 0 I 16 0 I 7 0 I 8 0 I 9 0 200 NOTES: I I I I I I I I o I I I () , B I T,P A T,C ,fl I , I I , , I I IB, : I I I I I I , I I I , , i I I I I I I , I I 2. Vii E ,N~.D ,3 3 I If I I I I I I I I I I , -" I I I , I I I I I I I I I I I I I I f I I I I. I I I I ) I I I I I I I I I I I , I I I I .1 • D P,A T,L H IT,D i T. c.. H, P (J. J lv' T.!-.1...----L.-...L.'--I .1"0 ,T,P,A,TL,H l I 1<..5 T ,Hi? IE ,E. l3 L A ,N, INS Tl OPERATION I I I I I I I I I I I I , , I 'I ., c. L E ,A ,R. • A tv D I I 'I B R. 4 I • I I , IV C.I-I Entry 040 -- ORG 1445 specifies the location of ~ooo (detad No-Op) in the FARGO generated program. Entry 050 -- B DPATCH will be converted during assembly to an actual machine language instruction (in this case ,!!MOO) and loaded over ~OOO in 1445-1448. Entry 060 -- ORG 1201 specifies the location of N888888 (total No-Op) in the FARGO generated program. Entry (J70 -- B TPATCH will be converted during assembly to an actual machine language instruction and loaded over ~88 followed by three blanks (entry 080). Entry 090 -- In this example, the patch area begins in location 2400 converted to MOO during assembly. The last instruction in each subroutine must branch back to the proper point m,1449 and ~1208) in the FARGO generated program. Entry 200 -- The END card must branch back to 3314 to the first card read instruction of FARGO. FORM X24-6559 Printed in U.S.A. ~ ~O IBM (i! to ... ~ INTERNATIONAL BUSINESS MACHINES CORPORATION ~ REPORT _ _ _ _ _ _ _ _ _ _ _ _ __ IBM 1401 DATA PROCESSING SYSTE'.-\ FARGO REPORT SPECIFICATIONS 5°~ g. Type of Detail Card 0 p,. 0 1-4 p,. C = Charo ('D Z=Zone a; II ::s 50 ;a ('D {I> a- t Special 4 or 7 position 1401 Instruction {actual} Column Split o = Move Digit Y=Move Zone l 0 I 1 LJ I 0 I I I I 1 I I I I I I I I I 5 0 1 0 1 1 I I I I I 1 I I I I I I I I I I I I I 5 2 0 OIDI~ I I I I 1 I I I I I I I ~~o.. ~ lin cfhj f1 rOI tc n 6~ I I I OltlO I I I I I I I I I I I I I I I I I I I 5 rt 3 0 I I I I I I I I I I I I I I I I I I I I I 5 4 0 1 1 I I 1 I I I I i 1 I 1 J I 1I 11 I I I 5 5 0 I I I I I I I I I I I I I I I I I I I I I I I 5 6 0 I I I I I I I I I I I I I I I I I I I I I 5 7 0 I I I I I I I I I 1 I 1 1 I 1 I I I I I 1 I 5 8 0 11 1 1 1 1 1 1 1 1 1 1 I 1 I 1 I 1 I 1 I 1 1 5 9 0 ~ ::r' 01.. 01"1'- I!. I I I I- i .1 I I 03 °lolbe I I I I I t I I 0 0101& ~ I I I I I I I I OJ 0101" C. I I I I I I I I I I I I I\) Qi:i0 1-4 {I> 01( 0101" oL t>IDlb e.. 0- 50 n g.. c:: § 0 0101' to c I I 1 -I I 1 1 1 I 1 I I I I I I I I I I I I 1 I r I I rIm f11 ill clli In 16'1 :ri °18~) (2 ill colum 6 In 1, l:ri oX80) I I I I i I I I 1 6 °18~) In 1 '1 :ri I ' l l Pl I k in C( X~Ol) fbIlaD I I Iumn , INI I I (1 in colum X ~O~ I r I I I ~ I iD f', 6 1 l In 1, 1:x 8~) 1 ill cil,m n 16, I :x 89) I f2 iIl cll Pl aD k I I I I I I I I fbll fnlc( I I I I 1 1 1 1 I I I 1 111 1 1 I I I I I I I I 1 I 1 I I I I I I I I I I I j I 5 o ' IX~O I I 1 1 I I I I I 1 I I I 1 1 1 I I I I II I 5 1 0 1 I 1 I 1 I 1 I 1 I I I I 1 I I I I I 1 I I I I I I 5 2 0 I I I I I IL I 1 I I I I I 5 3 0 I I I I I I I I I I I I I 5 4 0 I I I I 0 0 0 1 1 I 1 I 1 1.1 I I I I I I I I I I I 80 I I ::s 0 r---r- 1J I I ::s('D ll- Label I 1 I I c:: ::s Sequence Number 1 1 I I '"d c 1 1 I I n ::r' ('D p,. Columns Data Card Columns Punch Positions After Print I I t tj -~~ Print Positions ~ I I o J OIDI' ::;: I Punch Positions Print Positions 0:- L I a ('D I~~ A = Add; S = Subtract @ = Multiply; % = ~ivide ? = Zero Add; ! = Zero Subtract o = Move ~igit; Y = Move Zone M = Move Z = Move and Suppress Zeros E=Edit DETAIL CARD DATA M=Move Z = Move and Svppress Zeros o = Move Digit Y=Move Zone 1 I I I n {I> E=Edit L = Load Edit Control Word M = Move Constant Data Z = Move and Suppress Zeros O=Move ~igit Y=Move Zone S P *** *"'* 1: Card C 0 B From To To FrOill To From A From FrOill To To p S K Z P From To From From To To From V Colso 1011 131415 1718 202122 3~ 34 6263 5 6 7 8 2425 3031 36~7 38 4344 4950 .5253 5.!i ISj 57 6566 68 6~ 70 71 727778 1 2 3 4041 5960 27128 46 47 °l~ AILIL I\) of DETAil CONTROL CARDS - PHASE 3 ('D OC! I-j Page DATE ~== '< PROGRAM iDENTiFiCATiON Phase 3 PROGRAMMED BY >1\) ::s 8 o't::l g.cr 0 ..., • I I I I 1 I I 1 1 I 1 I I I I I I I I L I I I I I I I I I I I I I 1 I I I I I I I I I I I I I I 1 I I 1 I 1 I I I i I I I I I I I I I 1 I I 1 I I I I I 1 I I I I I I I I I 1 I I I I I 1 I I 1 I I 1 I 1 I I I I 51 I 0 I 5 0 I\) ::sp,. 0 I 1 I 1 1 1 1 1 1 1 I 1 ::s ~ .-.. 0 0 ~ ~ '"d c:: ::s go 0 0 0 ~ 1 1 1 I 1 1 1 1 1 1 1 1 1 I 1 I 1 1 1 1 I I I 1 I I 1 5 6 0 I I\) 1 1 J I I I 11 I I 1 1 1 I I 1 I I 1 I 1 1 I I I I I 1 I I I I 1 I I I 1 I I 5 7 0 8 0 I I I I 1 I I I I I I I I I I I I : I I 11 1 I I I I I I I I I I I I I I I I I I I I 5 I I . I I 1 I 1 I ' I I -1 I I I 1 1 1 I I I I I I I I I I I 1 I I . I 1 I I I I I I I I I 5 9 0 1 I ill 1 I I I 1 I I 1 1 I I I ; I I 1 1 I I I I I I 1 I I I 1 1 I 1 1 1 1 I ; I I 1 5 o I I I I I I I I I I I I I I I I I ' I I I I I I I I I I I I I I I I I I I I I I I I I I 5 11 0 i 0 Index Automatic-Carriage-Control Operation ................................ 15 No-Op Control Cards .................................................... Coding Sheets ........................................................................ Coding the Patch Subroutines ................................................ Constants Control Cards ........................................................ Control-Break Control Cards ................................................ Converting No-Op Instructions .............................................. 8 19 11 10 19 Operating Instructions ............................................................ 16 Overflow .......................................................................... 10, 46 Detail Control Cards ............................................................ Detail No-Op Control Cards ................................................ Dividing in Phase 2 ................................................................ Dividing in Phase 3 with a fixed Divisor ............................ Dividing in Phase 3 with a Variable Divisor ........................ Division .................................................................................... 11 17 24 24 24 22 Example method of identifying types of cards when a digit is punched in one column and an X in another ............................................................................ Example of FARGO patching and linkage using SPS .... Examples of Card-Type Coding ........................................ Examples of Report Printing ................................ 37, 46, 49 48 12 47 FARGO General Program Operation and 1401 CoreStorage Organization .................................................... FARGO Report Examples .................................................... Field-Headings Control Cards .............................................. 30 31 8 General Description ................................................................ 6 Group Indication ................................................ 10, 32, 33, 37 Half-Adjustments of Products and Quotients .................... Horizontal Method of Total Printing .................................... 26 13 Introduction ............................................................................ 5 Inverted Forms ........................................................ 31, 46, 47 Loading the Patch Subroutines ............................................ 19 Master-Report Control Card ................................................ 10 Multiplication ........................................................................ 20 Multiply-Divide Optional Feature ........................................ 20 Multiplying in Phase 2 ............................................................ 22 Multiplying in Phase 3 with a Fixed Multiplier .............. 21 Multiplying in Phase 2 .......................................................... 22 Multiplying in phase 3 with a Variable Multiplier .......... 21 50 17, 18 Page Numbering .................................................................... 10 Patch Subroutine Card Format ............................................ 45 Patch Subroutine for Remittance Statement and Voucher Check ................................................................................ 44 Patching .................................................................................. 17 Phase 1 (Form No. X24-6556) ............................................ 10 Phase 1 (Form No. X24-6557) ............................................ 11 Phase 2 (Form No. X24-6558) ............................................ 13 Phase 3 (Form No. X24-6559) ............................................ 11 Phase 4 (Form No. X24-6556) ............................................ 8 Problem Analysis-Division .................................................. 23 Problem Analysis-Product Adjustment .............................. 26 Problem Analysi'>-Quotient Adjustment ............................ 28 Product Adjustment ................................................................ 26 Program Halts ........................................................................ 10 Quotient Adjustment .............................................................. 28 Register of Earnings and Deductions ............................ 31, Remittance Statement and Voucher Check ............ 31, 46, Report Specifications .................................................. 6, 32, Report-Heading Control Cards .............................................. Rounding Products and Quotients ........................................ Rules-Detail Control Cards ........................................ 11, Rules-Field-Headings Control Cards .................................. Rules-Report-Heading Control Cards ................................ Rules-Total Control Cards .................................................. 37 47 38 8 26 13 8 8 14 Specifications for Register of Earnings and Deductions Report .............................................................................. Specifications for Remittance Statement and Voucher Check ................................................................................ Split-Control Fields ................................................................ 32 38 10 Total Control Cards .............................................................. Total No-Op Control Cards .................................................. Total Printing .......................................................................... 13 18 13 Vertical Method of Total Printing ...................................... 13 READER'S COMMENT FORM FARGO for IBM 1401 Form C24-1464-3 • Your comments, accompanied by answers to the following questions, help us produce better publications for your use. If your answer to a question is "No" or requires qualification, please explain in the space provided below. Comments and suggestions become the property of IBM. Yes No • Does this publication meet your needs? D D • Did you find the material: Easy to read and understand? D D Organized for convenient use? D D Complete? D D Well illustrated? D D Written for your technical level? D D • What is your occupation? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ • How do you use this publication? As an instructor in a class? D As an introduction to the subject? D For advanced knowledge of the subject? D As a student in a class? 0 For information about operating procedures? D As a reference manual? D Other • Please give specific page and line references with your comments when appropriate. If you wish a reply, be sure to include your name and address. COMMENTS: • Thank you for your cooperation. No postage necessary if mailed in the U.S.A. C24-1464-3 fold fold FIRST CLASS PERMIT NO. 387 ROCHESTER, MINN. BUSINESS REPLY MAIL NO POSTAGE NECESSARY IF MAILED IN THE UNITED STATES POSTAGE WILL BE PAID BY ••• IBM Corporation Systems Development Division Development Laboratory Rochester, Minnesota 55901 ...... ,J:>. o ...... Attention: Programming Publications, Dept. 425 fold fold () N t ...... ,J:>. 0\ ,J:>. I OJ TIrn~
Source Exif Data:File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2003:08:20 00:18:27-07:00 Modify Date : 2009:09:01 07:32:57-07:00 Metadata Date : 2009:09:01 07:32:57-07:00 Producer : Adobe Acrobat 9.13 Paper Capture Plug-in Format : application/pdf Document ID : uuid:ac2ebd67-a053-4f9d-92f0-b353a6fb787f Instance ID : uuid:45b50f5a-bc6e-4f09-919b-3ba3b1ef1137 Page Layout : SinglePage Page Mode : UseOutlines Page Count : 53EXIF Metadata provided by EXIF.tools