ИБМ 1130
![]() | |
![]() | |
Разработчик | IBM Бока-Ратон |
---|---|
Производитель | ИБМ |
Тип | миникомпьютер |
Дата выпуска | 1965 |
Начальная цена | ~ 1000 долларов США в месяц за аренду, что эквивалентно примерно 9700 долларам США в 2023 году. |
Снято с производства | начало 1980-х [1] |
Отгружено единиц | 10 000 оцен. [1] |
Операционная система | Дисковый монитор 2 (DM2) |
Процессор | 16 бит, адресация по словам, 15-битное адресное пространство |
Память | магнитный сердечник |
Хранилище | Дисковод IBM 2310 |
Съемное хранилище | Однодисковый картридж IBM 2515 |
Отображать | IBM 1627 Плоттер Calcomp, IBM 2250 , опционально |
Вход | перфокарта , бумажная лента , консоль |
Возможности подключения | IBM Адаптер синхронной связи (SCA) |
Размеры | размер стола: ширина 58,5 дюйма, глубина 29 дюймов, высота 44,125 дюйма. [2] |
Масса | 660 фунтов [2] |
Маркетинговая цель | небольшие инжиниринговые компании, школы |
Назад совместимость | через Фортран |
Предшественник | ИБМ 1620 , ИБМ 650 |
Преемник | IBM серии/1 IBM Система/7 |
Связанный | IBM 1800 Система управления процессами |
Веб-сайт | IBM1130 |
Вычислительная система IBM 1130 , представленная в 1965 году, [3] был IBM самым дешевым компьютером на тот момент . Двоичная 16-битная машина продавалась на чувствительных к цене и ресурсоемких технических рынках, таких как образование и инженерия, заменив десятичную IBM 1620 в этом сегменте рынка. Типичные установки включали диск объемом 1 мегабайт, на котором хранилась операционная система, компиляторы и объектные программы, а исходный код программы создавался и сохранялся на перфокартах . Фортран был наиболее распространенным языком программирования, но существовало и несколько других, включая APL .

Модель 1130 также использовалась в качестве интеллектуального внешнего интерфейса для подключения графического дисплея IBM 2250 или в качестве рабочей станции удаленного ввода заданий (RJE), подключенной к мэйнфрейму System / 360 .

Описание [ править ]

Общий объем производства модели 1130 оценивается в 10 000 экземпляров. [4] Модель 1130 занимает место в истории компьютеров, потому что она (и ее клоны, не принадлежащие IBM) позволила многим людям впервые напрямую взаимодействовать с компьютером. Соотношение цены и качества было хорошим, и, в частности, он включал в себя недорогое съемное дисковое хранилище с надежным и простым в использовании программным обеспечением, которое могло быть на нескольких языках высокого уровня. Низкая цена (около 32 000 или 41 000 долларов с дисководом). [3] и хорошо сбалансированный набор функций позволили разработать интерактивную программу «открытого магазина» .
В IBM 1130 используется тот же электронный блок, называемый Solid Logic Technology (SLT), который используется в System/360 . Он имеет 16-битную двоичную архитектуру, как и более поздние миникомпьютеры, такие как PDP-11 и Data General Nova .
Адресное пространство от 1130 до 32 768 16-битных слов ( 65 536 байт составляет 15 бит, что ограничивает объем памяти ). В 1130 используется память на магнитном сердечнике , к которой процессор обращается на границах слов, используя режимы прямой, косвенной и индексированной адресации.
Модели [ править ]
IBM внедрила пять моделей центрального процессора 1131, основного компонента обработки IBM 1130. Модели с 1 по 5 описывают время цикла основной памяти, а также способность модели иметь дисковое хранилище. Буквы от A до D, добавленные к номеру модели, указывают объем установленной основной памяти.
Центральный процессор IBM 1131 весит около 760/1050 фунтов (345/477 кг). [5]
Время цикла памяти | |||||
---|---|---|---|---|---|
Основная память | 3,6 мкс, нет внутреннего диска |
3,6 мкс, плюс диски |
2,2 мкс, плюс диски |
5,9 мкс (3,6 мкс: см. ниже), одиночный диск |
2,2 мкс, нет внутреннего диска |
4096 слов | Модель 1А | Модель 2А | ——— | Модель 4А | ——— |
8192 слова | Модель 1Б | Модель 2Б | Модель 3Б | Модель 4Б | Модель 5Б |
16 384 слова | Модель 1С | Модель 2С | Модель 3С | ——— | Модель 5С |
32 768 слов | Модель 1Д | Модель 2D | Model 3D | ——— | Модель 5Д |
Модель 4 была более дешевым продуктом с временем цикла 5,9 мкс. Некоторые покупатели обновлений производительности отметили, что корректировка на местах для достижения улучшения оказалась на удивление тривиальной.
Принтер IBM 1132 использует процессор 1130, а не внутреннюю логику, чтобы определить, когда запускать печатающие колеса во время их вращения. Принтеры для Model 4 работают медленнее, но более медленный процессор все равно за ним не успевает. В руководстве по аппаратному обеспечению указано, что когда Модель 4 обслуживала два прерывания самого высокого уровня (прерывание столбца устройства чтения карт уровня 0 или прерывание принтера уровня 1), она выполнялась с более быстрым временем цикла 3,6 мкс. Некоторые пользователи модели 4 писали фальшивый драйвер принтера , который не отклонял прерывание принтера, чтобы получить выгоду от более высокой скорости процессора. Однако в течение этого интервала отключаются прерывания более низкого уровня, даже прерывание конца карты (уровень 4) от устройства считывания карт 1442.
Последующие продукты [ править ]
IBM 1800 , анонсированный в ноябре 1964 г. [6] является предшественником IBM 1130 для приложений управления процессами . Он использует аппаратное обеспечение, а не основную память для трех индексных регистров и имеет две дополнительные инструкции (CMP и DCM), а также дополнительные возможности прерываний и ввода-вывода . Он является преемником IBM 1710 , так же как IBM 1130 является преемником IBM 1620 .
IBM 1500 — это многопользовательская образовательная система, основанная на IBM 1130 или IBM 1800. Она может подключаться к 32 рабочим станциям учащихся, каждая из которых имеет различные аудиовизуальные возможности.
Помимо них, IBM не производила никаких совместимых систем-преемников 1130. IBM System/7 — это система управления процессами и системой реального времени, а IBM Series/1 — это 16-битный мини-компьютер общего назначения, оба имеют архитектуру, отличную от 1130 и друг от друга.
Хронология [ править ]
- 11 февраля 1965 г. - IBM представляет 1130 (модели 1A, 1B, 2A и 2B). Также анонсирован принтер IBM 1132, самый дешевый онлайновый компьютерный принтер, когда-либо анонсированный IBM на тот момент.
- Четвертый квартал 1965 г. – начинаются первые поставки клиентам с завода в Сан-Хосе.
- 31 марта 1966 г. - IBM представляет образовательную систему IBM 1500.
- Апрель 1966 г. – отгрузка IBM 1800. [7] : 497
- 9 августа 1966 г. - IBM выпускает адаптер синхронной связи 1130, который позволяет подключать небольшую систему 1130 обычными выделенными телефонными линиями к любой модели IBM System / 360 и работать в качестве коммуникационного терминала.
- 17 апреля 1967 г. - объявлено о четырехстороннем расширении модели 1130 (модели 2C, 2D, 3B, 3C и 3D), включающем:
- В пять раз больше дискового пространства и в четыре раза больше основной памяти;
- Дополнительная скорость обработки данных почти на 40 процентов выше, чем была доступна ранее;
- Больше и быстрее периферийное оборудование, включая оптический считыватель меток;
- Улучшенный пакет коммерческого программирования.
- Январь 1968 г. - начинаются первые поставки моделей 1130 2C, 2D, 3B, 3C и 3D.
- Июль 1968 г. - завод в Бока-Ратоне начинает отгрузку модели 1130.
- 22 июля 1971 г. – 11:30. Модели 4A и 4B представлены на новом уровне экономичности.
- Сентябрь 1971 г. - начинаются первые поставки клиентам модели 1130 Model 4.
- 31 мая 1972 г. - анонсированы модели 1C, 1D, 5B, 5C и 5D.
- 1973 — Xerox 530 продается как возможный преемник клиентов IBM 1130. [8] [9] [10] По состоянию на январь 1974 года заказы на Xerox 530 считались «обнадеживающими». [11]
Программное обеспечение [ править ]
Чтобы максимизировать скорость и сэкономить место, операционная система и компиляторы полностью написаны на языке ассемблера и используют редкие сегодня методы, включая смешивание кода и данных, а также самомодифицирующийся код .
Большая часть пользовательского программирования выполняется на Фортране . Фортрана 1130 Компилятор может работать на машине с ядром всего 4096 слов, хотя скомпилированная программа может не поместиться на такой машине. В этом многопроходном компиляторе каждая «фаза» обрабатывает всю исходную программу и делает еще один шаг к машинному коду. Например, на первом этапе исходные операторы считываются в память, отбрасываются строки комментариев, удаляются пробелы, за исключением текстовых литералов, объединяются строки продолжения и идентифицируются метки. Компилятор доступен в дисковой версии, а также на 8-канальной перфоленте или перфокартах.
Наиболее широко используемой операционной системой для 1130 является Disk Monitor System Version 2 (DM2), представленная в 1967 году. DM2 — это однозадачная пакетно-ориентированная система. Для размещения системы требуется система с объемом основной памяти не менее 4 КБ и одним встроенным диском 2310. Supervisor является крошечным по современным стандартам и содержит различные системные детали, такие как процедуры прерывания первого уровня, называемые подпрограммами уровня прерываний , а также драйвер диска и процедуры для загрузки интерпретатора команд управления заданиями и драйвера устройства чтения карт. Драйверы устройств для других устройств ввода-вывода, необходимые для задания, включаются как часть загрузки этого задания, что также может включать замену базового драйвера диска более продвинутым драйвером. Во время выполнения задания в памяти находится только резидентный монитор , называемый Skeleton Supervisor . Этому супервизору требуется всего 1020 байт, поэтому первая доступная память задачи начинается с адреса /01FE (шестнадцатеричное) или слова 510. Когда задание завершается или прерывается, супервизор загружает Отслеживайте анализатор контрольных записей ( MCRA ), чтобы прочитать контрольные данные для следующего задания. Пока задание выполняется, супервизор неактивен. Помимо драйверов устройств и обработки прерываний, все время процессора полностью посвящено выполнению задания. Другими программами, распространяемыми как часть операционной системы, являются дампа ядра утилита DUMP и программа Disk Utility Program , DUP .
Для поддержки систем без диска была доступна система программирования карт/бумажных лент.
Существует иерархия драйверов устройств: те, имена которых заканчиваются на Z, предназначены для Фортрана, например DISKZ, тогда как программисты на ассемблере могут использовать DISK0, а DISK1 еще быстрее считывает несколько секторов диска. Но DISKZ начинает адресацию секторов с первого доступного неиспользуемого сектора, в то время как остальные начинаются с нулевого сектора диска, что дает возможность программисту, незнакомому с организацией диска, случайно перезаписать загрузчик начальной загрузки.
Другие языки программирования, доступные на 1130, включают:
- АПЛ , [12]
- БАЗОВЫЙ ,
- КОБОЛ , [примечание 1]
- ВПЕРЕД ,
- PL/I (в виде интерпретатора SL/1 ), [примечание 2] и
- РПГ . [примечание 3]
Существует даже компилятор АЛГОЛА на французском языке , в котором, например, " Debut ...Fin;
"занять место" Begin ... End;
". Все его сообщения написаны на французском языке, поэтому целью является "компиляция Bonne".
Университет Восточного Мичигана разработал компилятор Fortran IV для 1130, известный как Fortran-EMU, в качестве альтернативы компилятору Fortran IV (подмножеству), предоставленному IBM. Он добавляет множество функций Fortran Iv, не поддерживаемых компилятором IBM, включая тип данных LOGICAL, шестибуквенные имена переменных и расширенную диагностику. Компилятор Fortran-EMU распространялся в виде колоды перфокарт в формате файла образа диска с удалением всей оставшейся системной области, чтобы предотвратить копирование других модулей, которые обычно находились на том же диске, таких как ассемблер или компиляторы.
Университет штата Оклахома разработал компилятор ALGOL 68 , написанный на языке ANSI Fortran в 1966 году. [13] [14] [15]
Интерпретатор FOCAL был разработан в Мичиганском университете.
IBM также распространила большую библиотеку программ, как поддерживаемых IBM (тип I и II), так и неподдерживаемых (тип III и IV).
Поскольку 1130 был нацелен в первую очередь на научный рынок, преобладали научные и инженерные программы:
- Пакет научных подпрограмм
- Подпрограммы рисования и печати
- Программа распределения нагрузки электроэнергетической системы
- Множественная регрессия
- Расчет токов повреждения электрораспределительной системы
- Анализ труб
- COGO Координатная геометрия
- Непрерывное системное моделирование (CSMP)
- Линейное программирование Математическая оптимизация Система подпрограмм
- Решатель систем проектирования конструкций (STRESS)
- Статистическая система [16]
Модель 1130 также заняла нишу машины обработки данных для небольших организаций:
- 1130 Коммерческий пакет подпрограмм
- Информационная система студентов
- CPM/PERT
Также имеется специализированное программное обеспечение:
Контроль заданий [ править ]
Пакетная работа 1130 управляется управляющими записями в первичном входном потоке (считыватель карт или бумажной ленты). Существует два типа контрольных записей: контрольные записи мониторинга и контрольные записи супервизора. [19]
Мониторинг контрольных записей [ править ]
Записи управления монитором идентифицируются //␢
за которым следует «код псевдооперации» в столбцах 4–7. «␢» представляет собой один пробел.
Контрольная запись | Функция |
---|---|
//␢* comments |
Предоставляет комментарий для печати в списке вакансий в столбцах с 5 по 80. |
//␢JOB |
Определяет начало работы |
//␢ASM |
Вызывает ассемблер |
//␢FOR |
Вызывает компилятор FORTRAN |
//␢PAUS |
Останавливает систему до тех пор, пока не будет нажата клавиша START на консоли. |
//␢TYP |
Переключается с принтера на консоль для ввода и вывода управляющих записей. |
//␢TEND |
Отменяет эффект //␢TYP
|
//␢DUP |
Вызывает программу Дисковой утилиты |
//␢XEQ |
Считывает и передает управление основной программе. |
The JOB
запись может иметь букву «T» в столбце 8, указывающую, что любые файлы, добавленные в область пользователя этим заданием, должны быть удалены в конце. Столбцы с 11 по 15 могут содержать этикетку картриджа; Прежде чем продолжить, система проверяет, установлен ли указанный картридж.
The XEQ
запись может содержать имя запускаемой программы в столбцах с 8 по 12. Если это значение опущено, будет выполнена программа, находящаяся в настоящее время в рабочей памяти. Если в столбце 14 указано «L» и программа имеет формат дисковой системы (не образ ядра), Core Load Builder напечатает карту ядра. Если за этим утверждением следует LOCAL
NOCAL
, или FILES
Записи контроля супервизора, столбцы 16 и 17 содержат количество этих записей. В столбце 19 дополнительно указывается, какая подпрограмма драйвера диска должна быть связана. «0», «1» или «N» запрашивают DISK1, DISK2 или DISKN, любой другой символ, включая пробел, запрашивает DISKZ, дисковую процедуру FORTRAN.
Записи контроля супервайзера [ править ]
Записи Supervisor Control начинаются с «*» в столбце 1, за которым сразу следует псевдооперация команды в столбце 2. LOCAL
, NOCAL
, и FILES
для Core Load Builder. Управляющие записи DUP имеют аналогичный формат. Эти записи управляют связыванием программ, либо для // XEQ
заявление или DUP *STORECI
команда.
Контрольная запись | Описание |
---|---|
*LOCAL |
Предоставляет список подпрограмм, которые будут загружаться как наложения во время выполнения, а не включаться в основную программу. |
*NOCAL |
Предоставляет список подпрограмм, которые будут связаны с основной программой, даже если они никогда не вызываются. Обычно это либо процедуры отладки, к которым оператор может вручную перейти с консоли, либо процедуры обслуживания прерываний. |
*FILES |
Приравнивает идентификационные номера файлов из FORTRAN DEFINE FILE оператор или ассемблер FILE оператор для именованных файлов на диске.
|
Порядок работы [ править ]

