Punch Card Accounting Machine Help

This is currently a minimal implementation of the IBM 402/403 Accounting machines. The START, STOP, and FINAL TOTAL buttons should function as on original equipment, with the exception that FINAL TOTAL does not requires simultaneous pressing of START. The run rate is set to 20 cards per second.

The input hopper is located in the upper left. Output stacker is located directly below the hopper. The hopper and stacker behave in the normal fashion, except that the stacker contents cannot be saved and blank cards cannot be placed in the hopper.

The program panel is implemented as a properties file. currently, this file must be editted external from the simulation. The file contains lines of the format "name = value". Referencing the original equipment programming panel, the following are supported:

GroupHubsPurposeProperty Syntax
FIRST READING1-80Card Cols 1-801.1 - 1.80
SECOND READING1-80Card Cols 1-802.1 - 2.80
THIRD READING1-80Card Cols 1-803.1 - 3.80
COUNTER EXIT/ENTRY(1)Counters 2A - 8D2a1 - 8d8
ALPHAMERICAL PRINT1-43Print Cols 1-43a1 - a43
NUMERICAL PRINT1-45Print Cols 44-88n1 - n45
COMPARING ENTRY(1)Comparatorc1a - c20a
c1b - c20b
COMPARING EXIT(1)Comparator (2)c1x - c20x
COUNTER CONTROL2A - 8DCounters2ap - 8dp (PLUS)
2am - 8dm (MINUS)
COUNTER CARRY2A - 8DCounter carry (4)2ay - 8dy
NEGATIVE BALANCE2A - 8DCounter neg. bal. (4)2an - 8dn
TRANSFER PLUS/MINUS2A - 8DCounter transfer(4)2ar+ - 8dr+
2ar- - 8dr-
S.P. X CTRL PLUS/MINUS2A - 8DCounter Summ. Punch X(4)2ax+ - 8dx+
2ax- - 8dx-
TOTAL2A - 8DCounter print/reset2at - 8dt
CR SYMBOL2A - 8DCredit symbol printing2ac - 8dc
PILOT SELECTORS X PUX pick-ups1x - s11x
D PUdigit pick-ups1d - s11d
I PUimmediate pick-ups1i - s11i
Ttransfer positions1t1 - s11tN
Nnormal positions1n1 - s11nN
Ccommon positions1c1 - s11cN
COL SPLIT X11 zone punchescs1x - cs4x
R12 zone punchescs1r - cs4r
0-90-9 digit punchescs1d - cs10d
Ccommoncs1c - cs10c
* SYMBOLF,1,2,3,ALLAsterisk printingaster{f,1,2,3,all}
TOTAL PROGRAMMINOR,INTER,MAJORGrouping cycles{minor,inter,major}
ALL CYCLES(1)All cyclesall
CARD CYCLES(1)Card cyclescards
FIRST CDMI,IN,MA,MBFirst Card cycles{fcmi,fcin,fcma,fcmb}
FINAL TOTALFinal Total cyclefinal
S.P. CONTROL ENTRYSummary Punch Controlsp1 - sp12
LISTPrint entrylist
SPACE CTRLS,1,2,3Print spacing{spsupp,space1,space2,space3}
Zero Suppression(n/a)Print field zero suppression (3)zero

Notes:
(1) Hubs are not labeled, implied that left-most is "1" if relavent.
(2) Comparator exits are chained automatically based on entry field(s).
(3) Added to property for ALPHAMERICAL/NUMERICAL PRINT entry.
(4) Item is either the EXIT or corresponding ENTRY depending on context.

Property names are expected to represent ENTRY hubs, and generally do not contain a width (field width is determined by source(s)).

In the property value, a set of hubs (a field) may be designated by adding an asterisk and the number of hubs in the field. It is generally expected that all sets of hubs in a given property will be the same width, and that width determines the property width.

Single items (cycles, controls, etc) must not have a field width specified.

Selectors do not have a limit on positions (contact sets). N may be any practical number (CO-SELECTORS are not needed). The position numbers should start at "1" and be kept contiguous. Keep in mind that related C, N, and T contacts must have the same position number.

Column Splits are bi-directional, similar to Selector positions (contacts).

Example 1: comparing a field (current and previous card). Field starts at card column 10 and is 4 columns wide. Compare triggers "minor" group.

Example 2: Add field from card column 49, 5 columns wide, to counter 8B and print result into numeric columns 11-18 with zero suppression. Print/reset on minor group change. Note how the 5-col field is positioned to the lower part of the 8-digit counter.

Example 3: Setting a counter for data-controlled plus/minus and negative balances. Card column 54 contains an X punch ('-') for negative data. Card columns 40-47 contain the numerical data.