IBM 1401 — десятковий комп'ютер, розроблений передовою компанією IBM, випущений 5 жовтня 1959 року. Комп'ютер належить до другого покоління. Версія 1401 була найпоширенішим комп’ютером 60-х років. 8 лютого 1971 року був знятий з виробництва.

Опис IBM випускала комп'ютери IBM-1401 для комерційних розрахунків. Ця машина могла прочитувати і записувати магнітні стрічки та перфокарти й роздруковувати результат з такою ж швидкістю, як і IBM-7094, але при цьому коштувала дешевше. Для наукових обчислень вона не підходила, але була зручною для ведення ділових записів.

У IBM-1401 не було регістрів та фіксованої довжини слова. Пам'ять складалася з байтів, вміщувала 4 Кбайт по 8 бітів (4 Кбайт). Кожен байт містив символ в 6 бітів, адміністративний біт та біт для вказівки кінця слова.

У команди MOVE, наприклад, є початкова адреса та адреса пункту призначення. Ця команда переміщає байти з першої адреси в другу за порядком, поки біт кінця слова не прийме значення 1.

Приклад програми:, 008015,022029,036043,050054,055062,063065,069080 / 333 / M0792502F1.065HELLO WORLDПокрокове пояснення до алгоритму виконання наведеної вище програми: Встановити слово-мітку (opcode «,» операнди 008 015) Встановити більше слів-міток. Очистити сховище - 333-300 (opcode «/» 333 операнда) Очистити сховище - інша частина області друку 299-200 (opcode«/» прикутий адрес) Переміщення «Hello World» до області друку (код операції «М», операнда 079 та 250) Друк рядка (opcode «2») Прогнати сторінку через ПРИНТЕР (код операції «F» модифікатор «1») Halt (opcode операнд 065)

Історія Щомісячна орендна плата за використання IBM 1401 починалася від 2500 дол. США (на сьогоднішній день близько 20 539 дол. США). Компанія IBM була вражена, отримавши 5200 замовлень за перші п'ять тижнів після виходу моделі 1401. IMB 1401 використовувала багато електроенергії для стабільної роботи. Число покупців в 60-х роках досягло 10 000 (До середини 60-х років майже половина всіх комп'ютерних систем в світі були типу 1401). Продаж моделі 1401 припинився в 1971 році.

Зазвичай IBM 1401 використовувалася на малих підприємствах для обробки даних. Саме 1401 передавала вхідні дані з периферійних пристроїв (таких як IBM 1402 Card Read-Punch) на стрічку, а потім з стрічки на перфокарту, принтер IBM 1403 або іншій периферійний пристрій. IBM вперше застосувала емуляцію мікрокоду для 1401 у вигляді схеми постійної пам'яті. Модель котра вийшла після припинення продажі IBM 1401 мала назву IBM 1410.

Архітектура 

Кожен буквено-цифровий символ в IBM 1401 був закодований шістьма бітами - B, A, 8, 4, 2, 1. B та A біти були названі зонами-біт. 8,4,2,1 біти були названі цифровими бітами взяті зі шпальти перфокарти IBM 80. IBM називали 1401 в символьному коді BCD, незважаючи на те, що термін описує тільки десяткове кодування. З кожною клітинкою пам'яті були ще два біти, які мають назву C для непарної перевірки та M для парної перевірки знаків слова.

Кожна комірка пам'яті мала наступні біти:CBA 8 4 2 1 М IBM 1401 був доступний в шести конфігураціях пам'яті: 1400, 2000., 4000, 8000, 12000, або 16000 символів. Адресуватися міг кожен символ, адреса в діапазоні від 0 до 15999.

Деякі операції використовують спеціальні осередки пам'яті (ці місця не були збережені й можуть бути використані для інших цілей).

Формат інструкції для IBM-1401 Opcode with [A-or-I-or-unit-address [B-address]] [modifier] word markОпкод задається одним символом. Адреси пам'яті ( «I» branch target, «A» і «B» date) та блок-адреси представляють три символи. Модифікатор опкоду також задається одним символом. Довжина інструкції 1, 2, 4, 5, 7 або 8 символів.

Апаратна реалізація Велика частина логічної схеми в 1401 — діодно-транзисторна логіка (), яку IBM назвав CTDL (Complemented Transistor Diode Logic).

Інші типи IBM схем: Alloy (присутня логіка але в основному різні нелогічні функції необхідні для транзисторів ). CTRL (присутня регістерно-транзистерна логіка (RTL) ). SDTDL (присутня регістерно-діодна логіка).