Неизгладимые воспоминания о IBM 1130, возможно, возникли из-за необходимости постоянного вмешательства человека. Обычно он был занят выполнением «работ», определенных колодой перфокарт . Человек-оператор загружал задания в устройство считывания карт и разделял их обратно на задания для возврата, возможно, вместе с распечаткой, отправителю. Оператору также придется следить за 1130 на наличие признаков неисправности или остановки работы и вмешаться, нажав кнопку INT REQ клавишу на клавиатуре, чтобы перейти к началу следующего задания. [20]
Начало работы обозначалось перфокартой, начинавшейся с // JOB
. Любая карта, начинающаяся с //
представлял собой команду Супервизору и не мог использоваться в качестве пользовательской программы или данных. Другие команды включены // DUP
выполнить программу Дисковой утилиты (чтобы удалить файлы или добавить файл во временной области в коллекцию файлов) и // XEQ
выполнить именованную программу с диска. Если пользовательская программа попытается прочитать командную карту, стандартная процедура считывания карт сообщит программе об окончании ввода и сохранит содержимое этой карты для супервизора.
- Начальная загрузка программы (IPL)
В отличие от IBM 360, где загрузочное устройство можно выбрать из системной консоли, IBM 1130 можно «загружать» (IPL: начальная загрузка программы) только с внешнего устройства: устройства чтения карт или устройства чтения бумажной ленты. [21] [22]
Процедура начальной загрузки считывает одну карту из устройства чтения карт. Загрузочная карта содержит двоичный код [23] для чтения содержимого нулевого сектора жесткого диска, который, в свою очередь, обрабатывает прерывание «операция завершена» от дисковода и выполняет дополнительные операции чтения с диска, чтобы подготовить 1130 к первому заданию с перфокартой. Весь процесс занимает около секунды.
- Процедуры восстановления
Когда IBM 1130 запускается, Supervisor все еще находится в памяти и, вероятно, не поврежден, поскольку основная память сохраняет свое состояние без питания. Если оператор приходит к выводу, что пользовательская программа зависла, супервизор может почувствовать нажатие клавиши, чтобы прервать программу и перейти к следующей // карте. Supervisor не защищен от изменений в результате плохо написанного задания, в случае чего оператору может потребоваться перезагрузка 1130. Не было защиты и от записи на диск. Если копия системного ПО на диске модифицирована, ее можно восстановить, загрузив ее примерно с 4000 перфокарт с двоичным кодом (примерно две коробки).
Организация диска [ править ]


