Как двоичные файлы создаются с помощью перфокарт? - PullRequest
0 голосов
/ 10 марта 2020

Я не уверен, какую платформу следует спрашивать о перфокартах, поэтому я пробую это здесь (ведь перфокарты также являются частью программирования).

Я думал, что перфокарты уже представлять код в двоичном виде, поскольку отверстие означает 0, а остальные позиции означают 1 на перфокарте. Но потом я прочитал, что вы можете использовать перфокарты для представления кодов Кобола или Фортрана. Я также заметил, что на перфокарте всегда есть 2 отверстия в столбце. Такие вещи смутили меня.

enter image description here

ВОПРОС: **** Мне интересно, были ли перфокарты действительно двоичными или нужны какие-то ассемблеры для преобразования входных данных перфокарт в машинный код? ****

Ответы [ 2 ]

3 голосов
/ 11 марта 2020

Я думал, что перфокарты уже представляют код в двоичном виде, так как на перфокарте отверстие означает 0, а позиции покоя означают 1.

Были перфокарты разных типов.

На перфокарте System 3 данные были сохранены как двоичные данные, как вы и ожидаете.

Однако карты, показанные на вашем изображении, 80- столбец IBM card , который представляется наиболее распространенным типом перфокарт.

Используя этот тип перфокарт, вы могли изначально хранить до 80 десятичных цифр на карту:

Каждый столбец имеет 10 позиций (отмечены «0» - «9»). Чтобы сохранить di git в столбце, вы пробиваете отверстие в соответствующей позиции: Чтобы сохранить di git "5", вы пробиваете отверстие в позиции "5".

Это означает, что первоначально в каждом столбце было только одно отверстие.

Позже других символов хранилось на таких карточках. Это было сделано путем пробивания двух отверстий в столбце и добавления двух дополнительных строк (с внутренним названием «11» и «12») в верхней части карты.

В каждом столбце вы можете:

  • Пробейте одно отверстие в одном из 12 положений или
  • пробейте одно отверстие в одном из положений «1» - «9» и второе в положении «0», «11» или « 12 ".

Это позволяет хранить до 12 + 3 * 9 = 39 различных символов плюс символ пробела (который представляется столбцом без отверстия).

Мне интересно, были ли перфокарты действительно двоичными или нужны были какие-то ассемблеры для преобразования входных данных перфокарт в машинный код?

Двоичный код для IBM 1401 был хранится на перфокартах типа «80 колонок». Код с перфокарт был загружен в ОЗУ (фактически: magneti c память ядра) и выполнен непосредственно.

Однако, насколько я помню, на 1401 могло быть до 3 отверстий на столбец.

Но такие перфокарты были также очень популярны для хранения программ на Фортране: одна карта на строку кода. Если у вас была карта с кодом Фортрана, вам нужен компилятор Фортрана.

2 голосов
/ 13 марта 2020

Перфокарты IBM, такие как изображенные, использовались для ввода символов. Различные дыры были сопоставлены с кодировкой символов «EBCDI C», используемой мэйнфреймами IBM.

Отображение целых в кодирование EBCDI C было довольно произвольным.

Схема кодирования ( если я правильно помню) там было двенадцать рядов и 80 столбов. Верхние две строки были 11 и 12, нижние десять строк были от 0 до 9.

Смотрите здесь подробности кровавых: https://en.wikipedia.org/wiki/Punched_card#IBM_80 -column_punched_card_format_and_character_codes

Одно целое в 0-9 сопоставлено с EBCI C nunmber F0-F9. Отверстие в строке 11 плюс число, сопоставленное с буквами A-> JA, в строке 12 плюс число, сопоставленное с отверстием K-> RA в ряду 0, а также другое число, сопоставленное с "/ S-> Z"

Существовали и другие полуофициальные коды «оверпауна», включающие три или более дыр, которые могли представлять все возможные двоичные значения. Я помню, как какой-то объектный код выводился на перфокарты для переноса на другую машину. Результат выглядел как набор бумажных салфеток, и читателю при получении потребовалось несколько попыток, прежде чем он смог прочитать всю колоду, не заклинив или не разорвав карты.

...