Ці схеми були побудовані на основі дискретних компонентів (резистори, конденсатори, транзистори) та встановлені на односторонніх паперах епоксидних друкованих плат розміру (2,5 - 4,5) дюйма з золотими гальванічними краями, 16-контактного роз'єму (5.375 - 4,5 дюйма) з двома 16-контактними золотими гальванічними торцевими роз'ємами (подвійної ширини), які IBM називають SMS карти (стандартна модульна система). SMS-карти були вставлені в гніздах на шарнірних стійках, для якої IBM дала назву ворота. Як і більшість машин, на той час, IBM 1401 використовувала пам'ять на магнітних осердях. Діаметр кожного осердя був близько 1 мм в діаметрі, для запису-читання біту використовувалися чотири провідники. Стек з восьми таких площин зберігав шість бітів даних. Системи були широко доступна з двома, трьома або чотирма такими модулями.

Символи та коди операцій IBM 1401 представляє односимвольні операції. У багатьох випадках, особливо для більш загальних інструкцій, символи були такими: A - додати (від add), B - відгалужитись (від branch), S - відняти (від subtract), та інші. Символи можна побачити в таблиці:

BCD символи Print-A Print-Hкарта BCD w/o MОпераціїВизначення та примітки Blank       C           . . . 12-3-8  BA8 21 Halt   ¤ ¤ ) 12-4-8 CBA84   Clear Word MarkРомб [     12-5-8  BA84 1     <     12-6-8  BA842   Менше     12-7-8 CBA8421  Мітка групи & & + 12 CBA         $ $ $ 11-3-8 CB 8 21     * * * 11-4-8  B 84       ]     11-5-8 CB 84 1     ;     11-6-8 CB 842      Δ     11-7-8  B 8421  Дельталі (Зміна режиму) - - - 11  B          / / / 0-1 C A   1 Clear Storage  ,,, 0-3-8 C A8 21 Set Word Mark   % % ( 0-4-8   A84   DivideСпеціальна функція ˠ     0-5-8 C A84 1  слово Separator \     0-6-8 C A842   Лівий ⧻     0-7-8   A8421  Стрічка сегмента ƀ ‡ ‡ N/A 0     A      Не може бути зчитана з карти без наявності RPQ, читається як 8-2 # # = 3-8    8 21 Modify Addressпотрібно більш 4000 символів пам'яті @ @ ' 4-8 C  84   MultiplyСпеціальна функція :     5-8    84 1     >     6-8    842   Більше √     7-8 C  8421   Tape Mark ? & & 12-0 CBA8 2  Zero and Addплюс Нуль A A A 12-1  BA   1 Add   B B B 12-2  BA  2  Branch or Branch on Indicator C C C 12-3 CBA  21 Compare   D D D 12-4  BA 4   Move NumericalБіти E E E 12-5 CBA 4 1 Move Characters and Edit   F F F 12-6 CBA 42  Control CarriageПринтер G G G 12-7  BA 421     H H H 12-8  BA8    Store B-Address Registerспеціальна функція I I I 12-9 CBA8  1     ! - - 11-0  B 8 2  Zero and Subtractмінус Нуль J J J 11-1 CB    1     K K K 11-2 CB   2  Select Stacker and other device controls L L L 11-3  B   21 Load Characters to Word Mark   M M M 11-4 CB  4   Move Characters to Word Mark   N N N 11-5  B  4 1 No Operation   O O O 11-6  B  42      P P P 11-7 CB  421 Move Characters to Record or Group MarkСпеціальна функція Q Q Q 11-8 CB 8    Store A-Address RegisterСпеціальна функція R R R 11-9  B 8  1     ‡ ‡ ‡ 0-2-8   A8 2    Record Mark S S S 0-2 C A  2  Subtract   T T T 0-3   A  21 Translate1460 U U U 0-4 C A 4   Control UnitЛента V V V 0-5   A 4 1 Branch if Word Mark and/or Zone   W W W 0-6   A 42  Branch if Bit EqualСпеціальна функція X X X 0-7 C A 421 Move and Insert ZerosСпеціальна функція Y Y Y 0-8 C A8    Move ZoneЛента Z Z Z 0-9   A8  1 Move Characters and Suppress Zeros   0 0 0 0 C  8 2      1 1 1 1       1 Read a Card   2 2 2 2      2  Write a Line   3 3 3 3 C    21 Write and Read   4 4 4 4     4   Punch a Card   5 5 5 5 C   4 1 Read and Punch   6 6 6 6 C   42  Write and Punch   7 7 7 7     421 Write, Read, and Punch   8 8 8 8    8    Start Read FeedСпеціальна функція 9 9 9 9 C  8  1 Start Punch FeedСпеціальна функція

Модифікатори символів за допомоги B-інструкції BCD СимволБлокПризначення  Blank 1401знака необхідності в наступному символі 1 1009умови   1011операції символу повернення   1011читач парності індикатор   1231автоматичний вибір   1285помилка   1412контроль перевірки індикатора   1418пізнє читання   1419документ для читання   1428пізно прочитати або змінити режим пізнього читання   1445помилка принтера   7340незвичайний кінець   7740передача до набору з ненормальним станом   DDCпомилка передачі 2 1009буфер доступний   1011перфоратор готорвий   1011читач готовий   1231повний буфер   1285кінець рядка   1412сигнал читача    1418готові брати участь   1419документ зчитує (PDS 4)   1428готові брати участь   7340hypertape нормальний кінець   7740передача завершена успішно   DDCпередача закінчилася через GMWM 3 1009відбулася безпомилкова передача   1011перфоратор не готовий до прийому даних   1231готовий читати   1285читач транспортує    1412зчитування, перевірте індикатор   1418документ для зчитування    1419діє поле    1428документ після зчитування    7340блок управління 7641 зайнятий   7740отримати запит   DDCзапит на читання 4 1009поганий індикатор   1011перфоратор не готовий читати   1231порожній буфер   1285помічена лінія   1412сума поле індикатора   1419процес управління   7340hypertape увага   77407740 увага   DDCзаписи 5 1009підтвердження коду помилки   1011перфоратор затягнутий   1231помилка читання або перевитрата   1285інформація про заголовок   1412індикатор на процес контролю   1418кінцевий документ   1419рахунковий номер   1428кінцевий документ   1445принтер зайнятий 6 1009потрібна увага до програма    1011перфораторна котушка повна   1231прапорець синхронізації   1285готовий прочитати рядок   1412номер індикатора   1418символ в рядку   1419поле транзитного номера   1428символ в рядку   1445каретка зайнята   DDCнаписати до процесу 7 1009кінець повідомлення   1285читач готовий   1412транзитний номер індикатора   1418порожній транспорт (кінець файлу)   1419поле серійного номера   1428порожній транспорт (кінець файлу)   1445канал каретки 9   DDCчитати прогрес 8 1009кінець файлу   1285кінець файлу   1412перевірка індикатора    1418готовий читати   1419автовибір   1428готовий читати   1448канал 12 каретки   DDCсистема зупинена 9 1403канал стрічки каретки   0 1404помилка ' or @ 1403канал стрічки каретки   > 1448кінець блоку / 1401невірні порівняння S 1401порівняти T 1401малі порівняння  U 1401великі порівняння V 1301помилка диска   1311помилка диска   1405читати чи записувати перевірки на парність W 1301неправильна довжина запису   1311неправильна довжина запису   1405неправильна довжина запису X 1301нерівний адреса   1311нерівний адреса   1405нерівний адреса Y 1301стан помилки   1311стан помилки   1405стан помилки Z 1401арифметичне переповнення ‡ 1403помилка принтера ( or % 1401перевірка процесу    1440I/O перевірити та вимкнути \ 1301доступ зайнятий   1311доступ зайнятий J 1419I/O-індикатор каналу зайнятий   TAUстрічка зайнята   SIOпослідовне введення-виведення K TAUкінець  запису або мітки стрічки L TAUпомилка стрічки N 1301непрацездатність   1311непрацездатність   1405непрацездатність P 1403принтер зайнятий Q 1407запит R 1403каретка зайнята ! 1402помилка перфоратора * 1407запит + or & 1442остання карта  A 1402остання карта  SS А B 1401 SS B   7340відповідь C 1401 SS C D 1401 SS D E 1401 SS E   7340кінець на відповідь F 1401 SS F G 1401 SS G H 1402читач зайнятий I 1402перфоратор зайнятий ? 1402помилка читача < 1448попередження

Програмне забезпечення Програмне забезпечення IBM для 1401 налічує: 1401 Symbolic Programming System assembler. Autocoder на магнітну стрічку. Autocoder на диску. COBOL FARGO FORTRAN II (потребує память в 8000 символів). FORTRAN IV (потребує память в 12000 символів). RPG (потребує память в 4000 символів).

Цікаві факти У жовтні 2006 року ісландський авангардний музикант Йоганн Йоганссон випустив альбом IBM 1401. Для запису альбому, Йоганн переписав його на шістдесят частин струнного оркестра.

Концепція заснована на роботі, виконаної в 1964 році його батьком, Йоганном Гуннарссоном (головний інженер з експлуатації одного з перших комп'ютерів країни) та Еліас Давісон (один з перших програмістів у країні).

Відео Презентація комп'ютера IBM 1401 французькою мовою з англійськими субтитрами  YouTube April 20, 2014

Див. також IBM

Примітки