Диск IBM 2310 хранит сектора размером 320 слов (640 байт) плюс адрес сектора, состоящий из одного слова. Цилиндр . состоит из двух дорожек на верхней и нижней поверхностях 2315 или одного диска на пакете дисков 1316, используемом в 2311. Каждый дисковый цилиндр содержит восемь секторов Сектор логически разделяется монитором на шестнадцать дисковых блоков по 20 слов (40 байт) каждый. Дисковый блок — это единица размещения файлов.
Система различает системные картриджи , содержащие монитор и утилиты, а также пользовательские данные, и несистемные картриджи , содержащие только пользовательские данные. Все картриджи содержат информацию о цилиндре 0, включая таблицу дефектных цилиндров, идентификатор картриджа и программу начальной загрузки ( код начальной загрузки ). На несистемных картриджах программа начальной загрузки просто выводит сообщение об ошибке и ждет, если будет предпринята попытка загрузки с этого картриджа. На системном картридже это программа холодного запуска , за которой следует область связи и резидентный монитор в первом и втором секторах. Сектора с третьего по пятый содержат таблицу эквивалентности местоположений системы (SLET) — каталог всех этапов всех программ мониторинга. Другая управляющая информация заполняет первую дорожку.
Системная область присутствует на системных картриджах. Он содержит программу Disk Monitor и, опционально, компилятор FORTRAN, ассемблер и основной буфер изображения , используемый для связывания перемещаемых программ. Он также содержит каталоги пользовательских файлов — таблицу эквивалентности фиксированного местоположения (FLET) и таблицу эквивалентности местоположения (LET).
После системной области картридж содержит до трех логических подразделений: фиксированную область , пользовательскую область и рабочее хранилище . Как в фиксированной области, так и в пользовательской области хранятся постоянные программы и данные. Фиксированный размер области определяется DUP и сохраняет данные и программы только в формате основного образа. Не перепаковывается при удалении файлов. В пользовательской зоне хранятся данные и программы в любом формате. Граница между пользовательской областью и рабочим хранилищем «плавает» — пользовательская область расширяется по мере добавления файлов и сжимается по мере переупаковки для освобождения места из удаленных файлов. Если файл необходимо изменить, обычный процесс заключается в использовании // DUP
команды для его удаления, при этом все последующие файлы перемещаются назад, чтобы закрыть пробел, а затем присваивается это имя временному файлу в качестве новой версии файла. Таким образом, редко изменяемые файлы перемещаются в начало диска по мере добавления новых файлов или новых версий, а часто изменяемые файлы сохраняются ближе к концу диска.
Рабочее хранилище начинается после последнего файла в пользовательской области и занимает все оставшееся место на картридже. Он может содержать один временный файл, созданный системой или пользователем, например выходные данные компилятора или прикладной программы. Этот файл может быть удален в конце текущего задания, если только он не сохранен в фиксированной области или области пользователя.
отсутствует Все файлы на диске представляют собой смежные блоки диска, поэтому фрагментация . Программа может использовать и изменять именованные файлы, но не может расширять их за пределы созданного размера. Программа, которая создает более одного файла, должна иметь все файлы, кроме одного, предварительно выделенные DUP.
При ограниченном дисковом пространстве исходные файлы программы обычно хранятся в виде колод карт. Пользователи с более высокими требованиями могут иметь собственный диск, содержащий операционную систему, но только свои файлы, и им придется заменить системный диск «пула» своим и перезапустить систему, когда их программы должны быть запущены. Некоторое облегчение дает система со вторым диском, который может быть полностью посвящен коду и данным одного пользователя.
Пакет дисков или картридж инициализируется для использования на модели 1130 с помощью процедуры инициализации пакета дисков (DIPR). Эта процедура сканирует диск и записывает адреса секторов во все цилиндры, помечает дефектные сектора и записывает идентификатор картриджа в нулевой цилиндр. DIPR — это автономная программа , которая загружается с карточек или бумажной ленты и принимает идентификатор картриджа из системной консоли. [19]
Программа Дисковой утилиты (DUP) [ править ]
Программа Disk Utility (DUP) предоставляет команды для передачи программ, подпрограмм и данных. Он вызывается элементом управления заданиями // DUP
карта, за которой следует одна или несколько контрольных карт: [24]
Команда | Функция |
---|---|
*МАГАЗИН | Сохраните программу в формате дисковой системы. (перемещаемый объект) |
*СТОРЕЦИ | Сохраните программу в формате основного образа. (полностью связан и перемещен) |
*СОХРАНЕННЫЕ ДАННЫЕ | Сохранение файла данных на диск |
*ХРАНЕННЫЕ ДАННЫЕ США | Перезагрузите программу дампа ядра. |
*ОТЛИЧНЫЙ МОД | Заменить или создать файл на диске |
*СВАЛКА | Дамп файла данных с диска |
*ДАМП ДАННЫХ | Дамп произвольных секторов с диска |
* ПЕЛЬМЕНИ | Распечатайте таблицу эквивалентности местоположений диска (LET), и Таблицу эквивалентности фиксированных местоположений (FLET), если существует фиксированная зона. |
*УДАЛИТЬ | Удаление программы или файла данных |
Другие команды, в основном предназначенные для использования системным администратором, определяют или расширяют фиксированную область, удаляют компилятор и/или ассемблер FORTRAN из системы и восстанавливают правильные адреса секторов в рабочей памяти, если они были изменены.
Операнды должны быть помещены в фиксированные столбцы. Код исходного устройства указывается в столбцах 13 и 14, а устройство назначения — в столбцах 17 и 18. Эти коды устройств:
- UA – Зона пользователя
- FX – фиксированная область (без «протяженностей», как в 360; только непрерывное пространство)
- WS – Рабочее хранилище
- CD — перфокарта/основное устройство ввода (может быть PT : бумажная лента)
- PR – Принтер
При желании имя программы может быть закодировано в столбцах с 21 по 25, а поле счетчика - в столбцах с 27 по 30. Интерпретация этих полей зависит от запрошенной функции DUP.
Программы можно преобразовать в формат с более быстрой загрузкой с помощью команды STORECI , которая вызывает Core Image Builder (аналог DM2 редактора связей 360). Альтернативно, программа может проходить этот процесс каждый раз при запуске, а для редко используемых программ это предпочтительно в целях экономии дискового пространства.
Следующая управляющая карта дает команду DUP взять текущее содержимое рабочей памяти и переместить его в пользовательскую область, назвав ее PROGM. DUP знает размер файла в рабочей памяти. Размер пользовательской области будет увеличен на размер файла, а размер рабочей памяти соответственно уменьшится.

Периферийные устройства [ править ]



