Перфокарта — это не просто кусок картона с дырочками, а первый в истории массовый носитель машинно-читаемой информации. Понимание её ёмкости в байтах необходимо для историков вычислительной техники, архивистов, занимающихся оцифровкой наследия, и энтузиастов ретро-компьютинга. В этой статье мы разберём, почему единого числа не существует, и как именно кодировка определяет объём.

Многие ожидают увидеть одну цифру, но реальность сложнее: стандартная перфокарта IBM может хранить от 80 до 160 байт в зависимости от режима записи. Ниже мы подробно разберём каждый формат, покажем таблицу сравнения и дадим инструменты для самостоятельного расчёта.

📊 Какой режим перфокарт вам наиболее интересен для изучения?
Текстовый (Hollerith/BCD)
Бинарный (Column Binary)
Нестандартные форматы (90-колонки, Round hole)
Исторический контекст применения

Стандартные размеры и физические параметры

Классическая перфокарта IBM 5081 (часто называемая просто «IBM card» или «Hollerith card») имеет размеры 7-3/8 × 3-1/4 дюйма (187,325 × 82,55 мм). Поле для перфорации разделяется на 80 колонок и 12 строк. Верхние две строки (12 и 11) — зоновые, используются для кодировки знаков в текстовом режиме; строки 0–9 — числовые.

Существовали и другие стандарты: Remington Rand (90 колонок, круглые отверстия), Powers-Samas (различные форматы), а также карты с 40, 45, 65 колонками для специализированных задач. Однако именно 80-колоночный стандарт IBM стал де-факто мировой нормой к 1960-м годам.

  • 📏 Физические размеры: 187,325 × 82,55 мм
  • 📊 Колонки: 80 (стандарт IBM)
  • 🔢 Строки: 12 (2 зоновые + 10 числовых)
  • 📦 Материал: плотный картон 0,18 мм
⚠️ Внимание: не путайте физические строки с битовым разрядом. В бинарном режиме все 12 строк равноправны и несут данные.

Текстовый режим: 80 байт на карту

В текстовом режиме (Hollerith code, BCDIC, EBCDIC) одна колонка кодирует один символ. Комбинация дыр в зоновых (12, 11, 0) и числовых (1–9) строках задаёт букву, цифру или спецзнак. Таким образом, одна карта вмещает ровно 80 байт (80 символов по 8 бит в расширенных кодировках или 6 бит в ранних BCD).

Это ограничение наложило отпечаток на архитектуру ранних систем: длина строки в FORTRAN (72 значащих символа + 8 для нумерации), ширина терминала 80 колонок, формат логов и даже современные рекомендации по стилю кода (PEP 8, Linux kernel) — всё это эхо перфокартной эпохи.

Для архивистов важно: при оцифровке в текстовый файл каждая карта даёт строку длиной 80 байт (без перевода строки). Если вы видите файл, где длина строки кратна 80 — скорее всего, это образ перфокартного набора.

💡

Текстовый режим — 80 байт/карта. Это исторический стандарт, определивший 80-символьную ширину экрана и строки кода на десятилетия вперёд.

Бинарный режим: до 120 байт на карту

В режиме Column Binary (или «binary card») зоновые строки теряют специальное значение. Каждая из 80 колонок хранит 12 бит (по одному биту на строку). Итого: 80 × 12 = 960 бит = 120 байт. Это максимальная теоретическая плотность для стандартной карты без сжатия.

На практике часто использовали упаковку: два 12-битных слова записывали в три байта (12+12=24 бита = 3 байта). Тогда 80 колонок давали 80 × 1,5 = 120 байт «чистых» данных. Некоторые системы (например, IBM 1130) использовали только 10 нижних строк для 10-битных слов, получая 100 байт.

Бинарный режим требовал специальных перфораторов (IBM 523, IBM 1442) и считывателей, способных игнорировать проверку чётности, заложенную в текстовые коды. Любая пыль или деформация карты в этом режиме фатальна: ошибка в одном бите портит всё машинное слово.

⚠️ Внимание: при работе с бинарными образами всегда проверяйте контрольные суммы. Потеря одного отверстия меняет значение 12-битного слова непредсказуемо.
  • 💾 Column Binary: 12 бит/колонка → 120 байт/карта
  • 🔧 10-битный режим (IBM 1130): 100 байт/карта
  • 📦 Упаковка 2 слова в 3 байта: стандарт обмена данными
  • ⚙️ Требует оборудования без проверки Hollerith-кодов

Другие форматы и нестандартные решения

Помимо классики IBM, существовало множество альтернатив. Remington Rand UNIVAC использовал 90-колоночные карты с круглыми отверстиями (45 колонок × 2 ряда), давая 90 байт в текстовом режиме. Powers-Samas (Великобритания) выпускал карты на 36, 40, 65, 80 и 160 колонок. В СССР производились перфокарты ГОСТ 10859-64 (аналог IBM 80 колонок) и специализированные форматы для «Минска», «БЭСМ», «Урал».

Интересный кейс: IBM 96-колоночная карта (System/3, 1969) — та же физическая площадь, но более мелкая перфорация (круглые отверстия, 3 тира по 32 колонки). В текстовом режиме — 96 байт, в бинарном — 6 тиров × 32 колонки × 8 бит = 1536 бит = 192 байта. Это был пик эволюции перфокарт перед полным переходом на магнитные ленты.

