КАРТОННОЕ Иллюстративное пособие по вычислениям

CARDIAC (CARDboard Illustrative Aid to Computation) — это учебное пособие, разработанное Дэвидом Хагелбаргером и Солом Фингерманом для Bell Telephone Laboratories в 1968 году для обучения старшеклассников тому, как работают компьютеры . В комплект входит инструкция по эксплуатации и вырезанный из картона «компьютер».
Компьютер «действует» с помощью карандаша и раздвижных карточек. Любая арифметика производится в голове человека, управляющего компьютером. Компьютер работает с десятичной системой счисления и имеет 100 ячеек памяти , которые могут хранить числа со знаком от 0 до ±999. Он имеет набор инструкций из 10 инструкций, которые позволяют CARDIAC складывать, вычитать, проверять, сдвигать, вводить, выводить и переходить.
Аппаратное обеспечение
[ редактировать ]
« ЦП пользователя » компьютера состоит из 4 слайдов, которые перемещают различные цифры и стрелки, чтобы поток реального ЦП ( мозга ) двигался в правильном направлении. У них есть один флаг (+/-), на который влияет результат в аккумуляторе.
Память состоит из второй половины картонного выреза. Есть 100 ячеек. Ячейка 0 — это « ПЗУ », всегда содержащая цифру «1»; ячейки с 1 по 98 — « ОЗУ »; доступен для инструкций и данных; а ячейку 99 лучше всего можно описать как « EEPROM ».
Ячейки памяти содержат десятичные числа со знаком от 0 до ±999 и пишутся карандашом. Клетки стираются ластиком. «Ошибка» служит счетчиком программ и помещается в отверстие рядом с текущей ячейкой памяти.
Программирование
[ редактировать ] с 10 командами CARDIAC имеет машинный язык . Инструкция представляет собой три десятичные цифры (знак игнорируется) в виде OAA
. Первая цифра — это код операции ( O
); вторая и третья цифры — это адрес ( AA
). Адресация является одной из адресаций аккумулятора к абсолютной памяти, абсолютной памяти к аккумулятору, ввода к абсолютной памяти и абсолютной памяти к выводу.
Языки высокого уровня никогда не разрабатывались для CARDIAC, поскольку они противоречили бы одной из целей устройства: представить концепции программирования на языке ассемблера.
Программы собираются вручную, а затем записываются в соответствующие ячейки памяти.
Набор инструкций
[ редактировать ]Код операции | Мнемоника | Инструкция | Описание |
---|---|---|---|
0 | ИЯФ | Вход | взять число с карты ввода и поместить его в указанную ячейку памяти. |
1 | CLA | Очистить и добавить | очистить аккумулятор и добавить в аккумулятор содержимое ячейки памяти. |
2 | ДОБАВЛЯТЬ | Добавлять | добавить содержимое ячейки памяти в аккумулятор. |
3 | ТАС | Содержимое тестового аккумулятора | выполняет проверку знака содержимого аккумулятора; если минус, переход к указанной ячейке памяти. |
4 | СФТ | Сдвиг | сдвигает аккумулятор на x налево, затем на y вправо, где x — верхняя цифра адреса, а y — нижняя. |
5 | ВНЕ | Выход | взять число из указанной ячейки памяти и записать его на выходную карту. |
6 | ЧТО | Магазин | скопировать содержимое аккумулятора в указанную ячейку памяти. |
7 | СУБ | Вычесть | вычесть содержимое указанной ячейки памяти из аккумулятора. |
8 | СПМ | Прыжок | перейти к указанной ячейке памяти. Текущий номер ячейки записывается в ячейку 99. Это позволяет использовать один уровень подпрограмм, поскольку возвратом является инструкция в ячейке 99 (в которой в качестве первой цифры жестко запрограммировано «8». |
9 | ЧРС | Остановить и сбросить | переместите ошибку в указанную ячейку, затем остановите выполнение программы. |
Операция
[ редактировать ]Программы запускаются путем перемещения трех слайдов так, чтобы число в регистре инструкций равнялось номеру в ячейке памяти, в которой находится ошибка. Как только это будет сделано, ошибка перемещается в следующую ячейку памяти. Затем пользователь следует по стрелке, которая подскажет ему, что делать дальше. Это продолжается на протяжении всего выполнения программы.
См. также
[ редактировать ]- Компьютер «Маленький человек» (еще одна обучающая модель)
- Бумажный компьютер WDR
Внешние ссылки
[ редактировать ]- обсуждение CARDIAC с примерами и симулятором на JavaScript
- интерпретатор и интерактивный отладчик на платформе .NET на GitHub
- cinc/jcinc — симулятор платформы Java с интерфейсом командной строки и графическим интерфейсом на SourceForge.
- Программный эмулятор для CARDIAC – размещен на Macintosh, Windows (непроверено) и Linux (непроверено); предоставляет редактор, простой ассемблер и примеры; коды операций 0 и 9 меняются местами, как описано на странице; исходный код является собственностью компании; бесплатные загрузки
- Краткий обзор встроенного компьютера CARDIAC на YouTube
- Проектирование ЦП на бумаге - версия CARDIAC Эла Уильямса в виде электронной таблицы на сайте доктора Добба
- Бумага для FPGA - реализация CARDIAC Элом Уильямсом в FPGA на плате FPGA (последняя статья серии на веб-сайте доктора Добба)
- Эмулятор, написанный на RUST . Это RUST-реализация эмулятора CARDIAC.