Здравствуйте, LaptevVV, Вы писали: Ну вот... Работали мы с Ленинградом — было несколько договоров... Один из договоров наши мужики реализовывали на PL-1, но не просто а со встроенным Лиспом... Сначала лисповские операторы обрабатывались препроцессором, но к концу договора все это реализовали в виде отдельной библиотеки с динамическим выделением памяти... Естественно, все это задавалось линкеру для сборки... А потом мы резко перешли на pdp-11. Причем надо было писать типовую реализацию бортовой системы реального времени. Машины еще не было, аппаратуры еще не было... А мы уже писали... После ЕС ЭВМ архитектура pdp-11 производила, конечно, странное впечатление. Но чем больше мы в нее врубались, тем более стройной и последовательной она нам казалась... Двухадресная система команд, 8 регистров общего назначения, причем в это число входил и указатель стека и IP, который назывался Program Counter. 12 методов адресации, в том числе автоинкремент регистров... Никаких исключений среди РОНов не было, можно было в команде явным образом использовать и SP и PC с любыми допустимыми режимами адресации... Сочетания режимов адресации — тоже какие угодно... Один аргумент мог быть, например, в памяти, а другой — стек... Или оба в памяти...Плавающая арифметика имела свои регистры — сейчас не помню сколько. Особенно интересно была устроена память... Вначале память имера только 64К байтов... Но в старших моделях памяти было уже 256К... Самое интересное, что машина была 16-ти разрядной, и виртуальный адрес был МЕНЬШЕ реального, который был 18 разрядов — естественно, существовалааппаратура отображения...Это единственный компьютер, который мне попался с такой особенностью... В остальных всегда виртуальный был больше реального... Байты уже были "по младшему адресу — сладшие разряды"... Система прерывания — уже векторная, Интел потом слизал с нее свою таблицу вектров прерываний реального режима... Но самое интересное — это, конечно, система ввода-вывода! Такой мне не попадалось больше нигде! Каждое устройство имело рчяд регистров, совершенно типичных, например, регистр состояния и управления, регистр данных... Самое интересное. что эти регистры имели реальные адреса на адресной шине... Таким образхом не было нужды в отдельных командах ввода-вывода... Ввод вывод выполнялся обычной командой пересылки mov! А если нужно было установить или проверить биты, то это можно было сделать логическими командами or и and. Только в командах нужно было использовать абсолютную адресацию для адресов регистров... Это была ПЕСНЯ!!!!!! Для реализации оси, которую мы писали, естественно, на ассемблере, была придумана целая технология... Сначала на СМ-1420 писалась программа с абсолютным режимом адресации... Результат трансляции помещался на гибкий диск... Затем гибкий диск переносился на (почти) персональный ВУМС (прообраз ДВК), где загружался в память... Затем переходили в аппаратный режим работы, в котором был встроенный отладчик программ — то, что у микрософта потом было в виде debug сделано. Функциональность была достаточно хорошая, поэтому отлаживали программу в восьмеричных кодах... Представляете, как я тогда знал расположение всех разрядов любой команды! После отладки по отдельному проводу "сливали" исправленный код в целевой компьютер с такой же архитектурой, но имевший заводской номер 1 (!!!!!!), потом номер 2 — до третьего мы так и не добрались... И проверяли уже там... Нам пришлось кроме классических частей оси полностью писать всю систему ввода-вывода, поскольку ВСЕ устройства были нашими доморощщенными — разрабатывала та же ленинградская контора... Дотчики были дискретные и Аналоговые — естественно, через АЦП... Клавиатуры не было — был специальный пульт с кнопками, каждая из которых вызывала прерывание... Из устройств вывода было оригинальное устройство бегущая строка...Как в рекламе сейчас делают... Или в кассах где-нить...Был довольно хороший телетайп, который был и устройством печати... Но самым замечательным был дисплей! Он хоть и не был цветным, но дисплей IBM PC ему в подметки не годился! 1. на экране одновременно совмещались 3 поля — одно текстовое и два графических. В памяти дисплея можно было прошить до 128 константных слайдов... Таким образом, на экран одновременно можно было выводить и статический текстовый слайд, статический графический слайд, и изменяемую графическую информацию... Дисплей имел систему команд, поэтому слайды выводились одной командой... Вы же помните. что регистры устройства — это адреса памяти! В общем, как только нам в работу поступил этот дисплей — мы на нем стали отдлаживать прерывания от таймера...Выводили просто на экран, как в электронных часах... Мужики смеялись: Будильник за 7 миллионов рублей... Продолжим попозже... |