ФорматКолонокСтрок/тировТекст (байт)Бинарно (байт)
IBM 5081 (стандарт)801280120
Remington Rand 90-col906×290~135
IBM 96-col (System/3)968×396192
Powers-Samas 160-col16012160240
ГОСТ 10859-64 (СССР)801280120
Детали кодировки Холлерита (Hollerith Code)

В текстовом режиме символ кодируется комбинацией 1–3 дыр в одной колонке. Цифры 0-9 — одна дыра в соответствующей строке. Буквы — две дыры: зона (12, 11, 0) + цифра (1-9). Спецзнаки — три дыры: две зоновые + цифра. Это позволяет закодировать 48–64 уникальных символа на 12 строках.

Сравнение с современными носителями

Для ощущения масштаба: стандартная 80-колоночная перфокарта в бинарном режиме хранит 120 байт. Обычная дискетка 3,5″ HD — 1,44 МБ = 12 000 перфокарт. Коробка на 2000 карт (стандартная упаковка) весит ~4,5 кг и занимает 30 см полки. Для хранения 1 ГБ данных потребовалось бы ~8,5 млн карт, вес ~19 тонн, длина стопки ~2,5 км.

Скорость чтения: высокоскоростные считыватели (IBM 2540) — 1000 карт/мин = 133 КБ/с (бинарный режим). Современный SSD — 3–7 ГБ/с, то есть быстрее в 25 000–50 000 раз. Но перфокарты выигрывали в долговечности: при правильном хранении данные читаются через 50+ лет без потерь.

  • 💿 1 дискетка 1.44 МБ = 12 000 карт IBM
  • 📦 1 коробка (2000 карт) = 240 КБ бинарных данных
  • ⚖️ 1 ГБ = ~19 тонн картона
  • ⏱️ Чтение 1000 карт/мин = 133 КБ/с

Исторический контекст и применение

Перфокарты управляли ткацкими станками Жаккара еще в 1804 году, но в вычислительной технике их эра началась с табулятора Холлерита (перепись США 1890 г.) и завершилась массовым переходом на магнитные диски в конце 1970-х. Ключевые сферы: научные расчёты (Манхэттенский проект, баллистика), бухгалтерия (зарплатные ведомости), управление запасами, раннее программирование (FORTRAN, COBOL, Assembler).

Программисты носили «колоды» карт в специальных коробках, нумеровали их (последние 8 колонок), чтобы после падения восстановить порядок. Ошибка в одной карте могла стоить недели пересчёта. Это породило культуру тщательной проверки — «desk checking» — перед сдачей задачи на машину.

💡

Если оцифровываете старый архив перфокарт, фотографируйте каждую карту высоким разрешением ПЕРЕД механическим считыванием. Оптический образ спасёт данные, если карта замяется в ридере.

Как рассчитать объём для вашей задачи

Чтобы перевести количество перфокарт в байты, нужно точно знать формат записи. Алгоритм прост: определите стандарт карты (колонки × строки), режим (текст/бинарный), кодировку. Умножьте на количество карт. Для смешанных наборов (часть текст, часть бинарные данные) считайте раздельно.

Пример: архив 50 коробок по 2000 карт формата IBM 80-колонок. Если всё текст — 50 × 2000 × 80 = 8 000 000 байт (~7,6 МБ). Если бинарные данные — 50 × 2000 × 120 = 12 000 000 байт (~11,4 МБ). Реально часто встречаются смешанные наборы: загрузочные карты — бинарные, исходники — текстовые.

☑️ Проверка перед расчётом объёма

Выполнено: 0 / 5
⚠️ Внимание: нумерация в колонках 73–80 (стандарт FORTRAN/IBM) не несет полезных данных. При архивации исходников их часто отбрасывают, экономя 8 байт на карте.

FAQ: частые вопросы об объёме перфокарт

Сколько байт в одной стандартной перфокарте IBM?

В текстовом режиме — ровно 80 байт (один символ на колонку). В бинарном режиме Column Binary — 120 байт (80 колонок × 12 бит = 960 бит = 120 байт). Другие форматы дают от 90 до 240 байт.

Почему в текстовом режиме 80 байт, а не 960 бит?

Потому что кодировка Холлерита использует комбинации дыр для представления одного символа алфавита. 12 строк не дают 12 бит информации на колонку — они кодируют ~6 бит (64 символа) или 8 бит (EBCDIC). Остальные комбинации недопустимы или зарезервированы.

Можно ли записать на перфокарту больше 120 байт сжатием?

Физически — нет, количество отверстий фиксировано. Но логически — да, если использовать собственную кодировку с избыточностью или сжатием данных перед записью. Однако стандартное оборудование такое не прочитает.

Как отличить текстовую карту от бинарной визуально?

По паттерну дыр. Текстовые: в колонке обычно 1–3 дыры, соблюдается структура зон/цифр. Бинарные: хаотичное распределение, часто 5–6 дыр на колонку, нет видимых «зон». Определённо — только считывателем в соответствующем режиме.

Каков объём перфокарты ГОСТ 10859-64?

Идентичен IBM 5081: 80 колонок, 12 строк. Текстовый режим — 80 байт, бинарный — 120 байт. Советское оборудование (перфораторы АП-1, считыватели ЧЗ-1) полностью совместимо с форматом IBM.

💡

Главный вывод: объём перфокарты не константа, а функция режима записи. Для 80-колоночного стандарта это 80 байт (текст) или 120 байт (бинарный). Всегда уточняйте формат перед расчётами.