I had several boxes of punch cards from the early- to mid-70s, but I threw them out circa 1990 because the printed text at the top had faded away. I regret that now. I have only one punch card left, made at the Computer History Museum in 1986, back when it was still in Boston.
Back in the day, AT&T and other companies sent a punch card along with their bills. You were supposed to mail the card back with your payment. My dad started receiving credit card bills for $0.00. He tried several times to get this fixed, to no avail. I was an undergrad at the time. I told him to send me the punch card that came with the bill. I would alter it and send it back to him. He was then to write an explanation of the billing problem on the back of the card and then mail it to the credit card company. My alteration was to make an invalid overpunch so that the card could not be read. The $0.00 bills stopped coming.
I later found out the cause of the $0.00 problem. It comes from use in a COBOL program of a statement such as:
IF BALANCE IS NEGATIVE THEN <print bill>
Commercial financial information is commonly stored using scaled packed decimal numbers. Packed decimal has a separate sign so there are two zero values--zero with positive sign and zero with negative sign. In this case, somehow the account balance was recorded as negative zero, and that tests TRUE for IS NEGATIVE. The proper way to code this is:
IF BALANCE IS LESS THAN ZERO THEN <print bill>
-Paul W.