How is it possible to jam a virtual card reader?

Raymond Chen

Back in the day, I supported a time-sharing system known as VM/CMS. Each user signed into the system got their own virtual machine, with virtual hardware devices, a virtual card reader, a virtual card punch, and a virtual printer.

Okay great, you have a virtual card reader. How do you load virtual cards into your virtual card reader? And why would you even do that?

In the days of physical cards, you saved a file by creating a deck of punch cards. And to transfer that file to someone, you gave them the deck of cards. That person then turned on their system and put the punch cards in the card reader to load the file.

The virtual card punch and virtual card reader do the same thing, just without consuming any physical cards.

  • The virtual card punch is how you send files to another person. This eventually became overloaded as the way you send an email message.
  • The virtual card reader is where incoming files arrive, such as the output of jobs you have submitted. It’s also where incoming email sits, waiting to be read.¹
  • The virtual printer is, well, it’s a printer. Jobs sent to the virtual printer go to an actual printer, and you can pick up the results from the print room.

The command to check for email was Q RDR: The Query Reader command checked if there was anything in your virtual card reader. If so, then you got mail.

One day, we got a trouble report with an error message nobody had ever seen before: Card reader jammed.

How is it possible to jam a virtual card reader? Did you feed it a bent virtual card?

I was ending my shift and didn’t get to stick around for the resolution. I later learned that one of my colleagues dug deep into his memory and found some information in the manuals to resolve the problem.

I wonder if he virtually turned it off and on again.

Bonus chatter: Back before VM/CMS, the punch cards were real. I started programming just as punch cards were dying out, but I recall that during the hot summer months, one silly trick to cool off was to go to the service window in the computer room and submit a small job of a few dozen cards. The operators would open the window to pick up the deck, and during that time, you got a brief blast of cool air from the computer room.³

¹ Cards in your reader don’t count against your storage quota, so a common trick when you ran out of quota was to email a file to yourself, to give yourself some breathing room while you cleared up some space. You wanted to pull the file out soon, though, because the system would expire old card decks.²

² I guess you could read cards out of your punch, and then immediately send them back to yourself, thereby resetting the expiration date. But this was a high-risk maneuver, since one false step could cause you to lose your files.

³ When the job was finished, they would open the service window to return the deck, along with the printout of the job results. However, you couldn’t use this to sneak a second blast of cool air because you didn’t know whose job was coming out. You couldn’t just hang out right in front of the window, because the operators would think you were trying to submit a job. The convention was that if you were waiting for a job, you stood a small but respectful distance from the window so as not to confuse the operators. Close enough that you could get a small amount of cool air, but not so close that the operators would think that you are submitting a job.