Дисковая память используется для хранения операционной системы, объектного кода и данных, но исходный код хранится на перфокартах.
Базовый 1130 поставлялся с дисководом IBM 2310 со звуковой катушкой под названием «Ramkit» от подразделения IBM General Products в Сан-Хосе. [7] : 497 Их однодисковые картриджи IBM 2315 размером с коробку для пиццы вмещают 512 000 слов или 1 024 000 байт (меньше, чем 1,44 МБ 3,5-дюймовой HD-дискеты или даже 1,2 МБ 5,25-дюймовой HD-дискеты ). Скорость передачи составляет 35 000 слов в секунду (70 КБ/сек) с использованием технологии Cycle Stealing . [25]
Консольная пишущая машинка IBM 1053 использует механизм IBM Selectric , что означает, что можно изменить гарнитуру или набор символов, заменив полый печатный элемент размером с мяч для гольфа. доступен элемент специального типа Для APL , мощного языка программирования , ориентированного на массивы , использующего специальную символьную запись, . Ряд из 16 тумблеров на консольной пишущей машинке можно протестировать индивидуально из программы с помощью специального оператора Фортрана. IF (SENSE SWITCH i)
, например.
Другие доступные периферийные устройства включали:
- Принтеры – IBM 1132 [примечание 4] и IBM 1403 [примечание 5] [26] линейные принтеры
- Перфокарты – IBM 1442 устройство считывания/перфокарт IBM 2501. и устройство считывания карт
- Бумажная лента - перфоратор для бумажной ленты IBM 1055, устройство для чтения бумажной ленты IBM 1054 и устройство для чтения бумажной ленты IBM 1134.
- Диск – IBM 2311. дисковод
- Магнитная лента IBM 2415 . С 1968 года накопители данных на магнитной ленте были доступны как RPQ . [27]
- Графика – IBM 2250 . графический дисплей
- Color Pen Plotter – барабанный плоттер IBM 1627 .
- Считыватель оптических меток – Считыватель страниц оптических меток IBM 1231 [28]
- Связь – адаптер синхронной связи (SCA). IBM 1130 MTCA для адаптера управления несколькими терминалами , анонсированный в 1970 году. [29] позволяло подключать до четырех терминалов 2741 к IBM 1130 для использования с APL.
Чтобы упростить конструкцию периферийных устройств, они полагаются на процессор. Устройство считывания карт не имеет буферов памяти, но вместо этого выдает ЦП прерывание нулевого уровня (наивысший приоритет) после считывания каждого отдельного столбца карты. Если ЦП не отвечает и не сохраняет двенадцать бит данных до того, как другое такое прерывание укажет, что следующий столбец прочитан, данные будут потеряны. Точно так же принтер 1132 использует программное обеспечение модели 1130. Когда появляется такая буква, как A
приходит в положение, ЦП должен проанализировать буферизованную строку текста и собрать массив битов, который укажет процессору 1132, какие позиции печати следует печатать с помощью A
. Если ЦП не может ответить до A
повернется со смещением, скорость печати может значительно снизиться.
Другие периферийные устройства принимают текст в коде конкретного устройства, удобном для его оборудования. ЦП должен преобразовать его в код EBCDIC или из него, в котором ЦП обрабатывает текст.
Обзор набора команд [ править ]
Инструкции имеют короткий (одно слово) и длинный (два слова) форматы. Большинство инструкций по вычислениям, загрузке и сохранению ссылаются на один регистр (обычно ACC) и ячейку памяти. Местоположение памяти идентифицируется в коротком формате 8-битным смещением со знаком либо от текущего адреса, либо от одного из индексных регистров; или в длинном формате по полному 15-битному адресу, который можно индексировать и указывать косвенность. Память адресуется в единицах слов.
1130 изначально поддерживает только двоичные данные одинарной и двойной точности (16 и 32 бита), хранящиеся в формате с прямым порядком байтов . Данные с плавающей запятой стандартной и повышенной точности (32 и 48 битов), а также десятичные данные поддерживаются с помощью подпрограмм.
Условные передачи основаны на (а) текущем содержимом аккумулятора или (б) индикаторах переноса и переполнения, установленных предыдущей операцией. Передачи могут осуществляться пропуском (при этом предполагается, что следующая инструкция короткая) или ветвлением. Пропуск происходит, если какой-либо из указанных тестов верен. Ответвление возникает, если ни один из указанных тестов не оказался истинным.
Main Registers: IAR = Instruction Address Register ACC = Accumulator EXT = Extension Register XRx = Index Registers: x = 1,2,3 Implemented as memory words 1,2,3, not as hardware registers. Condition tests: Z Accumulator zero - Accumulator negative + Accumulator positive E Accumulator even C Carry indicator off O Overflow indicator off 1130 Instruction Set Mnemonics: LD = Load ACC STO = Store ACC LDD = Load Double (ACC & EXT) STD = Store Double (ACC & EXT) LDX = Load Index STX = Store Index LDS = Load Status STS = Store Status A = Add ACC AD = Add Double S = Subtract ACC SD = Subtract Double M = Multiply D = Divide AND = Boolean AND OR = Boolean OR XOR = Boolean Exclusive OR SLA = Shift Left ACC SLT = Shift Left ACC & EXT SLCA = Shift Left and Count ACC SLC = Shift Left and Count ACC & EXT SRA = Shift Right ACC SRT = Shift Right ACC & EXT RTE = Rotate Right ACC & EXT BSC = Branch or Skip on Condition (Modifier dependent) i.e. BP BNP BN BNN BZ BNZ BC BO BOD BOSC - Branch Out or Skip Conditionally (alternate for BSC with bit 9 set) Exits current interrupt level. BSI = Branch and Store IAR MDX = Modify Index and Skip (Increment IAR one if a sign change or becomes zero) WAIT = Halt NOP = No Operation (alternate for SLA 0) XIO = Execute I/O 1800 Additional Instruction Mnemonics: CMP = Compare ACC DCM = Double Compare ACC & EXT Equivalent Mnemonics The disk assembler introduced several mnemonics equivalent to existing instructions intended to make the programmer's intent clearer: SKP - Skip on condition, equivalent to a short BSC B - Branch unconditionally, equivalent to BSC with no conditions specified BP - Branch Accumulator Positive, equivalent to BSC specifying '+' condition BNP - Branch Accumulator not Positive BN - Branch Accumulator Negative BNN - Branch Accumulator not Negative BZ - Branch Accumulator Zero BNZ - Branch Accumulator not Zero BC - Branch on Carry BO - Branch on Overflow BOD - Branch Accumulator Odd MDM - Modify Memory, equivalent to unindexed long-format MDX XCH - Exchange Accumulator and Extension, equivalent to RTE 16 Short instruction format (one 16 bit word): 1 Bits 0...45678......5 OP---FTTDisp---- OP is Operation F is format 0 = Short TT is Tag Disp is Displacement Long instruction format (two 16 bit words): 1 1 Bits 0...456789.....50..............5 OP---FTTIMod----Address--------- OP is Operation F is format 1 = Long TT is Tag I is Indirect bit Mod is Modifier Effective Address Calculation (EA): F = 0 | F = 1, I = 0 | F = 1, I = 1 Direct Addressing| Direct Addressing| Indirect Addressing ------------------------------------------------------------------- TT = 00 | EA = Displ + IAR | EA = Add | EA = C/Add TT = 01 | EA = Displ + XR1 | EA = Add + XR1 | EA = C/Add + XR1 TT = 10 | EA = Displ + XR2 | EA = Add + XR2 | EA = C/Add + XR2 TT = 11 | EA = Displ + XR3 | EA = Add + XR3 | EA = C/Add + XR3 ------------------------------------------------------------------- Disp = Contents of displacement field Add = Contents of address field of instruction C = Contents of location specified by Add or Add + XR
1 5 | 1 4 | 1 3 | 1 2 | 1 1 | 1 0 | 0 9 | 0 8 | 0 7 | 0 6 | 0 5 | 0 4 | 0 3 | 0 2 | 0 1 | 0 0 | (битовая позиция) |
аккумулятор | ||||||||||||||||
АСС | аккумулятор | |||||||||||||||
вопрос | Расширение | |||||||||||||||
Индексные регистры | ||||||||||||||||
И | Инструкционный адрес | |||||||||||||||
XR1 | Я индекс 1 | |||||||||||||||
XR2 | Я индекс 2 | |||||||||||||||
XR3 | у меня индекс 3 | |||||||||||||||
Флаги | ||||||||||||||||
ТО | С |
- Зарезервированная память
Использование самых низких адресов основной памяти определяется либо аппаратным обеспечением, либо соглашением:
Адрес | Использование |
---|---|
/0000 | По соглашению содержит инструкцию B *-1 , который будет разветвляться до самого себя до тех пор, пока оператор не заметит, что все индикаторы IAR консоли погасли, и не сбросит задание, либо нажав Int Req, либо перезагрузив компьютер.
|
/0001 | XR1. Адреса памяти индексных регистров допускают прямое перемещение между ними, например, с помощью LDX I1 2
|
/0002 | XR2. |
/0003 | XR3. |
/0008 | Адрес обработчика прерывания уровня 0 (наивысший приоритет) — прерывание 1442 картридера/перфоратора «колонка готова». |
/0009 | Адрес обработчика прерывания уровня 1 — принтера 1132 и адаптера синхронной связи. Обработчики этого и более низких прерываний должны проверить слово состояния, чтобы определить, какое устройство прервалось. |
/000А=10 | Адрес обработчика прерывания 2-го уровня — дисковое хранилище, Storage Access Channel. |
/000Б=11 | Адрес обработчика прерывания 3-го уровня — плоттер 1627, Storage Access Channel. |
/000С=12 | Адрес обработчика прерывания 4-го уровня — 1134 считыватель бумажной ленты, 1055 перфоратор бумажной ленты, консоль, 1442 перфоратор считывания карт, 2501 картридер, 1403 принтер, 1231 считыватель оптических меток, устройство Storage Access Channel. |
/000D=13 | Адрес обработчика прерывания 5-го уровня (самый низкий приоритет) — консольные переключатели остановки и прерывания, Storage Access Channel. |
/0020=32 | Первое слово поля сканирования для принтера 1132 (/0020–/0027). |
/0026=38 | Последнее полное слово поля сканирования. |
/0027=39 | Половина использована: 120 столбцов = 120 бит = семь 16-битных слов плюс 8 бит. |
/0038=56 | ВЫХОД к супервизору/возврат к монитору (CALL EXIT) |
Программирование [ править ]
Подпрограммы [ править ]
У 1130 нет аппаратной поддержки стека . Большинство подпрограмм вызываются с помощью инструкции BSI (Branch and Store IAR). При этом значение IAR (обратный адрес) помещается в адрес назначения и передается управление пункту назначения+1. Подпрограммы возвращаются туда, где они были вызваны в тот момент, используя косвенный переход через это первое слово подпрограммы. Размещение обратного адреса в строке было обычным методом компьютеров того времени, таких как Hewlett-Packard HP 2100 . [30] DEC PDP-8 , [31] и Системы научных данных SDS 920 . [32]
Таким образом, подпрограмма с именем SIMPL может быть организована следующим образом (комментарии следуют за операндом инструкции):
SIMPL: DC *-* This is the entry point, filled with a zero initially. (whatever the routine does) B I SIMPL Return by an Indirect branch, to the address found in location SIMPL. END SIMPL Instructs the assembler that the source for routine SIMPLE is complete.
Подпрограмма будет называться следующим образом:
BSI L SIMPL Call SIMPL. L (Long) is needed if SIMPL is more than -128 or +127 words away.
псевдооперационный код Обычно используется CALL.
Как показано, точка входа в подпрограмму DC *-*
, псевдооперация ассемблера, которая используется для определения константы (занимающей одно слово памяти) со значением, указанным в выражении. Символ * обозначает текущий адрес сборки, поэтому *-* приводит к нулю. Написание этого значения вместо 0 обеспечивает визуальное указание на то, что значимое значение (обратный адрес) будет помещено туда во время выполнения. Точкой входа не обязательно должно быть первое слово подпрограммы. Действительно, предыдущее слово может быть началом двухсловной инструкции прямого перехода, поле адреса которой находится в SIMPL. Затем возвраты могут быть осуществлены с помощью ветвей, состоящих из одного слова: B SIMPL-1
При вызове SIMPL инструкция BSI заменяет *-*
с текущим значением IAR, которое представляет собой адрес сразу после инструкции BSI. После того, как SIMPL выполнит все, что написано, B I SIMPL
разветвляется не на SIMPL, а косвенно через него, таким образом продолжая выполнение с инструкции, следующей за инструкцией BSI, вызвавшей SIMPL.
Без дополнительных мер по защите обратного адреса рекурсия невозможна: если SIMPL вызывает себя или вызывает подпрограмму, которая его вызвала, ее исходный обратный адрес перезаписывается. Повторный вход проблематичен по той же причине: процедура обработки прерывания должна воздерживаться от вызова любой подпрограммы, которая могла бы быть прерванным кодом.
Вызывающий SIMPL может передать ему параметры, которые могут быть значениями или адресами значений. Параметры могут быть закодированы в строке (сразу после инструкции BSI) или могут быть помещены в индексные регистры XR1 и XR2. Если параметры размещаются в строке, SIMPL изменяет свой собственный адрес возврата, чтобы его последняя косвенная ветвь возвращалась за пределы параметров.
Целочисленные функции одного целого числа ожидают параметр в аккумуляторе и возвращают туда свой результат. Функции с плавающей запятой используют аккумулятор с плавающей запятой (область из двух слов, выделенная библиотекой с плавающей запятой, три слова для повышенной точности) и так далее.
Соглашение о кодировании 0 в качестве начального значения в точке входа означает, что если ошибка программирования приводит к возврату SIMPL до первого его вызова, выполнение перейдет к ячейке памяти 0. Как упоминалось выше , принято указывать местоположение 0 содержит ответвление к ячейке 0. 1130 застрянет в ячейке 0, а индикаторы IAR на консоли полностью погаснут, давая понять, что программа не удалась.
Связь с библиотечными процедурами [ править ]
Для подпрограмм, которые будут вызываться много раз (например, подпрограммы для арифметики с плавающей запятой), важно уменьшить размер каждого вызова до одного слова. Такие «библиотечные процедуры» используют протокол LIBF. Он более сложен, чем протокол CALL, описанный в предыдущем разделе, но LIBF скрывает сложность от автора программы на языке ассемблера.
Библиотечные процедуры обращаются через индексный регистр XR3. (Подпрограммы Фортрана используют индексный регистр XR1 для адресов параметров и адреса возврата, но регистр XR2 не используется.) XR3 указывает на последовательность векторов передачи из трех слов, такая, что первая запись составляет -128 слов от значения XR3. Программист вызывает библиотечную процедуру, используя LIBF
псевдооперация, которая собирает не прямую BSI
к подпрограмме, а инструкция индексированного перехода из одного слова ( BSI 3 disp
), смещение которого (-128, -125 и т. д.) идентифицирует начало вектора переноса подпрограммы.
Вектор передачи подготавливается загрузчиком связей при сборке программы. Запись вектора передачи в библиотечную функцию с именем SIMPL принимает следующую форму:
DC *-* A word into which BSI stores the return address. B L SIMPL Branch to the start of the library function.
Способ, которым SIMPL знал, где находится его обратный адрес, заключался в том, что, если бы SIMPL был объявлен подпрограммой LIBF, загрузчик связей изменил бы код SIMPL, поместив адрес записи вектора передачи SIMPL в SIMPL+2. Подпрограммы LIBF, в отличие от подпрограмм CALL, начинаются не с директивы DC, содержащей адрес возврата (он находится в векторе передачи), а с фактического кода, как показано ниже:
SIMPL STX 1 RCVR1+1 Save the caller's value of XR1 at a nearby location. LDX I1 *-* The linkage loader changes the address word to point to the transfer vector.
Размещение адреса вектора передачи SIMPL в SIMPL+2 оставляет место для однословной инструкции для сохранения выбранного индексного регистра, здесь XR1. Тогда косвенная инструкция LDX указывает XR1 не на вектор передачи, а через него на адрес возврата или на любые параметры, хранящиеся в строке после BSI. Затем SIMPL делает все, для чего было написано, получая доступ к любым встроенным параметрам через XR1 (в этом случае он должен увеличивать XR1 для адреса возврата) и возвращает следующий результат:
STX 1 RETN+1 Store XR1 to prepare to use it as a return address. RCVR1 LDX L1 *-* SIMPL's first instruction modified this address. Now, * restore the original value of XR1. RETN B L *-* This instruction was modified two instructions ago; return.
- Пример
Предположим, что вызов SIMPL в стиле LIBF произошел по адресу 100. Тогда адрес возврата будет 101, потому что BSI 3 disp
это инструкция, состоящая из одного слова. XR3 указывает на группу векторов переноса. Если вектор передачи для SIMPL начинается с адреса 2000, то BSI будет собран с disp
так что XR3+disp = 2000. Выполнение BSI сохраняет 101 в ячейке 2000 и переходит к ячейке 2001. В 2001 происходит длинный переход из двух слов к точке входа SIMPL, которую загрузчик связи мог бы поместить по адресу 300.
Прыжок в длину передает управление SIMPL. После того, как инструкция на этапе 300 сохраняет XR1, инструкция на этапе 301 LDX I1 2000
, загрузчик связей поместил 2000 в позицию 302. Это не загружает 2000 в XR1; это косвенная инструкция, которая загружает содержимое 2000, то есть 101, адреса возврата для этого вызова SIMPL.
В показанной выше последовательности возврата, когда регулятор времени достигает RETN, инструкция B L 101
, который возвращается вызывающему абоненту. (Если имеется один или несколько встроенных параметров по адресу 101, SIMPL увеличит XR1 до значения 102 или выше, и это будет местом назначения B
инструкция.)
- Вариации
Если SIMPL принимает параметры, закодированные в строке после инструкции BSI, SIMPL получает к ним доступ с индексированной адресацией от XR1. Первую можно было получить LD 1 0
, второй по LD 1 1
, и так далее. Если второй параметр является адресом фактического параметра, то LD I1 1
получает свое значение. Перед возвратом SIMPL увеличивает XR1 после n параметров с помощью такой инструкции, как MDX 1 n
чтобы поместить правильное значение в RETN+1.
Подпрограмма LIBF, которая отказывается восстанавливать исходное значение XR1, может пропустить вышеуказанные шаги и вернуться с помощью простой команды: B 1 n
пропустить n встроенных параметров. Однако такая процедура не может быть вызвана другими процедурами LIBF, поскольку она мешает использованию XR1 вызывающей стороной для доступа к своим собственным параметрам и адресу возврата.
Сложность LIBF экономит память для часто вызываемых подпрограмм: [33] : стр. 24 Для связи LIBF требуется одно слово на вызов плюс три слова для записи вектора передачи и дополнительный код в самой подпрограмме, тогда как для связи CALL требуется два слова на вызов, поскольку большинство вызовов будут адресованы по адресу, находящемуся за пределами слов от -128 до +127. досягаемость однословного кода операции.
Регистр XR3 должен указывать на записи вектора передачи для библиотечных подпрограмм, а не на таблицу диспетчеризации , содержащую только их адреса, поскольку последняя потребует, чтобы подпрограммы LIBF вызывались с помощью косвенной инструкции BSI. Эти инструкции состоят из двух слов, поэтому такая конструкция сведет на нет экономию размера кода за счет LIBF. Восьмибитный предел поля disp однословного кода инструкции ограничивает использование подпрограмм LIBF не более чем 85 отдельными записями.
Модификация кода [ править ]
В предыдущих разделах показано, что код и данные переплетаются. В программировании 1130 обычно модифицируются поля адреса инструкций и, по сути, модифицируются целые инструкции.
Компилятором Фортрана [ править ]
Компилятор Фортрана создает самомодифицирующийся код при создании кода для любых подпрограмм (подпрограмм или функций), имеющих параметры. Компилятор создает таблицу для каждого места, где подпрограмма ссылается на один из своих параметров, и компилирует в качестве первой инструкции в теле подпрограммы вызов подпрограммы с именем SUBIN, которая использует таблицу для изменения поля адреса каждой ссылки на параметр должен быть фактическим адресом параметра во время текущего вызова. SUBIN делает эти исправления каждый раз при вызове подпрограммы.
Когда программа на Фортране вызывает подпрограмму, адреса любых параметров появляются в строке после вызова. Например, оператор Фортрана CALL SIMPL(X) может скомпилироваться в:
BSI L SIMPL DC X The address of X, on which SIMPL is to operate
Внутри подпрограммы к параметрам можно получить доступ посредством косвенной индексированной адресации, как показано выше в разделе «Вариации» , поэтому, учитывая, что XR1 был соответствующим образом подготовлен, целочисленный параметр можно загрузить в аккумулятор с помощью такой инструкции:
LD I1 0 Load the value of the first parameter (offset 0) into the accumulator
Вместо этого компилятор использовал прямую адресацию. Когда SUBIN запускается, он получает адрес X и исправляет поле адреса инструкции, чтобы оно стало:
LD L X Load the value of X into the accumulator
Преимущества SUBIN заключаются в следующем:
- Для получения адреса операнда команде с косвенным индексированием требуется три цикла памяти (индексный регистр находится в памяти), тогда как для инструкции прямого доступа требуется только один.
- Если SIMPL должен был передать один из своих параметров любой подпрограмме, которая ожидала получить адрес своего параметра (включая все процедуры LIBF для арифметики с плавающей запятой), SUBIN необходим для предоставления фактического адреса исходного параметра.
Недостатками SUBIN являются время, необходимое для его работы, и объем памяти, необходимый для таблицы ссылок. Размер этой таблицы представляет собой сумму 5, количества параметров и количества ссылок; если эта сумма превышает 511, компиляция завершится неудачей. Для подпрограмм с большим количеством ссылок на параметр автор подпрограммы может скопировать параметр в локальную переменную.
Пользователь [ править ]
В то время изменение целых инструкций было обычным методом. Например, хотя в 1130 есть инструкция ИЛИ, синтаксис Фортрана не позволяет ее записать. Можно определить целочисленную функцию IOR, позволяющую логическому ИЛИ быть частью выражения Фортрана, например:
M = 3*IOR(I,J) + 5
Компилятор Фортрана помещает адреса I и J в строку и ожидает результата в аккумуляторе. Использование IOR(I,J) в выражении Фортрана компилирует следующие четыре слова:
BSI L IOR Two-word jump to the start of the IOR function. DC I A one-word in-line parameter: The address of I. DC J A one-word in-line parameter: The address of J.
Фактически, ассемблерная функция IOR не вычисляет I или вообще J. Вместо этого он заменяет приведенные выше четыре слова следующими:
LD L I Load accumulator with I (two-word instruction) OR L J OR accumulator with J (two-word instruction)
После выполнения этого преобразования он не возвращается за конец блока из четырех слов (который он только что изменил). Вместо этого он разветвляется на точный адрес, с которого он был первоначально вызван. Инструкции BSI больше нет; теперь есть две инструкции, которые он только что написал. Они объединяют два целых числа с помощью инструкции ИЛИ машинного языка и при необходимости оставляют результат в аккумуляторе.
Вызов IOR и преобразование блока из четырех слов происходит не чаще одного раза за выполнение программы. Если показанная выше строка Фортрана выполняется еще раз, она выполняется быстрее, чем в первый раз. Подобные функции можно было бы разработать и для других полезных операций.
Функция, которая самомодифицируется, как это делает IOR, не может использоваться в подпрограмме Фортрана ни для одного из параметров этой подпрограммы (хотя ее можно использовать для объединения локальных переменных), поскольку она несовместима с подпрограммой SUBIN, описанной выше. Преобразование IOR последовательности вызовов из четырех слов, показанное выше, перемещает местоположение адреса переменной I. При последующих вызовах подпрограммы на Фортране таблица ссылок на параметры будет ошибочной, и SUBIN исправит неправильное слово, в в этом случае новый адрес I помещается поверх кода операции ИЛИ.
Повышенная точность [ править ]
1130 FORTRAN предлагает два формата с плавающей запятой: 32-битный формат «стандартной точности» и 40-битный формат «расширенной точности».
Формат стандартной точности содержит 24-битное дополнение до двух , а расширенная точность до двух использует 32-битное дополнение . Этот формат полностью использует 32-битные целочисленные операции ЦП. Расширенный формат занимает три 16-битных слова, при этом старшие восемь битов первого слова не используются. Характеристикой смещенную обоих форматов является 8-битное поле, содержащее степень двойки, на 128. Арифметические операции с плавающей запятой выполняются программным обеспечением. [34]
The *EXTENDED PRECISION
Дополнительная карта компилятора сообщает компилятору FORTRAN использовать 40 бит вместо 32 бит для всех данных с плавающей запятой, смешивание форматов не предусмотрено.
программы Фортране на Большие
Данные, которыми нужно манипулировать, и инструкции, которые ими управляют, должны находиться вместе в основной памяти. Ключевым ограничением является объем установленной памяти (от 4096 до 32768 слов). Несмотря на это ограничение, Фортран предоставляет несколько методов написания больших программ.
- ЛОКАЛЬНЫЕ подпрограммы
Фортран позволял обозначать любую подпрограмму как «ЛОКАЛЬНУЮ» (загрузка по вызову). Каждая ЛОКАЛЬНАЯ подпрограмма является наложением ; он является частью резидентной на диске исполняемой программы, но загружается в основную память (если еще не там) во время ее вызова. Так, например, шесть ЛОКАЛЬНЫХ подпрограмм потребуют столько же оперативной памяти, сколько и самая большая, а не общий объем для всех шести. Однако ни одна из шести не может вызвать другую ни напрямую, ни через промежуточные подпрограммы.
- Программы поэтапно
Вся программа на Фортране может передать управление последующей фазе, перейдя к Супервизору с инструкцией загрузить последующую фазу в основную память. Большую программу можно разделить на три части, скомпилированные отдельно, которые называются ЧАСТЬ1, ЧАСТЬ2 и ЧАСТЬ3. Выполнение начинается с // XEQ PART1
и в подходящий момент PART1 выполнит оператор Fortran CALL LINK(PART2)
и так далее. Имя программы-последователя в CALL не может быть переменным, но логика программы может определять, будет ли передано управление на другую фазу и какой именно. CALL LINK
заявление выполняется. Как упоминалось выше , сам компилятор Фортрана был написан таким образом, при этом каждая фаза компиляции выполнялась отдельной программой.
- ОБЩЕЕ хранилище данных
Программы, такие как программы на Фортране, располагаются по младшим адресам памяти ядра (чуть выше супервизора). Фортран выделяет пространство по старшим адресам для любых переменных и массивов, объявленных COMMON. Если последующий этап программы содержит соответствующее объявление COMMON, то информация в этой общей области может быть разделена между этапами. Фазы могли без проблем опускать объявление COMMON, при условии, что эти фазы не были настолько большими, чтобы их программный код вторгался в общую область. ОБЩЕЕ хранилище не только распределяет данные между фазами; Переменные COMMON с меньшим объемом памяти можно использовать для передачи данных между основной программой и подпрограммами в рамках одной фазы, хотя данные могут быть потеряны при переходе к следующей фазе.
Примеры программирования [ править ]
Примеры можно выполнить на эмуляторе IBM 1130, доступном на сайте IBM 1130.org .
Пример колоды ассемблерных программ [ править ]
В следующем листинге показана колода карт , которая компилирует и запускает программу на ассемблере , которая выводит колоду карт на построчный принтер.
// JOB // ASM *LIST * LCARD.ASM - LIST A DECK OF CARDS TO LINE PRINTER * * PROGRAM * NEW PAGE ON PRINTER * A READ A CARD * CONVERT FORMAT * PRINT A LINE ON PRINTER * GOTO A * START LIBF PRNT1 GOTO NEW PAGE ON 1132 DC /3100 PRINTER CHANNEL 1-NEW PAGE * NEXTC LIBF CARD0 READ FROM 1442 CARD READER DC /1000 CONTROL TO READ DC CBUFF STORE 80 COLUMNS CINP LIBF CARD0 DC 0 B CINP LOOP UNTIL CARD IS READ * LIBF ZIPCO CONVERT CARD TO PRINTER DC /1100 UNPACKED IN, PACKED OUT DC CBUFF+1 INPUT BUFFER DC PBUFF+1 OUTPUT BUFFER DC 80 CHARACTER COUNT CALL HLEBC HOLLERITH TO EBCDIC * LIBF PRNT1 PRINT 80 CHARACTERS DC /2000 CONTROL CODE TO PRINT DC PBUFF PRINT BUFFER DC PERR PRINT ERROR POUT LIBF PRNT1 CHECK FOR PRINT COMPLETE DC 0 B POUT LOOP UNTIL COMPLETE * B NEXTC READ NEXT CARD * * DATA * CBUFF DC 80 80 COLUMNS PER CARD BSS 80 * PBUFF DC 40 40 WORDS 80 CHARACTERS BSS 40 * PERR DC 0 B I PERR THIS RETURNS TO THE * PRINTER ERROR HANDLER * WHICH WILL TERMINATE THE PROGRAM * END START PROGRAM ENTRY POINT // XEQ TEST DATA 1 HELLO WORLD TEST DATA 2
В этом задании ассемблер оставляет результат своей сборки во временной области системного диска, а команда XEQ выполняет содержимое временной области. Странный вид END START
имеет два значения: конец исходного кода ассемблера и имя точки входа подпрограммы, которая имеет метку START.
Исходный код ассемблера начинается с 21-го столбца карты, а не с первого. В системах без дисковода ассемблер вбивал код в начало только что прочитанной карты (устройство считывания карт на самом деле представляло собой считывающее устройство со станцией перфорации после станции чтения), а затем считывало следующую карту. Для обработки прямых ветвей и тому подобного второй проход ассемблера буквально включал второй проход карт через считыватель/перфоратор. Если требовались изменения исходного кода, программист дублировал карты, чтобы получить колоду с пустыми столбцами 1–20, готовую к следующему прогону через ассемблер.
По соглашению, буферам предшествует количество слов. DC
(Определить константу) объединяет счетное слово и следующие BSS
(Блок, начинающийся по символу) резервирует необходимое количество слов для буфера. Буфер карты требует 80 слов, по одному на каждый столбец карты. Драйвер CARD0 считывает каждый столбец карты буквально, используя 12 из 16 бит буферного слова, при этом бит устанавливается на каждое отверстие, пробитое в соответствующей строке этого столбца. Шаблон ударов обычно описывает текстовый символ с помощью кода Холлерита . Клавиатура консоли также вводит данные в программу в коде Холлерита — единственный случай, когда два устройства используют одну и ту же кодировку символов.
Однако программа принтера работает с текстом в 8-битном формате EBCDIC с двумя символами в слове, что требует буфера на 40 слов. Для выполнения преобразования программа использует библиотечную процедуру ZIPCO. Несмотря на видимость, заявление CALL HLEBC
не выполняется, поскольку HLEBC — это не подпрограмма, а таблица преобразования Холлерита в EBCDIC, поставляемая IBM. Оператор CALL предоставляет ZIPCO адрес таблицы и гарантирует, что связывающий загрузчик включит таблицу в программу, таким образом, это пятый параметр для ZIPCO, хотя один из них занимает два слова памяти: кодовое слово операции BSI для CALL равно неиспользованы и поэтому обычно тратятся впустую, но второе слово расширения CALL HLEBC
— это адрес таблицы HLEBC, необходимой ZIPCO. После преобразования программа отправляет преобразованный вывод, который теперь находится в буфере PBUFF, на принтер через драйвер PRNT1. И снова программа работает до тех пор, пока драйвер принтера не сообщит о завершении, затем программа считывает следующую карту.
Этот пример не содержит кода, позволяющего решить, когда остановиться. Более полная программа будет проверять карточки, начинающиеся с //
, что означает начало следующего задания. Чтобы как можно скорее остановить устройство считывания карт, программа может проверить код Холлерита /
еще до преобразования карты в EBCDIC.
ввод- и Асинхронный вывод производительность
Вызов CARD0 для чтения карты инициирует эту операцию и немедленно возвращается вызывающей стороне, которая может продолжить другую деятельность. Однако пример программы не пытается перекрывать ввод и вывод с помощью буферов, даже несмотря на то, что он имеет две отдельные рабочие области; он просто возвращается к CIMP для повторного тестирования. После того, как CARD0 обнаруживает прерывание завершения операции устройства считывания карт, он возвращает одно слово дальше, тем самым пропуская переход обратно к CIMP и выходя из цикла.
В примерах процедур устройства ввода-вывода не работают на максимальной скорости. Примечательно, что устройство считывания карт всего через несколько миллисекунд после сообщения о завершении чтения карты начнет последовательность остановок, после чего новой команде чтения придется ждать, чтобы начать следующий цикл чтения. Считыватель IBM 1442 мог читать 400 карт в минуту на полной скорости, но даже небольшая нерешительность в командах чтения снизила бы его пропускную способность вдвое или даже хуже. Программа на Фортране не могла вовремя выполнить даже простейшую обработку ввода и поэтому не могла читать карты на полной скорости. Один общий Фортран DO
петля для чтения карт заставляла двигатель останавливаться и запускаться так часто, что ускоряло износ. При использовании буферизации управление устройством считывания карт могло перекрываться с обработкой, и устройство считывания могло работать на полной скорости с большими колодами данных, но память для более сложной программы и для буферов часто была в дефиците.
Даже при использовании ассемблера и двойной буферизации программа для вывода колоды карт из считывателя IBM 2501 (1000 карт/мин) на построчный принтер не успевала, поскольку перевод из шаблонов отверстий для карточек в EBCDIC для принтера выполнялся EBPRT работал слишком медленно; вместо этого потребовались более сложные ZIPCO и HLEBC, как в примере.
Пример сеанса APL\1130 [ править ]
На следующем изображении показан простой сеанс APL \1130. Этот сеанс проводился с помощью симулятора 1130, доступного на сайте IBM 1130.org.
Вышеупомянутый сеанс показывает вход в систему, сложение целых чисел от 1 до 100, создание таблицы сложения для целых чисел 1..5 и выход из системы.
Конкурирующие системы [ править ]
В том же году, когда был представлен 1130, компания Digital Equipment Corporation представила меньший по размеру, более дешевый и более продаваемый 12-битный PDP-8 , признанный первым успешным миникомпьютером.
Влияние 1130 года [ править ]
- Брайан Атли был менеджером проекта 1130-х годов во время его разработки и внедрения. На третьей вечеринке 11/30 Брайан сказал, что до того, как IBM Marketing назвала 1130, она была известна как Small Engineering Computer System или SECS. [35] Первоначальная архитектура была 18-битной, но была изменена на 16-битную под влиянием развития System/360 . Полный диалог его презентации 2005 года доступен на IBM1130.org .
- Известный разработчик программного обеспечения Грейди Буч впервые познакомился с программированием на IBM 1130: [36]
... Я ломился в двери местного офиса продаж IBM, пока продавец не сжалился надо мной. После того, как мы немного поговорили, он вручил мне Фортран [руководство]. Я уверен, что он дал его мне, думая: «Я больше никогда не услышу об этом ребенке». На следующей неделе я вернулся и сказал: «Это действительно здорово. Я прочитал все и написал небольшую программу. Где я могу найти компьютер?» Этот парень, к моей радости, нашел для меня время программирования на IBM 1130 по выходным и поздним вечером. Это был мой первый опыт программирования, и я должен поблагодарить анонимного продавца IBM за начало моей карьеры. Спасибо, IBM.
- LISP Гуру Гай Стил написал интерпретатор LISP для IBM 1130, когда учился в старшей школе ( Бостонская латинская школа , у которой был IBM 1130 для использования студентами). [37] [38] Его код и документация для LISP 1.6, а также краткое изложение текущей работы по запуску его в условиях моделирования доступны на IBM1130.org .
- Чак Мур хотел назвать свой новый язык «Четвертым», но операционная система IBM 1130 была ограничена пятисимвольными именами, поэтому в итоге он получил название FORTH . [39]
- Дэн Бриклин , создатель программы VisiCalc , начал заниматься программированием, когда изучил и использовал IBM 1130 в рамках летнего проекта Национального научного фонда по компьютеру и математике для старшеклассников, проводимого в Пенсильванском университете в 1966 году. [40]
- IBM 1130 с ядром 8 килослов использовался для первого в мире полноценного исследования по поиску внеземного разума в Радиообсерватории Университета штата Огайо . Это оборудование обнаружило Wow! сигнал . [41]
- Чарльз Гольдфарб , отец SGML , описывает работу по установке системы набора текста на базе IBM 1130, которая «в конечном итоге изменила мою карьеру», подтолкнув его к универсальной разметке: [42]
Система представляла собой компьютер IBM 1130, машину размером с письменный стол с 8 КБ оперативной памяти, дисководом на 512 КБ, устройством чтения бумажной ленты Teletype CX и перфоратором бумажной ленты BRPE, а также фотомеханическим наборным устройством Photon 713. Это задание стало моим первым опытом управления базой данных машиночитаемых документов: я научился аккуратно скручивать перфоленту так, чтобы ее можно было аккуратно хранить в цилиндрических корзинах для мусора.
Тем временем, хотя я и не знал об этом, корни обобщенной разметки были заложены. Исторически электронные рукописи содержали управляющие коды или макросы, которые заставляли документ форматироваться определенным образом («специфическое кодирование»). Напротив, общее кодирование, которое началось в конце 1960-х годов, использует описательные теги (например, «заголовок», а не «формат-17»).
- Алан Кей использовал IBM 1130 в ранней работе над графическим интерфейсом для своей докторской диссертации. диссертацию в 1969 году. [43]
- Центральная техническая средняя школа Хатчинсона («Hutch Tech») в Буффало, штат Нью-Йорк, использовала IBM 1130 в первой в стране четырехлетней программе информатики для средней школы в 1969 году. Роберт Сантучи был руководителем программы информатики и вел занятия по программированию и индуктивной логике. . [44]
- наняла инженера из IBM Компания Signetics , который включил ряд архитектурных особенностей IBM 1130 в Signetics 2650 . однокристальный процессор [45]
11:30 сегодня [ править ]
Известно, что по состоянию на 2024 год из примерно 10 000 произведенных систем существуют следующие:
- ACONIT в Гренобле, Франция, имеет полную систему 1130. [46]
- В Музее компьютерной истории ( Маунтин-Вью, Калифорния ) имеется система 1130. [47]
- COSECANS ( Базель, Швейцария ). [48]
- Национальный музей вычислительной техники (TNMOC) (Блетчли-Парк, Великобритания) имеет полную систему 1130. [49] [1]
- ( В Штутгартском университете Германия) имеется функциональная система 1130. [50]
- Карл Клаунч [51] восстановил или находится в процессе восстановления нескольких систем 1130, включая одну для Музея системных исходников. [52] и еще один для музея Федерации старинных компьютеров. [53]
Апокрифы [ править ]
Предположения о том, почему продукту был присвоен номер 1130, основывались на следующих возможностях:
- Поскольку 1130 была небольшой научной машиной, число было выбрано путем умножения 360 (как в IBM 360 ) на π .
- В 11:30 планировщики продукта зашли в тупик относительно того, как назвать продукт.
- Что 1130 был 11-м компьютерным проектом IBM и содержал 30 инструкций.
Другие предполагают, что существование IBM 1130 объясняет, почему ни один компьютер с обозначением «11/30» никогда не появлялся в PDP-11 . семействе машин [54]
См. также [ править ]
Примечания [ править ]
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б с «Галерея больших систем: IBM 1130» . Национальный музей вычислительной техники. Архивировано из оригинала 11 февраля 2020 года . Проверено 11 февраля 2020 г.
- ↑ Перейти обратно: Перейти обратно: а б Руководство по установке IBM 1130 , IBM Form GA26-5914, июнь 1966 г., BitSavers
- ↑ Перейти обратно: Перейти обратно: а б Фрэнсис, CG (11 февраля 1965 г.). «IBM представляет мощный маленький компьютер» . Директор по информации (Пресс-релиз). Уайт-Плейнс, Нью-Йорк : International Business Machines (IBM). Архивировано из оригинала 5 июля 2019 г.
- ^ Атли, Брайан (январь 2005 г.). «Приглашенный докладчик: Брайан Атли» (MP3) (Интервью) . Проверено 2 января 2012 г.
- ^ 760 фунтов: модели 1A, 1B, 2A, 2B, 4A и 4B.
1050 фунтов: модели 1C, 1D, 2C, 2D, 3B, 3C, 3D, 5B, 5C и 5D.- «Документы IBM 1130» . www.bitsavers.org . fe/GA26-5914-8_1130_Installation_Manual_Physical_Planning_Dec71.pdf , стр. 10–11.
- ^ «Система сбора данных и управления IBM 1800» . Архивы IBM . 23 января 2003 года . Проверено 20 августа 2021 г.
- ↑ Перейти обратно: Перейти обратно: а б Эмерсон В. Пью; Лайл Р. Джонсон; Джон Х. Палмер (1991). Системы IBM 360 и ранние версии 370 . МТИ Пресс. ISBN 978-0-262-16123-7 .
- ^ «Новый миникомпьютер Xerox» . Нью-Йорк Таймс . 29 января 1973 года.
- ^ «Xerox 530 поддерживает COBOL» . Компьютерный мир . 26 декабря 1973 года.
- ^ «Компьютер Rank Xerox 530» (PDF) . www.computerhistory.org . Проверено 23 сентября 2014 г.
- ^ «Заказы Xerox 530 «обнадеживают» » .
- ^ Ларри Брид (август 2006 г.). «Как мы добрались до APL\1130» . Вектор (Британская ассоциация APL) . 22 (3). ISSN 0955-1433 . Архивировано из оригинала 12 мая 2008 г. Проверено 11 марта 2007 г.
- ^ Хедрик, GE; Робертсон, Алан, «Компилятор подмножества АЛГОЛА 68 штата Оклахома». Международная конференция 1975 г. по Алголу 68. Стиллуотер, штат Оклахома, 10–12 июня 1975 г.
- ^ Хедрик, GE, «Инструкция ALGOL68 в Университете штата Оклахома» , Бюллетень ACM SIGCSE - Специальный выпуск восьмого технического симпозиума по образованию в области информатики, домашняя страница, том 9, выпуск 3, август 1977 г., ACM Нью-Йорк, Нью-Йорк, США
- ^ МакДжонс, Пол, «Реализации и диалекты Алгола 68» , Группа сохранения программного обеспечения , Музей истории компьютеров
- ^ Корпорация IBM (1967). Статистическая система 1130 (1130-CA-06X) Руководство пользователя (PDF) . Проверено 8 февраля 2015 г.
- ^ Корпорация IBM (1968). Руководство по логике программы рабочей станции удаленного ввода заданий IBM 1130 (PDF) . Проверено 8 февраля 2015 г.
- ^ Корпорация IBM (1967). Система набора текста IBM 1130 (RPQ) (PDF) . Проверено 8 февраля 2015 г.
- ↑ Перейти обратно: Перейти обратно: а б Корпорация IBM (1968). Справочное руководство по системе IBM 1130 Disk Monitor (PDF) . Проверено 31 августа 2021 г.
- ^ Корпорация IBM (май 1972 г.). Система IBM 1130 Disk Monitor, версия 2, Руководство программиста и оператора (PDF) . Проверено 6 февраля 2015 г.
- ^ «ИБМ 1130» . Проверено 21 февраля 2017 г.
- ^ Цитата: « Наш 1130 имеет дисковый картридж на 2315, 1/2 миллиона слов, расположенный с правой стороны, за дверцей. Устройство чтения бумажной ленты, вероятно, в основном использовалось для загрузки вместо большой карты 1442 со скоростью 300 карт / мин. читатель » .
- ^ Функциональные характеристики IBM 1130 (PDF) . Справочная библиотека по системам IBM. На странице 136 Функциональных характеристик, на рисунке 40, показано, как каждое из 12 отверстий на перфокарте заполняет 16 бит слова памяти при выполнении IPL (начальной загрузки программы) с использованием «Чтения в режиме загрузки».
- ^ «Программы мониторинга» .
- ^ Корпорация IBM. «Папка 1130 Facts: вычислительная система IBM 1130» . Архивы IBM . Проверено 29 апреля 2023 г.
- ^ «Рабочие процедуры IBM 1130» (PDF) . БитСейверы . Справочная библиотека по системам IBM.
- ^ Описание специальной функции IBM 1130 — номер RPQ канала подключения 831552, форма A26-1579-0 (PDF) . Справочная библиотека систем IBM (первое издание). Сан-Хосе, Калифорния: Корпорация IBM. Октябрь 1968 года . Проверено 10 августа 2009 г.
- ^ «Считыватель страниц оптических меток IBM 1231» .
- ^ Корпорация IBM. «Архивы IBM: хронология DPD (стр. 4)» . Проверено 10 августа 2011 г.
- ^ Hewlett-Packard (декабрь 1971 г.). Справочное руководство по компьютеру 2100A (PDF) . п. 18 . Проверено 5 августа 2016 г.
- ^ «Руководство пользователя PDP-8» . Корпорация цифрового оборудования. Май 1966 года . Проверено 26 апреля 2021 г.
- ^ Системы научных данных. Справочное руководство по компьютеру 920 (PDF) . п. 17 . Проверено 5 августа 2016 г.
- ^ Корпорация IBM (1968). Язык ассемблера IBM 1130 (PDF) . Проверено 6 февраля 2015 г.
- ^ Библиотека подпрограмм IBM 1130, 9-е изд. (PDF) . Корпорация IBM. 1974. с. 93.
- ^ Атли, Брайан (30 октября 2006 г.). «Происхождение названия IBM 1130» . Архивировано из оригинала 1 октября 2007 г. Проверено 16 января 2007 г.
- ^ Буч, Грейди (3 апреля 2003 г.). «Грейди Буч полирует свой хрустальный шар» . ИБМ . Проверено 16 января 2007 г.
- ^ Стил, Гай Л. младший (24 ноября 2005 г.). «Мысли о языковом дизайне: новые проблемы требуют новых решений» . Журнал доктора Добба . Проверено 16 января 2006 г.
- ^ Стил, Гай Л. младший «Исповедь счастливого хакера» . Архивировано из оригинала 3 февраля 2007 г. Проверено 16 января 2006 г.
- ^ Вернее, Элизабет; Колберн, Дональд; Мур, Чарльз (март 1993 г.). «Эволюция Форта» . Проверено 16 января 2007 г.
- ^ Бриклин, Дэн (23 августа 2002 г.). «Воспоминания о посещении района залива и Музея компьютерной истории» . Проверено 16 января 2007 г.
- ^ Диксон, Боб (13 августа 2005 г.). «СЕТИ в 1970-е годы» . Большое Ухо . Проверено 16 января 2007 г.
- ^ Гольдфарб, Чарльз (1996). «Корни SGML — личные воспоминания» . Проверено 16 января 2007 г.
- ^ Кей, Алан С., «Реактивный двигатель» , доктор философии. диссертация, Университет Юты, 1969 г. «Процедуры графического отображения, генератор символов и редактор работали в течение года на компьютере IBM 1130 с «самодельным» интерфейсом. К сожалению, 1130 старался выполнять роль прославленного буфера дисплея. , и ни одна из алгоритмических процедур не была реализована».
- ^ Кох, Уоррен (1972). «Использование компьютеров в обучении в средних школах» (PDF) . Проверено 6 августа 2014 г.
- ^ «Signetics 2650: IBM на чипе» . ЦП Хижина. 16 октября 2016 г. Проверено 25 октября 2016 г.
- ^ «ИБМ 1130» . АКОНИТ (на французском языке) . Проверено 11 июля 2016 г.
- ^ «Сведения об артефакте: модель IBM 1130» . Музей истории компьютеров . Проверено 11 июля 2016 г.
- ^ Висс, Оскар. «Сайт Оскара Э. Висса» . КОСЕКАНЦЫ (на немецком языке) . Проверено 11 июля 2016 г.
- ^ «Восстановление системы IBM 1130 в течение 2011 года» . Национальный музей вычислительной техники . Архивировано из оригинала 4 апреля 2019 года . Проверено 11 июля 2016 г.
- ^ «ИБМ 1130» . Компьютерный музей факультета компьютерных наук . Проверено 11 июля 2016 г.
- ^ Клаунч, Карл. «Спасение 1130» . Проверено 11 июля 2016 г.
- ^ https://museum.syssrc.com/ .
{{cite web}}
: Отсутствует или пусто|title=
( помощь ) - ^ https://vcfed.org/ .
{{cite web}}
: Отсутствует или пусто|title=
( помощь ) - ^ ПРП-11/20 и /15
Внешние ссылки [ править ]

- Архив IBM: пресс-релизы IBM 1130 , хронология, фотографии, папка с фактами.
- Сайт IBM 1130.org Норма Алекса и Брайана Книттеля, на котором содержится важная информация о 1130 и загружаемый симулятор, поддерживающий среды DMS R2V12 и APL.
- www.ibm1130.net — это сайт Говарда Шабса, посвященный 1130.
- Личный аккаунт Арнольда Рейнхольда о модели 1130. Текст отсюда был включен в эту статью с разрешения.
- Набор PDF-файлов, состоящий из отсканированных руководств по IBM 1130.
- Страница Кима Фарника, посвященная ретро-вычислениям, в частности 1130.
- Обсуждение (тогда) вычислительного центра Angle Park, оснащенного IBM 1130.
- Фотографии IBM 1130 Боба Розенблума
- Материалы IBM 1130 в Колумбийском университете, сайт истории вычислений.
- Коллекция подробных фотографий IBM 1130 на Flickr, сделанная Питером Воаном в Национальном музее вычислительной техники.