https://emuverse.ru/w/api.php?action=feedcontributions&user=Panther&feedformat=atomEmuverse - Вклад [ru]2024-03-29T07:16:11ZВкладMediaWiki 1.40.0https://emuverse.ru/w/index.php?title=%D0%A0%D0%B0%D1%84%D0%BE%D1%81_%D0%BF%D0%BB%D1%8E%D1%81_%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%83_%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F&diff=3774Рафос плюс Введение в систему Описание применения2024-03-26T08:04:00Z<p>Panther: категория</p>
<hr />
<div>{{ДИ}}<br />
<pre><br />
<br />
<br />
<br />
<br />
<br />
<br />
УТВЕРЖДЕН<br />
<br />
-ЛУ<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СМ ЭВМ<br />
<br />
ОПЕРАЦИОННАЯ СИСТЕМА ДЛЯ ОРГАНИЗАЦИИ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ<br />
СИСТЕМ С РАЗДЕЛЕНИЕМ ФУНКЦИЙ<br />
<br />
Р А Ф О С - П Л Ю С<br />
<br />
ВВЕДЕНИЕ В СИСТЕМУ<br />
<br />
ОПИСАНИЕ ПРИМЕНЕНИЯ<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
ЛИСТОВ 54<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
1985<br />
ПЕРВ.ПРИМЕН.<br />
ЛИТЕРА<br />
�<br />
- 2 -<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
АННОТАЦИЯ<br />
<br />
<br />
<br />
<br />
ДОКУМЕНТ "ОПИСАНИЕ ПРИМЕНЕНИЯ" СОСТОИТ ИЗ ДВУХ ЧАСТЕЙ.<br />
ПЕРВАЯ ЧАСТЬ ДОКУМЕНТА СЛУЖИТ ДЛЯ НАЧАЛЬНОГО ЗНАКОМСТВА<br />
ПОЛЬЗОВАТЕЛЯ С ОПЕРАЦИОННОЙ СИСТЕМОЙ РЕАЛЬНОГО ВРЕМЕНИ,<br />
ПРЕДНАЗНАЧЕННОЙ ДЛЯ ОРГАНИЗАЦИИ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ СИС-<br />
ТЕМ С РАЗДЕЛЕНИЕМ ФУНКЦИЙ (РАФОС) ДЛЯ СМ ЭВМ.<br />
<br />
В ПЕРВОМ И ВТОРОМ РАЗДЕЛАХ ДАНА КРАТКАЯ ХАРАКТЕРИСТИКА<br />
СИСТЕМЫ, EE НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ.<br />
<br />
ТРЕТИЙ РАЗДЕЛ СОДЕРЖИТ ОБЗОР ОПЕРАЦИОННОЙ СИСТЕМЫ.<br />
ПРЕДСТАВЛЕНА СТРУКТУРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СИСТЕМЫ И<br />
КРАТКО ОПИСАНЫ ПРОГРАММНЫЕ КОМПОНЕНТЫ.<br />
<br />
В ЧЕТВЕРТОМ РАЗДЕЛЕ ДЛЯ РАЗЛИЧНЫХ КАТЕГОРИЙ ПОЛЬЗОВА-<br />
ТЕЛЕЙ ДАНЫ РЕКОМЕНДАЦИИ ПО ИЗУЧЕНИЮ ДОКУМЕНТАЦИИ.<br />
<br />
ДОКУМЕНТ СОДЕРЖИТ ЧЕТЫРЕ ПРИЛОЖЕНИЯ:<br />
<br />
- НАИМЕНОВАНИЕ УСТРОЙСТВ;<br />
- ОБОЗНАЧЕНИЯ И СИСТЕМНЫЕ СОГЛАШЕНИЯ;<br />
- ОСНОВНЫЕ ПОНЯТИЯ И ТЕРМИНЫ;<br />
- СТРУКТУРА ДОКУМЕНТАЦИИ.<br />
<br />
ВО ВТОРОЙ ЧАСТИ ДОКУМЕНТА ПРЕДСТАВЛЕНА НАСТРОЙКА СИС-<br />
ТЕМЫ, ПРИВОДЯТСЯ ОСОБЕННОСТИ ЕЕ ЭКСПЛУАТАЦИИ, ДАЕТСЯ ИНФОР-<br />
МАЦИЯ ОБ ИЗМЕНЕНИЯХ КОМПОНЕНТОВ СИСТЕМЫ В СРАВНЕНИИ С ПРЕ-<br />
ДЫДУЩЕЙ ВЕРСИЕЙ РАФОС, КРАТКО ИЗЛОЖЕНЫ НОВЫЕ ВОЗМОЖНОСТИ<br />
ОПЕРАЦИОННОЙ СИСТЕМЫ.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 3 -<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
СОДЕРЖАНИЕ<br />
<br />
<br />
<br />
АННОТАЦИЯ 2<br />
<br />
<br />
1. НАЗНАЧЕНИЕ СИСТЕМЫ 5<br />
<br />
<br />
2. УСЛОВИЯ ПРИМЕНЕНИЯ 6<br />
<br />
<br />
3. ОПИСАНИЕ СИСТЕМЫ. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ 7<br />
<br />
3.1. УПРАВЛЯЮЩАЯ СИСТЕМА 7<br />
3.1.1. RM/SJ-МОНИТОРЫ 12<br />
3.1.2. FB-МОНИТОР 14<br />
3.1.3. XM-МОНИТОР 15<br />
3.1.4. TS-МОНИТОР 16<br />
3.1.5. KOMAHДHЫE ИHTEPФEЙCЫ 17<br />
3.1.6. ФAЙЛOBAЯ CИCTEMA 19<br />
3.1.7. ДРАЙВЕРЫ BHEШHИХ УCTPOЙCTB 22<br />
3.1.8. PAБOTA C ГPAФИЧECKИM ДИCПЛEEM 23<br />
3.1.9. АВТОРИЗАЦИЯ ДОСТУПА 23<br />
3.2. СИСТЕМНЫЕ ПРОГРАММЫ 24<br />
3.2.1. BINCOM - СРАВНЕНИЕ ДВОИЧНЫХ ФАЙЛОВ 24<br />
3.2.2. PIP - РАБОТА С ФАЙЛАМИ 24<br />
3.2.3. DUP - ОБСЛУЖИВАНИЕ УСТРОЙСТВ 25<br />
3.2.4. DIR - РАСПЕЧАТКА КАТАЛОГОВ 25<br />
3.2.5. EL, ELINIT, ERROU - ПОДСИСТЕМА<br />
РЕГИСТРАЦИИ ОШИБОК 25<br />
3.2.6. PAT - КОРРЕКЦИЯ ОБ'ЕКТНЫХ ФАЙЛОВ 26<br />
3.2.7. SIPP - КОРРЕКЦИЯ ЗАГРУЗОЧНЫХ ФАЙЛОВ 26<br />
3.2.8. RESORS - РАСПЕЧАТКА СОСТОЯНИЯ СИСТЕМЫ 26<br />
3.2.9. FILEX - ОБМЕН ФАЙЛАМИ 27<br />
3.2.10. FORMAT - ФОРМАТИРОВАНИЕ ДИСКОВ 27<br />
3.2.11. LINK - КОМПОНОВЩИК 27<br />
3.2.12. LIBR - БИБЛИОТЕКАРЬ 28<br />
3.2.13. EDIT - РЕДАКТОР ОБЩЕГО НАЗНАЧЕНИЯ 28<br />
3.2.14. SED - ЭКРАННЫЙ РЕДАКТОР ТЕКСТОВ 28<br />
3.2.15. DOC - ФОРМАТИРОВАНИЕ ТЕКСТОВ 28<br />
3.2.16. LDA - АБСОЛЮТНЫЙ ЗАГРУЗЧИК 29<br />
3.2.17. QUEUE - ПОДСИСТЕМА СПУЛИНГА 29<br />
3.2.18. PGN - ИНТЕРАКТИВНЫЙ МАКРОПРОЦЕССОР 29<br />
3.2.19. ОТЛАДЧИКИ 30<br />
3.2.20. VRF - СРАВНЕНИЕ НОСИТЕЛЕЙ 30<br />
3.2.21. DUMP - РАСПЕЧАТКА ФАЙЛОВ 31<br />
3.2.22. SLP - КОРРЕКЦИЯ ТЕКСТОВЫХ ФАЙЛОВ 31<br />
3.2.23. SRCCOM - СРАВНЕНИЕ ФАЙЛОВ 31<br />
3.3. СИСТЕМЫ ПРОГРАММИРОВАНИЯ 31<br />
3.3.1. МАКРОАССЕМБЛЕР 31<br />
3.3.2. ПАСКАЛЬ 32<br />
3.4. ДОПОЛНИТЕЛЬНЫЕ КОМПОНЕНТЫ 33<br />
3.4.1. СИСТЕМА ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ<br />
�<br />
- 4 -<br />
<br />
<br />
<br />
<br />
(СИМФОР) 33<br />
<br />
4. РЕКОМЕНДАЦИИ ПО РАБОТЕ С ДОКУМЕНТАЦИЕЙ 34<br />
<br />
<br />
ПРИЛОЖЕНИЕ 1. НАИМЕНОВАНИЕ УСТРОЙСТВ 35<br />
<br />
<br />
ПРИЛОЖЕНИЕ 2. ОБОЗНАЧЕНИЯ И СИСТЕМНЫЕ СОГЛАШЕНИЯ 38<br />
<br />
<br />
ПРИЛОЖЕНИЕ 3. ОСНОВНЫЕ ПОНЯТИЯ И ТЕРМИНЫ 40<br />
<br />
<br />
ПРИЛОЖЕНИЕ 4. СТРУКТУРА ДОКУМЕНТАЦИИ 52<br />
<br />
ЧАСТЬ 2. ОСОБЕННОСТИ СИСТЕМЫ.<br />
ОПИСАНИЕ ПРИМЕНЕНИЯ<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 5 -<br />
<br />
<br />
<br />
<br />
1. НАЗНАЧЕНИЕ СИСТЕМЫ<br />
<br />
<br />
<br />
<br />
ОПЕРАЦИОННАЯ СИСТЕМА РЕАЛЬНОГО ВРЕМЕНИ С РАЗДЕЛЕНИЕМ<br />
ФУНКЦИЙ (РАФОС) ОБЕСПЕЧИВАЕТ ФУНКЦИОНИРОВАНИЕ В ОДНОПРОГ-<br />
РАММНОМ, ДВУХПРОГРАММНОМ И МУЛЬТИПРОГРАММНОМ РЕЖИМАХ ВЫЧИС-<br />
ЛИТЕЛЬНЫХ КОМПЛЕКСОВ, СОЗДАВАЕМЫХ НА БАЗЕ РАЗЛИЧНЫХ МОДЕЛЕЙ<br />
СМ ЭВМ ПЕРВОЙ И ВТОРОЙ ОЧЕРЕДИ, ПРОГРАММНО СОВМЕСТИМЫХ С<br />
СМ-3 И СМ-4, СЛУЖАЩИХ ДЛЯ РАЗРАБОТКИ ПРОГРАММ НА ЯЗЫКАХ<br />
ВЫСОКОГО УРОВНЯ В МНОГОТЕРМИНАЛЬНОМ РЕЖИМЕ, А ТАКЖЕ ОТЛАДКИ<br />
И ВЫПОЛНЕНИЯ ПРОГРАММ В РЕАЛЬНОМ МАСШТАБЕ ВРЕМЕНИ.<br />
<br />
РАФОС ПРЕДСТАВЛЯЕТ СОБОЙ БАЗОВУЮ СИСТЕМУ, ОРИЕНТИРО-<br />
ВАННУЮ НА СОЗДАНИЕ КОМПЛЕКСОВ, В СОСТАВ КОТОРЫХ МОГУТ ВХО-<br />
ДИТЬ НЕСКОЛЬКО СПЕЦПРОЦЕССОРОВ (НАПРИМЕР, CM-2410 ИЛИ<br />
CМ-2600) ИЛИ МИКРОПРОЦЕССОРОВ. ИСПОЛЬЗОВАНИЕ ДОПОЛНИТЕЛЬНЫХ<br />
ПРОЦЕССОРОВ В СОСТАВЕ КОМПЛЕКСОВ ПОЗВОЛЯЕТ СУЩЕСТВЕННО<br />
ПОВЫСИТЬ ПРОИЗВОДИТЕЛЬНОСТЬ ТЕХНИЧЕСКИХ СРЕДСТВ ПРИ РЕШЕНИИ<br />
СПЕЦИАЛЬНЫХ КЛАССОВ ЗАДАЧ. ПОДОБНЫЕ СПЕЦИАЛИЗИРОВАННЫЕ<br />
КОМПЛЕКСЫ ПОЛУЧИЛИ НАЗВАНИЕ СИСТЕМ С РАЗДЕЛЕНИЕМ ФУНКЦИЙ,<br />
ПОСКОЛЬКУ ПОВЫШЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ В НИХ ДОСТИГАЕТСЯ ЗА<br />
СЧЕТ:<br />
<br />
- РАЗДЕЛЕНИЯ ФУНКЦИЙ МЕЖДУ ВХОДЯЩИМИ В ЕЕ СОСТАВ<br />
ПРОЦЕССОРАМИ;<br />
- ОРИЕНТАЦИИ ПРОЦЕССОРОВ НА ВЫПОЛНЕНИЕ ОДНОЙ ИЛИ<br />
НЕСКОЛЬКИХ СПЕЦИАЛЬНЫХ ФУНКЦИЙ;<br />
- ПАРАЛЛЕЛЬНОГО ФУНКЦИОНИРОВАНИЯ ВСЕХ ПРОЦЕССОРОВ<br />
КОМПЛЕКСА.<br />
<br />
НА БАЗЕ РАФОС МОЖНО СТРОИТЬ СИСТЕМЫ, СОЧЕТАЮЩИЕ РЕШЕ-<br />
НИЕ ЗАДАЧИ РЕАЛЬНОГО ВРЕМЕНИ С МНОГОПОЛЬЗОВАТЕЛЬСКОЙ РАБО-<br />
ТОЙ В РЕЖИМЕ РАЗДЕЛЕНИЯ ВРЕМЕНИ. РАФОС ХАРАКТЕРИЗУЕТСЯ<br />
САМОЙ БЫСТРОЙ РЕАКЦИЕЙ НА ВНЕШНЕЕ ВОЗДЕЙСТВИЕ (ПРЕРЫВАНИЕ)<br />
ПО СРАВНЕНИЮ С ДРУГИМИ ОПЕРАЦИОННЫМИ СИСТЕМАМИ РЕАЛЬНОГО<br />
ВРЕМЕНИ, НАПРИМЕР, ДОС-РВ, ОС-РВ.<br />
<br />
ИСПОЛЬЗУЯ РАФОС, МОЖНО СОЗДАВАТЬ ЗАКОНЧЕННЫЕ СИСТЕМЫ,<br />
СОСТОЯЩИЕ ИЗ РАФОС И ПРИКЛАДНЫХ ПРОГРАММ. РАЗРАБОТКА СИСТЕМ<br />
"ПОД КЛЮЧ" В СОЧЕТАНИИ СО СРЕДСТВАМИ РАФОС, ДЛЯ ПОЛУЧЕНИЯ<br />
СПРАВОЧНОЙ ИНФОРМАЦИИ ПОЗВОЛИТ КОНЕЧНОМУ ПОЛЬЗОВАТЕЛЮ ОТКА-<br />
ЗАТЬСЯ ОТ ИСПОЛЬЗОВАНИЯ БОЛЬШОГО ОБ'ЕМА ДОКУМЕНТАЦИИ.<br />
<br />
РАФОС ВКЛЮЧАЕТ ПРОГРАММНЫЕ СРЕДСТВА ПОСТРОЕНИЯ ЛОКАЛЬ-<br />
НЫХ МНОГОМАШИННЫХ СИСТЕМ С РАЗДЕЛЕНИЕМ ФУНКЦИЙ. ПРЕДОСТАВ-<br />
ЛЯЕМЫЕ СРЕДСТВА ПОЗВОЛЯЮТ РАЗМЕЩАТЬ КОМПЛЕКСЫ В НЕПОСРЕДСТ-<br />
ВЕННОЙ БЛИЗОСТИ ОТ ОБ'ЕКТОВ УПРАВЛЕНИЯ, ОРГАНИЗОВЫВАТЬ<br />
ДЕЦЕНТРАЛИЗОВАННУЮ ОБРАБОТКУ ДАННЫХ ПРИ ЦЕНТРАЛИЗОВАННОМ<br />
УПРАВЛЕНИИ И КООРДИНАЦИИ ВСЕМИ ПРОЦЕССАМИ, НАРЯДУ С ЭФФЕК-<br />
ТИВНЫМ ИСПОЛЬЗОВАНИЕМ ТЕХНИЧЕСКИХ СРЕДСТВ.<br />
<br />
УЧИТЫВАЯ ОРИЕНТАЦИЮ РАФОС НА ПРОЕКТИРОВАНИЕ И ЭКСПЛУА-<br />
ТАЦИЮ СИСТЕМ С РАЗДЕЛЕНИЕМ ФУНКЦИЙ, В СОСТАВ РАФОС ВКЛЮЧЕНА<br />
СИСТЕМА ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ ДИСКРЕТНЫХ, НЕПРЕРЫВНЫХ<br />
И НЕПРЕРЫВНО-ДИСКРЕТНЫХ ПРОЦЕССОВ (СИМФОР). СИМФОР ПОЗВО-<br />
ЛЯЕТ РАЗРАБАТЫВАТЬ МОДЕЛИ ПРОЕКТИРУЕМЫХ КОМПЛЕКСОВ, В СОС-<br />
ТАВ КОТОРЫХ ВХОДИТ НЕСКОЛЬКО ПРОЦЕССОРОВ СОВМЕСТНО С ОБОРУ-<br />
�<br />
- 6 -<br />
<br />
<br />
<br />
<br />
ДОВАНИЕМ, УЧИТЫВАТЬ АРХИТЕКТУРНЫЕ ОСОБЕННОСТИ И СПЕЦИФИКУ<br />
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.<br />
<br />
<br />
<br />
<br />
2. УСЛОВИЯ ПРИМЕНЕНИЯ<br />
<br />
<br />
<br />
<br />
РАФОС ОРИЕНТИРОВАНА НА ПРИМЕНЕНИЕ В ПРОМЫШЛЕННЫХ СИС-<br />
ТЕМАХ УПРАВЛЕНИЯ ТЕХНОЛОГИЧЕСКИМИ ПРОЦЕССАМИ РЕАЛЬНОГО ВРЕ-<br />
МЕНИ, В СИСТЕМАХ АВТОМАТИЗАЦИИ НАУЧНЫХ ИССЛЕДОВАНИЙ (ИНЖЕ-<br />
НЕРНЫЕ РАСЧЕТЫ, СБОР И ОБРАБОТКА ДАННЫХ, ПОЛУЧЕННЫХ С ЭКС-<br />
ПЕРИМЕНТАЛЬНЫХ УСТАНОВОК, ИЗМЕРИТЕЛЬНО-ВЫЧИСЛИТЕЛЬНЫХ КОМП-<br />
ЛЕКСОВ), В СИСТЕМАХ КОЛЛЕКТИВНОГО ПОЛЬЗОВАНИЯ ДЛЯ ЦЕЛЕЙ<br />
ОБУЧЕНИЯ И В РЯДЕ ДРУГИХ ОБЛАСТЕЙ.<br />
<br />
РАФОС ПОЗВОЛЯЕТ ЭФФЕКТИВНО ОРГАНИЗОВАТЬ ВЫЧИСЛИТЕЛЬНЫЙ<br />
ПРОЦЕСС В КОМПЛЕКСАХ CM ЭВМ, ИМЕЮЩИХ ОТ 16 ДО 248 КБАЙТ<br />
ОПЕРАТИВНОЙ ПАМЯТИ, И ОБСЛУЖИВАЕТ ШИРОКИЙ НАБОР ВНЕШНИХ<br />
УСТРОЙСТВ, ВХОДЯЩИХ В НОМЕНКЛАТУРУ ТЕХНИЧЕСКИХ СРЕДСТВ СМ<br />
ЭВМ.<br />
<br />
НА БАЗЕ РАФОС МОЖНО СТРОИТЬ ЭФФЕКТИВНЫЕ ЧИСТО "ИСПОЛ-<br />
НЯЮЩИЕ" СИСТЕМЫ ДЛЯ КОМПЛЕКСОВ, В СОСТАВ КОТОРЫХ ВХОДЯТ:<br />
ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР, ОПЕРАТИВНАЯ ПАМЯТЬ НЕ МЕНЕЕ 8 КБАЙТ<br />
И УСТРОЙСТВО СВЯЗИ С ОБ'ЕКТОМ УПРАВЛЕНИЯ. ПОДОБНЫЕ КОМПЛЕК-<br />
СЫ МОЖНО ИСПОЛЬЗОВАТЬ ТОЛЬКО ДЛЯ ВЫПОЛНЕНИЯ УЖЕ ОТЛАЖЕННЫХ<br />
ПРИКЛАДНЫХ ПРОГРАММ.<br />
<br />
ПРИ РАЗРАБОТКЕ КОНЕЧНЫХ ПРОГРАММ (РАБОТА В "ИНСТРУМЕН-<br />
ТАЛЬНОМ" РЕЖИМЕ) МОЖНО ИСПОЛЬЗОВАТЬ КАК ПРОСТЕЙШИЕ КОМПЛЕК-<br />
СЫ (ТИПА СМ-1300 ИЛИ "ЭЛЕКТРОНИКА-60") С НАКОПИТЕЛЕМ НА<br />
ГИБКИХ МАГНИТНЫХ ДИСКАХ, ТАК И БОЛЕЕ СЛОЖНЫЕ КОНФИГУРАЦИИ<br />
(НАПРИМЕР, КОМПЛЕКС СМ-1420 С ПАМЯТЬЮ 2 МБАЙТ, ПАКЕТЫ СМЕН-<br />
НЫХ ДИСКОВ БОЛЬШОЙ ЕМКОСТИ И 10-15 ТЕРМИНАЛОВ), РАБОТАЮЩИЕ<br />
В МНОГОПОЛЬЗОВАТЕЛЬСКОМ РЕЖИМЕ РАЗДЕЛЕНИЯ ВРЕМЕНИ.<br />
<br />
В КОМПЛЕКСАХ, ИМЕЮЩИХ РАСШИРЕННЫЕ КОНФИГУРАЦИИ, МОЖНО<br />
СОЧЕТАТЬ МНОГОПОЛЬЗОВАТЕЛЬСКУЮ РАБОТУ В РЕЖИМЕ РАЗДЕЛЕНИЯ<br />
ВРЕМЕНИ С РАБОТОЙ ПРОГРАММ В РЕАЛЬНОМ МАСШТАБЕ ВРЕМЕНИ НА<br />
ПРИОРИТЕТНОЙ ОСНОВЕ.<br />
<br />
ПРИ ГЕНЕРАЦИИ ПОЛЬЗОВАТЕЛЬ МОЖЕТ НАСТРАИВАТЬ СИСТЕМУ<br />
НА ТРЕБУЕМУЮ КОНФИГУРАЦИЮ ТЕХНИЧЕСКИХ СРЕДСТВ. ПРИ ПОДКЛЮ-<br />
ЧЕНИИ НЕСТАНДАРТНЫХ УСТРОЙСТВ, СОЗДАННЫХ ПОЛЬЗОВАТЕЛЕМ,<br />
РАЗРАБОТКА И НАПИСАНИЕ ДРАЙВЕРОВ ДЛЯ НИХ ПРЕДЕЛЬНО УПРОЩЕ-<br />
НЫ. ПРОЦЕДУРА ОТЛАДКИ И ВКЛЮЧЕНИЯ ДРАЙВЕРА В СИСТЕМУ МОЖЕТ<br />
ВЫПОЛНЯТЬСЯ В ФОНОВОМ РЕЖИМЕ БЕЗ ПРЕКРАЩЕНИЯ РАБОТЫ ПРОГ-<br />
РАММЫ РЕАЛЬНОГО ВРЕМЕНИ.<br />
<br />
СИСТЕМА ПРОСТА И УДОБНА В ЭКСПЛУАТАЦИИ, НЕ ТРЕБУЕТ<br />
ВЫСОКОЙ КВАЛИФИКАЦИИ ОПЕРАТОРА (ПРОГРАММИСТА). ЭТО ОБЕСПЕ-<br />
ЧИВАЕТСЯ ШИРОКИМ НАБОРОМ КОМАНД МОНИТОРА, ОБЛАДАЮЩИХ БОЛЬ-<br />
ШОЙ ГИБКОСТЬЮ. ОСТАЛЬНУЮ ИНФОРМАЦИЮ ДЛЯ РАБОТЫ С СИСТЕМОЙ<br />
МОЖНО ПОЛУЧИТЬ В ПРОЦЕССЕ НЕПРОДОЛЖИТЕЛЬНОЙ КОНСУЛЬТАЦИИ У<br />
СПЕЦИАЛИСТА И НЕПОСРЕДСТВЕННО "СПРАШИВАЯ" У СИСТЕМЫ ПРИ<br />
�<br />
- 7 -<br />
<br />
<br />
<br />
<br />
РАБОТЕ С ТЕРМИНАЛОМ.<br />
<br />
В КОНЦЕ ДОКУМЕНТА ПРИВОДЯТСЯ ОБОЗНАЧЕНИЯ И СИСТЕМНЫЕ<br />
СОГЛАШЕНИЯ, ИСПОЛЬЗУЕМЫЕ ПРИ РАБОТЕ С РАФОС (ПРИЛОЖЕНИЯ<br />
1-4).<br />
<br />
<br />
<br />
<br />
3. ОПИСАНИЕ СИСТЕМЫ. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ<br />
<br />
<br />
<br />
<br />
РАФОС ИМЕЕТ СЛЕДУЮЩУЮ СТРУКТУРУ:<br />
<br />
- УПРАВЛЯЮЩАЯ СИСТЕМА;<br />
- СИСТЕМНЫЕ ПРОГРАММЫ;<br />
- СИСТЕМЫ ПРОГРАММИРОВАНИЯ;<br />
- ДОПОЛНИТЕЛЬНЫЕ КОМПОНЕНТЫ.<br />
<br />
<br />
<br />
3.1. УПРАВЛЯЮЩАЯ СИСТЕМА<br />
<br />
<br />
<br />
ЯДРОМ УПРАВЛЯЮЩЕЙ СИСТЕМЫ РАФОС ЯВЛЯЕТСЯ МОНИТОР,<br />
КОТОРЫЙ СОЗДАЕТСЯ В ПРОЦЕССЕ ГЕНЕРАЦИИ СИСТЕМЫ, ПРИЧЕМ ЕГО<br />
РЕЗИДЕНТНЫЙ КОМПОНЕНТ (RMON) МОЖЕТ ЗАНИМАТЬ ОПЕРАТИВНУЮ<br />
ПАМЯТЬ ОТ 3 ДО 48 КБАЙТ.<br />
<br />
МОНИТОР ОБЕСПЕЧИВАЕТ ВЫПОЛНЕНИЕ СЛЕДУЮЩИХ ФУНКЦИЙ:<br />
<br />
- РАБОТА С ТАЙМЕРОМ (ЧАСАМИ);<br />
- ОРГАНИЗАЦИЯ ВВОДА/ВЫВОДА;<br />
- УПРАВЛЕНИЕ ДРАЙВЕРАМИ ВНЕШНИХ УСТРОЙСТВ;<br />
- ВЕДЕНИЕ СИСТЕМЫ ФАЙЛОВ НА ВНЕШНИХ ЗАПОМИНАЮЩИХ<br />
УСТРОЙСТВАХ (USR);<br />
- ДИАЛОГ С ОПЕРАТОРОМ, ИНТЕРПРЕТАЦИЯ КОМАНДНЫХ СТРОК<br />
(CSI);<br />
- ДИАГНОСТИКА ОШИБОК И Т.Д.<br />
<br />
ВСЕ МОНИТОРЫ РАФОС ПОДРАЗДЕЛЯЮТСЯ НА ПЯТЬ ТИПОВ:<br />
<br />
RM-МОНИТОР<br />
- ИСПОЛНЯЮЩИЙ (ОЗУ-РЕЗИДЕНТНЫЙ) МОНИТОР РЕАЛЬНОГО<br />
ВРЕМЕНИ;<br />
<br />
SJ-МОНИТОР<br />
- ОДНОЗАДАЧНЫЙ МОНИТОР РЕАЛЬНОГО ВРЕМЕНИ;<br />
<br />
FB-МОНИТОР<br />
- ФОНОВО-ОПЕРАТИВНЫЙ МОНИТОР РЕАЛЬНОГО ВРЕМЕНИ, ОБС-<br />
ЛУЖИВАЮЩИЙ ДО 8 ЗАДАЧ НА КОМПЛЕКСАХ С ПАМЯТЬЮ ДО<br />
56 КБАЙТ;<br />
<br />
<br />
<br />
�<br />
- 8 -<br />
<br />
<br />
<br />
<br />
XM-МОНИТОР<br />
- МОНИТОР УПРАВЛЕНИЯ ПАМЯТЬЮ ДО 248 КБАЙТ ДЛЯ ОБСЛУ-<br />
ЖИВАНИЯ ДО 8 ЗАДАЧ РЕАЛЬНОГО ВРЕМЕНИ;<br />
<br />
TS-МОНИТОР<br />
- МНОГОПОЛЬЗОВАТЕЛЬСКИЙ МОНИТОР РАЗДЕЛЕНИЯ ВРЕМЕНИ<br />
ДЛЯ КОМПЛЕКСОВ С ПАМЯТЬЮ ОТ 96 ДО 248 КБАЙТ И ОБС-<br />
ЛУЖИВАЮЩИЙ ДО 30 ЗАДАЧ.<br />
<br />
НАЛИЧИЕ НЕСКОЛЬКИХ ТИПОВ МОНИТОРОВ ПОЗВОЛЯЕТ ОБЕСПЕ-<br />
ЧИТЬ МАКСИМАЛЬНО ЭФФЕКТИВНУЮ ЗАГРУЗКУ ТЕХНИЧЕСКИХ СРЕДСТВ<br />
КОМПЛЕКСОВ ДЛЯ ШИРОКОГО ДИАПАЗОНА КОНФИГУРАЦИИ РАЗЛИЧНЫХ ПО<br />
ПРОИЗВОДИТЕЛЬНОСТИ И ВОЗМОЖНОСТЯМ МОДЕЛЕЙ ПРОЦЕССОРОВ СМ<br />
ЭВМ.<br />
<br />
ВСЕ МОНИТОРЫ РАФОС ИМЕЮТ ПРОГРАММНУЮ СОВМЕСТИМОСТЬ<br />
СНИЗУ ВВЕРХ. НАПРИМЕР, TS-МОНИТОР, ЗАНИМАЮЩИЙ ОКОЛО 40-48<br />
КБАЙТ ОПЕРАТИВНОЙ ПАМЯТИ И ОБЕСПЕЧИВАЮЩИЙ РАБОТУ В МНОГО-<br />
ТЕРМИНАЛЬНОМ РЕЖИМЕ, ПОЗВОЛЯЕТ ВЫПОЛНЯТЬ РАЗРАБОТКУ ПРОГ-<br />
РАММ, КОТОРЫЕ БЕЗ ПЕРЕКОМПОНОВКИ СМОГУТ ВЫПОЛНЯТЬСЯ ПОД<br />
УПРАВЛЕНИЕМ РЕЗИДЕНТНОГО RM-МОНИТОРА, ЗАНИМАЮЩЕГО ОКОЛО 3<br />
КБАЙТ ПАМЯТИ.<br />
<br />
КАЖДЫЙ МОНИТОР РАБОТАЕТ С СОБСТВЕННЫМ НАБОРОМ ДРАЙВЕ-<br />
РОВ. ПРИ ГЕНЕРАЦИИ СИСТЕМЫ ФАЙЛЫ, СОДЕРЖАЩИЕ ДРАЙВЕРЫ,<br />
ПОЛУЧАЮТ СООТВЕТСТВУЮЩИЕ ПОСТФИКСЫ, ОДНОЗНАЧНО ОПРЕДЕЛЯЮЩИЕ<br />
ОРИЕНТАЦИЮ ДРАЙВЕРА НА РАБОТУ СОВМЕСТНО С ОПРЕДЕЛЕННЫМ<br />
ТИПОМ МОНИТОРА. ИСПОЛЬЗУЮТСЯ СЛЕДУЮЩИЕ ПОСТФИКСЫ:<br />
<br />
R - ДЛЯ RM-МОНИТОРА,<br />
S - ДЛЯ SJ-МОНИТОРА,<br />
F - ДЛЯ FB-МОНИТОРА,<br />
X - ДЛЯ XM-МОНИТОРА,<br />
T - ДЛЯ TS-МОНИТОРА.<br />
<br />
МОНИТОРЫ РАЗМЕЩАЮТСЯ В ФАЙЛАХ, ИМЕЮЩИХ ИМЕНА, СОСТОЯ-<br />
ЩИЕ ИЗ ПЯТИ БУКВ: ПОСЛЕДНИЕ ДВЕ БУКВЫ ОПРЕДЕЛЯЮТ ТИП МОНИ-<br />
ТОРА, ПЕРВЫЕ ТРИ БУКВЫ - ВСЕГДА "RAF". ТИПОМ ФАЙЛА, СОДЕР-<br />
ЖАЩЕГО МОНИТОР, ЯВЛЯЕТСЯ .SYS. НАПРИМЕР, ФАЙЛ RAFSJ.SYS<br />
СОДЕРЖИТ SJ-МОНИТОР.<br />
<br />
ФАЙЛ МОНИТОРА НЕ СОДЕРЖИТ ДРАЙВЕР УСТРОЙСТВА, С КОТО-<br />
РОГО ЗАГРУЖАЕТСЯ ОПЕРАЦИОННАЯ СИСТЕМА, И ПОЭТОМУ ОДИН И ТОТ<br />
ЖЕ ФАЙЛ МОНИТОРА МОЖЕТ ИСПОЛЬЗОВАТЬСЯ ДЛЯ РАБОТЫ С РАЗЛИЧ-<br />
НЫМИ ТИПАМИ СИСТЕМНЫХ УСТРОЙСТВ БЕЗ ПЕРЕГЕНЕРАЦИИ.<br />
<br />
ВО ВРЕМЯ ВЫПОЛНЕНИЯ СИСТЕМНАЯ ИЛИ ПРИКЛАДНАЯ ПРОГРАММА<br />
РАЗМЕЩАЕТСЯ В ОПЕРАТИВНОЙ ПАМЯТИ, КОТОРАЯ ВЫДЕЛЯЕТСЯ ЕЙ<br />
МОНИТОРОМ. ВСЕ МНОЖЕСТВО АДРЕСОВ ЯЧЕЕК ПАМЯТИ, К КОТОРЫМ<br />
МОЖЕТ ОБРАЩАТЬСЯ ПРОГРАММА, НАЗЫВАЕТСЯ АДРЕСНЫМ ПРОСТРАНСТ-<br />
ВОМ (ПРОСТРАНСТВОМ АДРЕСОВ). ПРОСТРАНСТВО АДРЕСОВ (ВИР-<br />
ТУАЛЬНОЕ) СОСТАВЛЯЕТ 64 KБАЙТ (ОПРЕДЕЛЯЕТСЯ 16-РАЗРЯДНЫМ<br />
АДРЕСОМ).<br />
<br />
<br />
ПРИМЕЧАНИЕ. ДЛЯ КОМПЛЕКСОВ БЕЗ ДИСПЕТЧЕРА ПАМЯТИ (ТИПА<br />
CM-3) ВИРТУАЛЬНОЕ ПРОСТРАНСТВО АДРЕСОВ СОВПАДАЕТ С ФИЗИЧЕС-<br />
КОЙ ПАМЯТЬЮ. ИСПОЛЬЗОВАНИЕ АППАРАТУРЫ ДИСПЕТЧЕРА ПАМЯТИ (В<br />
CM-4) ПОЗВОЛЯЕТ XM/TS-МОНИТОРАМ ОТОБРАЖАТЬ ВИРТУАЛЬНОЕ<br />
�<br />
- 9 -<br />
<br />
<br />
<br />
<br />
АДРЕСНОЕ ПРОСТРАНСТВО ПРОГРАММЫ НА РАЗЛИЧНЫЕ ОБЛАСТИ ФИЗИ-<br />
ЧЕСКОЙ ПАМЯТИ. ОТОБРАЖЕНИЕ ПРОИЗВОДИТСЯ АППАРАТУРОЙ ДИСПЕТ-<br />
ЧЕРА ПАМЯТИ, ПРЕОБРАЗУЮЩЕЙ 16-РАЗРЯДНЫЙ ВИРТУАЛЬНЫЙ АДРЕС В<br />
18-РАЗРЯДНЫЙ АДРЕС ОБЩЕЙ ШИНЫ (ФИЗИЧЕСКИЙ).<br />
<br />
ТИПИЧНОЕ РАСПРЕДЕЛЕНИЕ ВИРТУАЛЬНОГО ПРОСТРАНСТВА ПРОГ-<br />
РАММЫ ПОКАЗАНО НА РИС. 1.<br />
<br />
АДРЕСА<br />
(ВОСЬМЕРИЧНЫЕ)<br />
177776 !------------------! 64 KБАЙТ<br />
! РЕГИСТРЫ !<br />
! ВНЕШНИХ ! СТРАНИЦА ВВОДА/ВЫВОДА<br />
! УСТРОЙСТВ !<br />
160000 !------------------! 56 KБАЙТ<br />
<br />
!------------------!<br />
! !<br />
. .<br />
. .<br />
. .<br />
! !<br />
!------------------! ВЕРХНИЙ АДРЕС, ДОСТУПНЫЙ<br />
! ! ПРОГРАММЕ<br />
! A !<br />
! ! !<br />
! ! ДИНАМИЧЕСКАЯ !<br />
! ! ОБЛАСТЬ ДАННЫХ !<br />
! ! ПРОГРАММЫ !<br />
! ! !<br />
!------------------!<br />
! СТАТИЧЕСКАЯ !<br />
! ОБЛАСТЬ !<br />
! ПРОГРАММЫ !<br />
!------------------! НИЖНИЙ АДРЕС ПРОГРАММЫ<br />
! ! (ПО УМОЛЧАНИЮ 1000)<br />
! ! СТЕК !<br />
! ! ПРОГРАММЫ !<br />
! ! !<br />
! V !<br />
! !<br />
500 !------------------!<br />
! ! ВЕКТОРЫ ПРЕРЫВАНИЙ ОТ<br />
! ! ВНЕШНИХ УСТРОЙСТВ<br />
60 !------------------!<br />
<br />
! SYSCOM ! СИСТЕМНАЯ ОБЛАСТЬ СВЯЗИ<br />
40 !------------------!<br />
! ! ВЕКТОРЫ ПРЕРЫВАНИЙ<br />
! ! (ЛОВУШКИ) ПРОЦЕССОРА<br />
0 !------------------!<br />
<br />
РИС. 1<br />
<br />
<br />
ОБЛАСТЬ ПАМЯТИ С АДРЕСАМИ 0-500 ИСПОЛЬЗУЕТСЯ СЛЕДУЮЩИМ<br />
ОБРАЗОМ:<br />
<br />
0-40 - ВЕКТОРЫ ПРЕРЫВАНИЙ (ЛОВУШКИ) ЦЕНТРАЛЬНОГО ПРОЦЕС-<br />
�<br />
- 10 -<br />
<br />
<br />
<br />
<br />
СОРА: ПО ОШИБКЕ ШИНЫ, ПО ЗАРЕЗЕРВИРОВАННОЙ ИНСТ-<br />
РУКЦИИ И ПО СПЕЦИАЛЬНЫМ ИНСТРУКЦИЯМ ПРЕРЫВАНИЯ<br />
ПРОЦЕССОРА;<br />
<br />
40-60 - СИСТЕМНАЯ ОБЛАСТЬ СВЯЗИ (SYSCOM), СОДЕРЖАЩАЯ ПАРА-<br />
МЕТРЫ ПРОГРАММЫ И ЯЧЕЙКИ ДЛЯ ОБМЕНА ИНФОРМАЦИЕЙ<br />
МЕЖДУ ПРОГРАММОЙ И МОНИТОРОМ;<br />
<br />
60-500 - ВЕКТОРЫ ПРЕРЫВАНИЙ ОТ ВНЕШНИХ УСТРОЙСТВ, ВКЛЮЧАЯ<br />
ТАЙМЕР, ДИСПЕТЧЕР ПАМЯТИ, ТЕРМИНАЛЫ И Т.Д.<br />
<br />
ОБЛАСТЬ ПАМЯТИ, ЗАНИМАЕМУЮ ПРОГРАММОЙ, МОЖНО УСЛОВНО<br />
РАЗБИТЬ НА ТРИ ЧАСТИ:<br />
<br />
- ОБЛАСТЬ СТЕКА, КОТОРЫЙ ПО УМОЛЧАНИЮ НАЧИНАЕТСЯ С<br />
АДРЕСА 1000 И ДИНАМИЧЕСКИ РАСШИРЯЕТСЯ В СТОРОНУ<br />
МЛАДШИХ АДРЕСОВ ПАМЯТИ;<br />
- СТАТИЧЕСКАЯ ОБЛАСТЬ ПРОГРАММЫ СОДЕРЖИТ ИНСТРУКЦИИ<br />
ПРОЦЕССОРА И СТАТИЧЕСКИЕ ОБЛАСТИ ДАННЫХ; РАЗМЕР<br />
СТАТИЧЕСКОЙ ОБЛАСТИ ВЫЧИСЛЯЕТСЯ ПРИ КОМПОНОВКЕ<br />
ПРОГРАММЫ;<br />
- ДИНАМИЧЕСКАЯ ОБЛАСТЬ ДАННЫХ ИСПОЛЬЗУЕТСЯ ДЛЯ ВРЕ-<br />
МЕННЫХ МАССИВОВ И БУФЕРОВ В ПРОЦЕССЕ РАБОТЫ ПРОГ-<br />
РАММЫ.<br />
<br />
ВЕРХНИЙ АДРЕС ПАМЯТИ, ДОСТУПНЫЙ ПРОГРАММЕ, ЗАВИСИТ ОТ<br />
ТИПА И ПАРАМЕТРОВ МОНИТОРА, ОТ РАЗМЕРА ЗАГРУЖЕННЫХ В ПАМЯТЬ<br />
ДРАЙВЕРОВ ВНЕШНИХ УСТРОЙСТВ, А ТАКЖЕ ОТ РАЗМЕРА ФИЗИЧЕСКОЙ<br />
ПАМЯТИ КОМПЛЕКСА. В ОБЩЕМ СЛУЧАЕ ПРОГРАММА ДОЛЖНА БЫТЬ<br />
СПРОЕКТИРОВАНА ПОЛЬЗОВАТЕЛЕМ ТАКИМ ОБРАЗОМ, ЧТО ЧЕМ БОЛЬШЕ<br />
РАЗМЕР ДОСТУПНОЙ ПАМЯТИ, ТЕМ БЫСТРЕЕ ОНА ДОЛЖНА РАБОТАТЬ ЗА<br />
СЧЕТ ИСПОЛЬЗОВАНИЯ ДОПОЛНИТЕЛЬНЫХ БУФЕРОВ (ДВОЙНАЯ БУФЕРИ-<br />
ЗАЦИЯ) ДЛЯ ОПЕРАЦИЙ ВВОДА/ВЫВОДА, А ТАКЖЕ ЗА СЧЕТ ИСПОЛЬЗО-<br />
ВАНИЯ БУФЕРОВ БОЛЬШОГО РАЗМЕРА.<br />
<br />
СТАРШИЕ 8 KБАЙТ ВИРТУАЛЬНОГО АДРЕСНОГО ПРОСТРАНСТВА<br />
ПРОГРАММЫ ОБЫЧНО ОТОБРАЖАЮТСЯ НА СТРАНИЦУ ВВОДА/ВЫВОДА<br />
ОБЩЕЙ ШИНЫ. ЭТА ОБЛАСТЬ АДРЕСОВ НА ОБЩЕЙ ШИНЕ, В КОТОРОЙ<br />
НАХОДЯТСЯ РЕГИСТРЫ ВНЕШНИХ УСТРОЙСТВ, РЕГИСТРЫ ДИСПЕТЧЕРА<br />
ПАМЯТИ ПРОЦЕССОРА И Т.Д. ДОСТУП К СТРАНИЦЕ ВВОДА/ВЫВОДА<br />
ВСЕГДА ОБЕСПЕЧЕН ВСЕМ ПРОГРАММАМ, ВЫПОЛНЯЮЩИМСЯ ПОД УПРАВ-<br />
ЛЕНИЕМ RM/SJ/FB-МОНИТОРОВ, И ПРИВИЛЕГИРОВАННЫМ ПРОГРАММАМ<br />
XM-МОНИТОРА.<br />
<br />
<br />
ПРИМЕЧАНИЕ. ПРОГРАММА ЯВЛЯЕТСЯ ПРИВИЛЕГИРОВАННОЙ В<br />
XM-МОНИТОРЕ, ЕСЛИ РАЗРЯД 10 (VIRT$) В СЛОВЕ СОСТОЯНИЯ ЗАДА-<br />
ЧИ (JSW) СОДЕРЖИТ 0. ПО УМОЛЧАНИЮ ПРОГРАММА КОМПОНУЕТСЯ КАК<br />
ПРИВИЛЕГИРОВАННАЯ. ЕСЛИ РАЗРЯД VIRT$ СОДЕРЖИТ 1, ТО ПРОГ-<br />
РАММА ЯВЛЯЕТСЯ ВИРТУАЛЬНОЙ И НЕ ИМЕЕТ ДОСТУПА К ВЕКТОРАМ<br />
ПРЕРЫВАНИЙ И СТРАНИЦЕ ВВОДА/ВЫВОДА.<br />
<br />
ДЛЯ ДОСТУПА К СТРАНИЦЕ ВВОДА/ВЫВОДА ПРИ РАБОТЕ С<br />
TS-МОНИТОРОМ ПРОГРАММА ДОЛЖНА ИСПОЛЬЗОВАТЬ СПЕЦИАЛЬНЫЕ СИС-<br />
ТЕМНЫЕ ЗАПРОСЫ (МАКРОКОМАНДЫ ИЛИ ПОДПРОГРАММЫ).<br />
<br />
ПРЕДСТАВЛЕННОЕ РАСПРЕДЕЛЕНИЕ АДРЕСОВ ПРОГРАММЫ (ТИП<br />
ФАЙЛА .SAV) СООТВЕСТВУЕТ РАЗМЕЩЕНИЮ ЕЕ В ТАК НАЗЫВАЕМОМ<br />
ФОНОВОМ РАЗДЕЛЕ. ФОНОВЫЙ РАЗДЕЛ - ЕДИНСТВЕННЫЙ РАЗДЕЛ<br />
�<br />
- 11 -<br />
<br />
<br />
<br />
<br />
RM/SJ-МОНИТОРОВ. В FB/XM-МОНИТОРАХ ДОПОЛНИТЕЛЬНО К ФОНОВОМУ<br />
ИМЕЕТСЯ ОПЕРАТИВНЫЙ РАЗДЕЛ ДЛЯ РАЗМЕЩЕНИЯ ПРОГРАММ РЕАЛЬНО-<br />
ГО ВРЕМЕНИ (ОПЕРАТИВНАЯ И СИСТЕМНЫЕ ЗАДАЧИ, ТИП ФАЙЛА<br />
.REL). В TS-МОНИТОРЕ ДЛЯ КАЖДОГО ТЕРМИНАЛА ВЫДЕЛЯЕТСЯ<br />
СОБСТВЕННЫЙ ФОНОВЫЙ РАЗДЕЛ, В КОТОРОМ МОГУТ ВЫПОЛНЯТЬСЯ<br />
ПРОГРАММЫ ТИПА .SAV.<br />
<br />
С_Т_Р_У_К_Т_У_Р_А М_О_Н_И_Т_О_Р_А. КАЖДЫЙ МОНИТОР<br />
РАФОС СОСТОИТ ИЗ ТРЕХ ОСНОВНЫХ КОМПОНЕНТ:<br />
<br />
- РЕЗИДЕНТНЫЙ МОНИТОР RMON;<br />
- МОДУЛЬ USR;<br />
- ИНТЕРПРЕТАТОР КОМАНД МОНИТОРА KMON.<br />
<br />
ВО ВСЕХ МОНИТОРАХ КОМПОНЕНТА R_M_O_N ПОСТОЯННО НАХО-<br />
ДИТСЯ В ОПЕРАТИВНОЙ ПАМЯТИ. В СОСТАВ RMON ВХОДЯТ МОДУЛИ<br />
ОБРАБОТКИ ПРЕРЫВАНИЙ, ОБСЛУЖИВАНИЯ ТАЙМЕРА, ИНТЕРПРЕТАЦИИ<br />
СИСТЕМНЫХ МАКРОКОМАНД, ДИАГНОСТИКА СИСТЕМНЫХ СБОЕВ, СИСТЕМ-<br />
НЫЕ ТАБЛИЦЫ И Т.Д.<br />
<br />
МОДУЛЬ U_S_R ВЫПОЛНЯЕТ ОСНОВНЫЕ ФУНКЦИИ ПО РАБОТЕ С<br />
КАТАЛОГАМИ ВНЕШНИХ ЗАПОМИНАЮЩИХ УСТРОЙСТВ И ИНТЕРПРЕТАЦИЮ<br />
КОМАНДНЫХ СТРОК ФОРМАТА CSI. USR ИСПОЛЬЗУЕТСЯ ПРИ РАБОТЕ<br />
МОНИТОРА РЕЖЕ ПО СРАВНЕНИЮ С RMON. ПОЭТОМУ ДЛЯ ЭКОНОМИИ<br />
ПАМЯТИ USR СДЕЛАНА ЗАГРУЖАЕМОЙ ПО МЕРЕ НЕОБХОДИМОСТИ С СИС-<br />
ТЕМНОГО УСТРОЙСТВА (ДЛЯ SJ/FB-МОНИТОРОВ). ПРОЦЕДУРА СВОПИН-<br />
ГА USR ВЫПОЛНЯЕТСЯ СЛЕДУЮЩИМ ОБРАЗОМ:<br />
<br />
- ОБЛАСТЬ ПРОГРАММЫ, В КОТОРУЮ БУДЕТ ПОМЕЩЕНА USR,<br />
СОХРАНЯЕТСЯ НА СИСТЕМНОМ УСТРОЙСТВЕ В ФАЙЛЕ<br />
SWAP.SYS;<br />
- USR СЧИТЫВАЕТСЯ МОНИТОРОМ В ОБЛАСТЬ ПАМЯТИ ПРОГ-<br />
РАММЫ И ВЫПОЛНЯЕТ ЗАПРОС, ПОСТУПИВШИЙ ИЗ ПРОГРАМ-<br />
МЫ;<br />
- ОБЛАСТЬ ПРОГРАММЫ, ЗАНЯТАЯ USR, ВОССТАНАВЛИВАЕТСЯ<br />
ИЗ ФАЙЛА SWAP.SYS.<br />
<br />
ПРОГРАММИСТ ДОЛЖЕН ПРЕДУСМОТРЕТЬ В СВОЕЙ ПРОГРАММЕ НА<br />
МАКРОАССЕМБЛЕРЕ ОБЛАСТЬ ПАМЯТИ ДЛЯ РАЗМЕЩЕНИЯ USR (ОКОЛО 4<br />
KБАЙТ) ПРИ РАБОТЕ ПОД УПРАВЛЕНИЕМ SJ/FB-МОНИТОРОВ. В<br />
ОБЛАСТЬ ЗАГРУЗКИ USR НЕ ДОЛЖНЫ ПОПАДАТЬ БУФЕРА И ТАБЛИЦЫ,<br />
ИСПОЛЬЗУЕМЫЕ ПРИ ВЫЗОВЕ USR, А ТАКЖЕ ПОДПРОГРАММЫ ЗАВЕРШЕ-<br />
НИЯ И ОБРАБОТКИ ПРЕРЫВАНИЙ.<br />
<br />
ДЛЯ ПОВЫШЕНИЯ БЫСТРОДЕЙСТВИЯ USR МОЖЕТ БЫТЬ СДЕЛАНА<br />
РЕЗИДЕНТНОЙ (Т.Е. ПОСТОЯННО ЗАГРУЖЕННОЙ) В ОПЕРАТИВНОЙ<br />
ПАМЯТИ С ПОМОЩЬЮ КОМАНДЫ МОНИТОРА SET USR NOSWAP. НЕОБХОДИ-<br />
МОСТЬ ВКЛЮЧЕНИЯ USR В СОСТАВ RM-МОНИТОРА ЗАДАЕТСЯ ПОЛЬЗОВА-<br />
ТЕЛЕМ ПРИ ГЕНЕРАЦИИ (ПРИ ЭТОМ USR ЯВЛЯЕТСЯ РЕЗИДЕНТНОЙ В<br />
ПАМЯТИ). ПРИ РАБОТЕ XM/TS-МОНИТОРОВ КОМПОНЕНТА USR ПОСТОЯН-<br />
НО НАХОДИТСЯ В ПАМЯТИ (РЕЗИДЕНТНА). В ПРОГРАММАХ НА МАК-<br />
РОАССЕМБЛЕРЕ РЕКОМЕНДУЕТСЯ ВЫДЕЛЯТЬ ПАМЯТЬ ДЛЯ USR С ЦЕЛЬЮ<br />
СОБЛЮДЕНИЯ СОВМЕСТИМОСТИ МЕЖДУ РАЗЛИЧНЫМИ МОНИТОРАМИ РАФОС.<br />
ЭТО ПОЗВОЛИТ ПРОГРАММЕ УСПЕШНО ВЫПОЛНЯТЬСЯ ПОД УПРАВЛЕНИЕМ<br />
ЛЮБОГО МОНИТОРА. ПРИ РАБОТЕ С ЯЗЫКАМИ ВЫСОКОГО УРОВНЯ ПОЛЬ-<br />
ЗОВАТЕЛЮ НЕТ НЕОБХОДИМОСТИ ВЫДЕЛЯТЬ ПАМЯТЬ ДЛЯ ЗАГРУЗКИ<br />
USR.<br />
<br />
ИНТЕРПРЕТАТОР КОМАНД МОНИТОРА K_M_O_N ВЫПОЛНЯЕТ АНАЛИЗ<br />
�<br />
- 12 -<br />
<br />
<br />
<br />
<br />
И ОБРАБОТКУ КОМАНД, ВВОДИМЫХ С ТЕРМИНАЛА ИЛИ ИЗ КОМАНДНОГО<br />
ФАЙЛА. В RM-МОНИТОРЕ KMON ОТСУТСТВУЕТ. ВО ВСЕХ ОСТАЛЬНЫХ<br />
МОНИТОРАХ KMON ЗАГРУЖАЕТСЯ В ПАМЯТЬ С СИСТЕМНОГО УСТРОЙСТВА<br />
НА МЕСТО СИСТЕМНОЙ ИЛИ ПРИКЛАДНОЙ ПРОГРАММЫ. КОМАНДЫ ВЫПОЛ-<br />
НЯЮТСЯ KMON САМОСТОЯТЕЛЬНО ИЛИ С ПОМОЩЬЮ СИСТЕМНЫХ ПРОГ-<br />
РАММ.<br />
<br />
СРАВНИТЕЛЬНЫЕ ХАРАКТЕРИСТИКИ МОНИТОРОВ ПРЕДСТАВЛЕНЫ<br />
НИЖЕ:<br />
<br />
--------------------------------------------------------<br />
! М О Н И Т О Р Ы<br />
ХАРАКТЕРИСТИКИ !---------------------------------------<br />
! RM ! SJ ! FB ! XM ! TS<br />
-----------------!-------!-------!-------!-------!-------<br />
РЕАЛЬНОЕ ВРЕМЯ ! + ! + ! + ! + ! +<br />
-----------------!-------!-------!-------!-------!-------<br />
РАЗДЕЛЕНИЕ ! ! ! ! !<br />
ВРЕМЕНИ ! - ! - ! - ! - ! +<br />
-----------------!-------!-------!-------!-------!-------<br />
ЧИСЛО ЗАДАЧ ! ! ! ! !<br />
(MAX) ! 1 ! 1 ! 8 ! 8 ! 30<br />
-----------------!-------!-------!-------!-------!-------<br />
ЧИСЛО ! ! ! ! !<br />
ПОЛЬЗОВАТЕЛЕЙ ! 1 ! 1 ! 1 ! 1 ! 16<br />
-----------------!-------!-------!-------!-------!-------<br />
ЧИСЛО ТЕРМИНАЛОВ! ! ! ! !<br />
(MIN/MAX) ! 0/16 ! 1/16 ! 1/16 ! 1/16 ! 1/16<br />
-----------------!-------!-------!-------!-------!-------<br />
ОПЕРАТИВНАЯ ! ! ! ! !<br />
ПАМЯТЬ В КБАЙТ ! 8/56 ! 16/56 ! 32/56 ! 64/248! 96/248<br />
(MIN/MAX) ! ! ! ! !<br />
-----------------!-------!-------!-------!-------!-------<br />
ОБ'ЕМ ! ! ! ! !<br />
РЕЗИДЕНТНОЙ ! 3 ! 4 ! 8 ! 14 ! 40/48<br />
ЧАСТИ МОНИТОРА ! ! ! ! !<br />
(В КБАЙТАХ) ! ! ! ! !<br />
<br />
<br />
<br />
3.1.1. RM/SJ-МОНИТОРЫ<br />
<br />
<br />
<br />
ОДНОЗАДАЧНЫЙ МОНИТОР ИМЕЕТ САМУЮ ВЫСОКУЮ СКОРОСТЬ<br />
РЕАКЦИИ НА ВНЕШНЕЕ СОБЫТИЕ (ПРЕРЫВАНИЕ). ПОЭТОМУ ЕГО ЦЕЛЕ-<br />
СООБРАЗНО ИСПОЛЬЗОВАТЬ ДЛЯ РЕШЕНИЯ ЗАДАЧ, ТРЕБУЮЩИХ БОЛЬШОЙ<br />
СКОРОСТИ ПЕРЕДАЧИ ДАННЫХ. SJ-МОНИТОР ФУНКЦИОНИРУЕТ ПРИ<br />
МИНИМАЛЬНОЙ КОНФИГУРАЦИИ ТЕХНИЧЕСКИХ СРЕДСТВ, ЗАНИМАЯ ОКОЛО<br />
4 KБАЙТОВ ОПЕРАТИВНОЙ ПАМЯТИ, И ОБЕСПЕЧИВАЕТ РАБОТУ СИСТЕМЫ<br />
В ОПЕРАТИВНОЙ ПАМЯТИ ОТ 16 ДО 56 КБАЙТ (РИС. 2). SJ-МОНИТОР<br />
ПРОГРАММНО СОВМЕСТИМ СНИЗУ ВВЕРХ С FB/XM/TS-МОНИТОРАМИ.<br />
ДРАЙВЕРЫ МОГУТ ЗАГРУЖАТЬСЯ В ПАМЯТЬ ЛИБО САМОЙ ПРОГРАММОЙ<br />
(ДИНАМИЧЕСКИ), ЛИБО КОМАНДОЙ МОНИТОРА LOAD.<br />
<br />
В СОСТАВ SJ-МОНИТОРА МОЖЕТ ВХОДИТЬ МНОГОТЕРМИНАЛЬНЫЙ<br />
ДРАЙВЕР (ЗАДАЕТСЯ ПРИ ГЕНЕРАЦИИ), КОТОРЫЙ ПОЗВОЛЯЕТ ОДНОЙ<br />
ПРОГРАММЕ РАБОТАТЬ С НЕСКОЛЬКИМИ ТЕРМИНАЛАМИ.<br />
<br />
�<br />
- 13 -<br />
<br />
<br />
<br />
<br />
АДРЕСА ОБЩЕЙ ШИНЫ<br />
(ВОСЬМЕРИЧНЫЕ)<br />
777776 !------------------!<br />
! РЕГИСТРЫ !<br />
! ВНЕШНИХ ! СТРАНИЦА ВВОДА/ВЫВОДА<br />
! УСТРОЙСТВ !<br />
760000 !------------------!<br />
СТАРШИЙ АДРЕС ФИЗИЧЕСКОЙ ПАМЯТИ<br />
!------------------! (ОТ 16 ДО 56 KБАЙТ)<br />
! !<br />
! SY ! ДРАЙВЕР СИСТЕМНОГО<br />
! ! УСТРОЙСТВА<br />
!------------------!<br />
! RMON ! РЕЗИДЕНТНЫЙ МОНИТОР И<br />
! ! ДРАЙВЕР ТЕРМИНАЛОВ<br />
!------------------!<br />
! ! ДРАЙВЕРЫ УСТРОЙСТВ,<br />
! XX, YY И Т.Д. ! ЗАГРУЖЕННЫЕ КОМАНДОЙ<br />
! ! МОНИТОРА LOAD<br />
!------------------!<br />
! ! НЕРЕЗИДЕНТНАЯ КОМПОНЕНТА<br />
! ! МОНИТОРА, ОБЕСПЕЧИВАЮЩАЯ<br />
! USR ! РАБОТУ С КАТАЛОГАМИ, И<br />
! ! ИНТЕРПРЕТАТОР КОМАНДНОЙ<br />
! ! СТРОКИ CSI<br />
!------------------!<br />
ОТСУТСТВУЕТ! KMON ! ИНТЕРПРЕТАТОР КОМАНД<br />
В RM ! ! МОНИТОРА<br />
!------------------!<br />
! !<br />
! ФОНОВЫЙ ! ОБЛАСТЬ ПАМЯТИ ДЛЯ<br />
! РАЗДЕЛ ! ПРОГРАММЫ (ПРИ НЕОБХО-<br />
! ! ДИМОСТИ МОЖЕТ БЫТЬ РАС-<br />
! ! ШИРЕНА ЗА СЧЕТ KMON И<br />
! ! USR)<br />
500 !------------------!<br />
! ! СИСТЕМНАЯ ОБЛАСТЬ СВЯЗИ<br />
! ! И ВЕКТОРЫ ПРЕРЫВАНИЙ<br />
0 !------------------!<br />
<br />
<br />
РИС. 2.<br />
<br />
<br />
RM-МОНИТОР ЯВЛЯЕТСЯ СПЕЦИАЛЬНОЙ ВЕРСИЕЙ SJ-МОНИТОРА И<br />
ПОЛНОСТЬЮ РЕЗИДЕНТЕН В ОПЕРАТИВНОЙ ПАМЯТИ. ЭТОТ МОНИТОР<br />
ЯВЛЯЕТСЯ "ЧИСТО ИСПОЛНЯЮЩИМ" И ПРЕДНАЗНАЧЕН ДЛЯ ВЫПОЛНЕНИЯ<br />
УЖЕ ОТЛАЖЕННОЙ ПРОГРАММЫ. ОН ЗАГРУЖАЕТСЯ В КОМПЛЕКС, ИМЕЮ-<br />
ЩИЙ БЕЗДИСКОВУЮ КОНФИГУРАЦИЮ, ВМЕСТЕ С ПРОГРАММОЙ И НЕОБХО-<br />
ДИМЫМИ ДРАЙВЕРАМИ ПО ЛИНИИ СВЯЗИ.<br />
<br />
РАЗРАБОТКА И ОТЛАДКА ПРОГРАММЫ, ПРЕДНАЗНАЧЕННОЙ ДЛЯ<br />
RM-МОНИТОРА, МОЖЕТ ВЫПОЛНЯТЬСЯ ПОД УПРАВЛЕНИЕМ<br />
SJ/FB/XM/TS-МОНИТОРОВ.<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 14 -<br />
<br />
<br />
<br />
<br />
3.1.2. FB-МОНИТОР<br />
<br />
<br />
<br />
FB-МОНИТОР ЯВЛЯЕТСЯ ПРОСТЕЙШИМ МУЛЬТИПРОГРАММНЫМ МОНИ-<br />
ТОРОМ РАФОС, ОБЕСПЕЧИВАЮЩИМ ВЫПОЛНЕНИЕ ДО 8 ПРОГРАММ В<br />
РЕАЛЬНОМ МАСШТАБЕ ВРЕМЕНИ. РАСПРЕДЕЛЕНИЕ ВРЕМЕНИ ПРОЦЕССОРА<br />
И ДОСТУП К РЕСУРСАМ ОСУЩЕСТВЛЯЕТСЯ НА ПРИОРИТЕТНОЙ ОСНОВЕ.<br />
САМЫЙ НИЗКИЙ ПРИОРИТЕТ (0) ИМЕЕТ ФОНОВАЯ ЗАДАЧА (ПРОГРАМ-<br />
МА). ВСЕ СИСТЕМНЫЕ И ПРИКЛАДНЫЕ ПРОГРАММЫ (ИМЕЮЩИЕ ТИП<br />
.SAV) ВЫПОЛНЯЮТСЯ ТОЛЬКО В ФОНОВОМ РЕЖИМЕ, Т.Е. В КАЧЕСТВЕ<br />
ФОНОВОЙ ЗАДАЧИ (ЭТОТ РЕЖИМ СОВМЕСТИМ С RM/SJ-МОНИТОРАМИ).<br />
САМЫЙ ВЫСОКИЙ ПРИОРИТЕТ (7) ИМЕЕТ ОПЕРАТИВНАЯ ЗАДАЧА (ИМЕЮ-<br />
ЩАЯ ТИП .REL). ДОПОЛНИТЕЛЬНО В СИСТЕМЕ МОЖЕТ ВЫПОЛНЯТЬСЯ ДО<br />
6 СИСТЕМНЫХ ЗАДАЧ, ПРИОРИТЕТ КОТОРЫХ (ОТ 1 ДО 6) ОПРЕДЕ-<br />
ЛЯЕТСЯ КОМАНДОЙ МОНИТОРА ПРИ ИХ ЗАГРУЗКЕ. СИСТЕМНЫЕ ЗАДАЧИ<br />
ПОЛНОСТЬЮ АНАЛОГИЧНЫ ОПЕРАТИВНОЙ ЗАДАЧЕ (ИМЕЮТ ТИП .REL),<br />
НО ИМЕЮТ БОЛЕЕ НИЗКИЕ ПРИОРИТЕТЫ.<br />
<br />
ПРИ РАБОТЕ FB-МОНИТОР МОЖЕТ ИСПОЛЬЗОВАТЬ ОПЕРАТИВНУЮ<br />
ПАМЯТЬ ОТ 32 ДО 56 KБАЙТ. РЕЗИДЕНТНАЯ ЧАСТЬ МОНИТОРА (RMON)<br />
ЗАНИМАЕТ ОКОЛО 8 KБАЙТ ПАМЯТИ. ОПЕРАТИВНАЯ И СИСТЕМНЫЕ<br />
ЗАДАЧИ РАЗМЕЩАЮТСЯ В ОПЕРАТИВНОМ РАЗДЕЛЕ, РАЗМЕР КОТОРОГО<br />
ДИНАМИЧЕСКИ ИЗМЕНЯЕТСЯ ПО МЕРЕ ЗАГРУЗКИ И УДАЛЕНИЯ ЗАДАЧ.<br />
ПОСЛЕ ЗАГРУЗКИ В ОПЕРАТИВНЫЙ РАЗДЕЛ РАСПОЛОЖЕНИЕ ЗАДАЧИ В<br />
ОПЕРАТИВНОЙ ПАМЯТИ ФИКСИРУЕТСЯ И НЕ МОЖЕТ БЫТЬ ИЗМЕНЕНО.<br />
ПЕРЕД ЗАГРУЗКОЙ ЗАДАЧИ НЕОБХОДИМО ПРЕДВАРИТЕЛЬНО ЗАГРУЗИТЬ<br />
ВСЕ ТРЕБУЕМЫЕ ДРАЙВЕРЫ КОМАНДОЙ МОНИТОРА LOAD. ДЛЯ ФОНОВОЙ<br />
ЗАДАЧИ ДРАЙВЕРЫ ВНЕШНИХ УСТРОЙСТВ МОГУТ ЗАГРУЖАТЬСЯ ТАКЖЕ,<br />
КАК И В SJ-МОНИТОРЕ.<br />
<br />
РАСПРЕДЕЛЕНИЕ ОПЕРАТИВНОЙ ПАМЯТИ В FB-МОНИТОРЕ ПОКАЗА-<br />
НО НА РИС. 3.<br />
<br />
МНОГОТЕРМИНАЛЬНЫЙ ДРАЙВЕР В FB-МОНИТОРЕ ПОЗВОЛЯЕТ ПО<br />
СРАВНЕНИЮ С SJ-МОНИТОРОМ НАЗНАЧАТЬ ЛЮБОЙ ПРОГРАММЕ ОПЕРА-<br />
ТИВНОГО РАЗДЕЛА ДОПОЛНИТЕЛЬНЫЙ ТЕРМИНАЛ В КАЧЕСТВЕ "СИСТЕМ-<br />
НОГО".<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 15 -<br />
<br />
<br />
<br />
<br />
АДРЕСА ОБЩЕЙ ШИНЫ<br />
(ВОСЬМЕРИЧНЫЕ)<br />
777776 !------------------!<br />
! РЕГИСТРЫ !<br />
! ВНЕШНИХ ! СТРАНИЦА ВВОДА/ВЫВОДА<br />
! УСТРОЙСТВ !<br />
760000 !------------------!<br />
<br />
СТАРШИЙ АДРЕС ФИЗИЧЕСКОЙ ПАМЯТИ<br />
!------------------! (ОТ 32 ДО 56 KБАЙТ)<br />
! SY !<br />
!------------------!<br />
! RMON !<br />
!------------------!<br />
! XX, YY И Т.Д. !<br />
!------------------!<br />
! ОПЕРАТИВНЫЙ ! В ЭТУ ОБЛАСТЬ ЗАГРУЖАЮТСЯ<br />
! РАЗДЕЛ ! ОПЕРАТИВНАЯ И СИСТЕМНЫЕ<br />
! ! ЗАДАЧИ (ПРОГРАММЫ)<br />
!------------------!<br />
! USR !<br />
!------------------!<br />
! KMON !<br />
!------------------!<br />
! ФОНОВЫЙ !<br />
! РАЗДЕЛ !<br />
500 !------------------!<br />
! ! СИСТЕМНАЯ ОБЛАСТЬ СВЯЗИ<br />
! ! И ВЕКТОРЫ ПРЕРЫВАНИЙ<br />
0 !------------------!<br />
<br />
<br />
РИС. 3<br />
<br />
<br />
<br />
3.1.3. XM-МОНИТОР<br />
<br />
<br />
<br />
XM-МОНИТОР ЯВЛЯЕТСЯ РАСШИРЕНИЕМ FB-МОНИТОРА ДЛЯ РАБОТЫ<br />
С ДИСПЕТЧЕРОМ ПАМЯТИ. ОН ОБЕСПЕЧИВАЕТ 18-РАЗРЯДНУЮ АДРЕСА-<br />
ЦИЮ ДЛЯ ОПЕРАЦИЙ ВВОДА/ВЫВОДА И НАБОР МАКРОКОМАНД, ПОЗВО-<br />
ЛЯЮЩИХ ФОНОВОЙ И/ИЛИ ЗАДАЧАМ ОПЕРАТИВНОГО РАЗДЕЛА ИСПОЛЬЗО-<br />
ВАТЬ ДО 248 KБАЙТ ПАМЯТИ. СРЕДИ ЯЗЫКОВ ВЫСОКОГО УРОВНЯ<br />
ТОЛЬКО ФОРТРАН ДАЕТ ПОЛЬЗОВАТЕЛЮ ВОЗМОЖНОСТЬ ПИСАТЬ ПРОГ-<br />
РАММЫ, ИСПОЛЬЗУЮЩИЕ БОЛЬШИЕ МАССИВЫ ДАННЫХ, ОБЩИМ РАЗМЕРОМ<br />
ДО 192 KБАЙТ.<br />
<br />
ПРОГРАММЫ БОЛЬШОГО ОБ'ЕМА МОГУТ ИМЕТЬ СТРУКТУРУ ПЕРЕК-<br />
РЫТИЙ. В ХМ-МОНИТОРЕ РАЗМЕЩЕНИЕ ПЕРЕКРЫТИЙ ВОЗМОЖНО НЕ<br />
ТОЛЬКО В МЛАДШЕЙ ПАМЯТИ, НО И В РАСШИРЕННОЙ ПАМЯТИ. РАЗМЕ-<br />
ЩЕНИЕ ПЕРЕКРЫТИЙ В РАСШИРЕННОЙ ПАМЯТИ СПОСОБСТВУЕТ БОЛЕЕ<br />
БЫСТРОМУ ВЫПОЛНЕНИЮ ПРОГРАММЫ, ТАК КАК ПРОГРАММА ОДИН РАЗ<br />
СЧИТЫВАЕТСЯ В ПАМЯТЬ И НЕ ТРЕБУЕТ ДОПОЛНИТЕЛЬНЫХ ОБРАЩЕНИЙ<br />
К ДИСКУ ДЛЯ ОПЕРАЦИЙ ВВОДА/ВЫВОДА.<br />
<br />
XM-МОНИТОР ЗАНИМАЕТ ОКОЛО 14 KБАЙТ И ОБЕСПЕЧИВАЕТ<br />
РАБОТУ С СИСТЕМОЙ, ИМЕЮЩЕЙ ОТ 64 ДО 248 KБАЙТ ПАМЯТИ. В<br />
�<br />
- 16 -<br />
<br />
<br />
<br />
<br />
XM-МОНИТОРЕ ОТСУТСТВУЕТ ВОЗМОЖНОСТЬ ДИНАМИЧЕСКОЙ ЗАГРУЗКИ<br />
ДРАЙВЕРОВ ПРИ РАБОТЕ ПРОГРАММЫ. ПОЭТОМУ СООТВЕТСТВУЮЩИЕ<br />
ДРАЙВЕРЫ ДОЛЖНЫ ЗАГРУЖАТЬСЯ КОМАНДОЙ МОНИТОРА LOAD.<br />
<br />
РАСПРЕДЕЛЕНИЕ ОПЕРАТИВНОЙ ПАМЯТИ В XM-МОНИТОРЕ ПОКАЗА-<br />
НО НА РИС. 4.<br />
<br />
В СОСТАВ XM-МОНИТОРА МОЖЕТ ВХОДИТЬ МНОГОТЕРМИНАЛЬНЫЙ<br />
ДРАЙВЕР (КАК В FB-МОНИТОРЕ).<br />
<br />
АДРЕСА ОБЩЕЙ ШИНЫ<br />
(ВОСЬМЕРИЧНЫЕ)<br />
777776 !------------------!<br />
! РЕГИСТРЫ !<br />
! ВНЕШНИХ ! СТРАНИЦА ВВОДА/ВЫВОДА<br />
! УСТРОЙСТВ !<br />
760000 !------------------!<br />
<br />
СТАРШИЙ АДРЕС ФИЗИЧЕСКОЙ ПАМЯТИ<br />
!------------------! (ОТ 64 ДО 248 KБАЙТ)<br />
! !<br />
! ! ОБЛАСТЬ ПАМЯТИ ДЛЯ ВИР-<br />
! РАСШИРЕННАЯ ! ТУАЛЬНЫХ МАССИВОВ,<br />
! ПАМЯТЬ ! ПЕРЕКРЫТИЙ И Т.Д.<br />
! !<br />
160000 !------------------! 56 KБАЙТ<br />
! SY !<br />
!------------------!<br />
! RMON !<br />
!------------------!<br />
! XX, YY И Т.Д. !<br />
!------------------!<br />
! ОПЕРАТИВНЫЙ !<br />
! РАЗДЕЛ !<br />
!------------------!<br />
! USR !<br />
!------------------!<br />
! KMON !<br />
!------------------!<br />
! ФОНОВЫЙ !<br />
! РАЗДЕЛ !<br />
500 !------------------!<br />
! ! СИСТЕМНАЯ ОБЛАСТЬ СВЯЗИ<br />
! ! И ВЕКТОРЫ ПРЕРЫВАНИЙ<br />
0 !------------------!<br />
<br />
<br />
РИС. 4<br />
<br />
<br />
<br />
3.1.4. TS-МОНИТОР<br />
<br />
<br />
<br />
TS-МОНИТОР ЯВЛЯЕТСЯ САМЫМ МОЩНЫМ МОНИТОРОМ РАФОС И<br />
ОБЕСПЕЧИВАЕТ ОДНОВРЕМЕННУЮ РАБОТУ НЕСКОЛЬКИХ ПОЛЬЗОВАТЕЛЕЙ<br />
С РАЗНЫХ ТЕРМИНАЛОВ В РЕЖИМЕ РАЗДЕЛЕНИЯ ВРЕМЕНИ. ОДНОВРЕ-<br />
МЕННО С ЭТИМ МОГУТ ВЫПОЛНЯТЬСЯ ЗАДАЧИ РЕАЛЬНОГО ВРЕМЕНИ.<br />
�<br />
- 17 -<br />
<br />
<br />
<br />
<br />
В TS-МОНИТОР ВКЛЮЧЕНА ПОДДЕРЖКА МУЛЬТИПЛЕКСОРОВ DH<br />
(МПД СМ 8514) И DJ (МПА-1 15КС16-043) ДЛЯ ПОДКЛЮЧЕНИЯ ДО<br />
16-ТИ ЛОКАЛЬНЫХ ТЕРМИНАЛОВ.<br />
<br />
ОБЫЧНО TS-МОНИТОР ЗАНИМАЕТ ОКОЛО 40-48 KБАЙТ ПАМЯТИ И<br />
ОБЕСПЕЧИВАЕТ РАБОТУ СИСТЕМЫ НА КОНФИГУРАЦИИ 96-248 KБАЙТ.<br />
<br />
ВСЕ ДРАЙВЕРЫ ЗАГРУЖАЮТСЯ В ПАМЯТЬ В ПРОЦЕССЕ ЗАГРУЗКИ<br />
TS-МОНИТОРА. РАСПРЕДЕЛЕНИЕ ПАМЯТИ ПРИ РАБОТЕ TS-МОНИТОРА<br />
ПОКАЗАНО НА РИС. 5.<br />
<br />
АДРЕСА ОБЩЕЙ ШИНЫ<br />
(ВОСЬМЕРИЧНЫЕ)<br />
777776 !------------------!<br />
! РЕГИСТРЫ !<br />
! ВНЕШНИХ ! СТРАНИЦА ВВОДА/ВЫВОДА<br />
! УСТРОЙСТВ !<br />
760000 !------------------!<br />
СТАРШИЙ АДРЕС ФИЗИЧЕСКОЙ ПАМЯТИ<br />
!------------------! (ОТ 96 ДО 248 KБАЙТ)<br />
! !<br />
! ! РАЗДЕЛЯЕМЫЕ ОБЛАСТИ<br />
! РЕЗИДЕНТНЫЕ ! ДАННЫХ (РЕЗИДЕНТНЫЕ<br />
! ОБЛАСТИ ! БИБЛИОТЕКИ, ИСПОЛНЯ-<br />
! ! ЮЩИЕ СИСТЕМЫ И Т.Д.)<br />
! !<br />
!------------------!<br />
! ! ОБЛАСТЬ ПАМЯТИ, ДИНА-<br />
! РАСШИРЕННАЯ ! МИЧЕСКИ РАСПРЕДЕЛЯ-<br />
! ПАМЯТЬ ! ЕМАЯ МЕЖДУ СИСТЕМНЫМИ,<br />
! ! ПРИКЛАДНЫМИ ПРОГ-<br />
! ! РАММАМИ И KMON<br />
! !<br />
!------------------! ВЕРХНИЙ АДРЕС СИСТЕМЫ<br />
! ! НЕ ВЫШЕ 48 KБАЙТ<br />
! SY,XX,YY И Т.Д. !<br />
!------------------!<br />
! USR !<br />
!------------------!<br />
! RMON !<br />
500 !------------------!<br />
! ! СИСТЕМНАЯ ОБЛАСТЬ СВЯЗИ<br />
! ! И ВЕКТОРЫ ПРЕРЫВАНИЙ<br />
0 !------------------!<br />
<br />
<br />
РИС. 5<br />
<br />
<br />
<br />
3.1.5. KOMAHДHЫE ИHTEPФEЙCЫ<br />
<br />
<br />
<br />
ПPOГPAMMИCT ИЛИ OПEPATOP ПОЛУЧАЕТ ДОСТУП К СРЕДСТВАМ<br />
OПEPAЦИОНHOЙ CИCTEMЫ ЧEPEЗ HAБOP KOMAHДHЫX ИHTEPФEЙCOB:<br />
<br />
- КОМАНДЫ МОНИТОРА;<br />
- ИНТЕРПРЕТАТОР КОМАНДНОЙ СТРОКИ;<br />
�<br />
- 18 -<br />
<br />
<br />
<br />
<br />
- ЯЗЫК УПРАВЛЕНИЯ ПАКЕТОМ;<br />
- CИCTEMHЫE MAKPOKOMAHДЫ.<br />
<br />
KOMAHДЫ МОНИТОРА - ЯЗЫK, ПOЗBOЛЯЮЩИЙ C СИСТЕМНОГО<br />
TEPMИHAЛA ПOЛУЧИTЬ CПPABOЧHУЮ ИHФOPMAЦИЮ O CИCTEME, УПРАВ-<br />
ЛЯТЬ СИСТЕМОЙ, Т.Е. ЗAГPУЖATЬ B OПEPATИBHУЮ ПAMЯTЬ<br />
CИCTEMHЫE И ПPИKЛAДHЫE ПPOГPAMMЫ, HAЗHAЧATЬ ФИЗИЧECKИM<br />
УCTPOЙCTBAM ЛOГИЧECKИE ИMEHA И T.Д.<br />
<br />
ЧАСТО ИСПОЛЬЗУЕМЫЕ ГРУППЫ КОМАНД МОГУТ ОБ'ЕДИНЯТЬСЯ В<br />
КОМАНДНЫЕ ФАЙЛЫ. СПЕЦИАЛЬНАЯ КОМАНДА МОНИТОРА ЗАПУСКАЕТ<br />
КОМАНДНЫЕ ФАЙЛЫ НА ВЫПОЛНЕНИЕ. ИСПОЛЬЗОВАНИЕ КОМАНДНЫХ ФАЙ-<br />
ЛОВ УПРОЩАЕТ РАБОТУ И СОКРАЩАЕТ ПОТЕРИ ВРЕМЕНИ ОПЕРАТОРА,<br />
РАБОТАЮЩЕГО С СИСТЕМОЙ. ИЗ ОДНОГО КОМАНДНОГО ФАЙЛА МОЖНО<br />
ВЫЗЫВАТЬ ДРУГОЙ ФАЙЛ КАК "ПОДПРОГРАММУ". ДОПУСТИМАЯ ГЛУБИНА<br />
ВЛОЖЕННОСТИ ТАКИХ ВЫЗОВОВ НЕ БОЛЕЕ ТРЕХ.<br />
<br />
ИHTEPПPЕTATOP КОМАНДНОЙ CTPOKИ (CSI) - CПEЦИAЛЬHЫЙ<br />
ЯЗЫK, KOTOPЫЙ ИCПOЛЬЗУETCЯ ДЛЯ УПPABЛEHИЯ PAБOTOЙ<br />
БOЛЬШИHCTBA CИCTEMHЫX ПPOГPAMM. ПO CPABHEHИЮ C KOMAHДAMИ<br />
МОНИТОРА ЭTO ЯЗЫK БOЛEE "HИЗKOГO" УPOBHЯ. МНОГИЕ КОМАНДЫ<br />
МОНИТОРА ПРЕОБРАЗУЮТСЯ СИСТЕМОЙ В ПОСЛЕДОВАТЕЛЬНОСТЬ БОЛЕЕ<br />
ПРОСТЫХ КОМАНД ЗАГРУЗКИ СИСТЕМНЫХ ПРОГРАММ И КОМАНД ФОРМАТА<br />
CSI.<br />
<br />
В СОСТАВ РАФОС ВКЛЮЧЕНЫ ПРОГРАММНЫЕ СРЕДСТВА ДЛЯ ОРГА-<br />
НИЗАЦИИ ПАКЕТНОЙ ОБРАБОТКИ. ЭТОТ РЕЖИМ РАБОТЫ ПРИМЕНЯЕТСЯ В<br />
ТЕХ СЛУЧАЯХ, КОГДА ВЫПОЛНЕНИЕ ДЛИТЕЛЬНЫХ ПО ВРЕМЕНИ ЗАДАНИЙ<br />
НЕ ТРЕБУЕТ ВМЕШАТЕЛЬСТВА ОПЕРАТОРА ИЛИ ПРОГРАММИСТА. ПАКЕТ-<br />
НЫЕ ЗАДАНИЯ МОГУТ РАЗМЕЩАТЬСЯ В ФАЙЛАХ НА ДИСКАХ ИЛИ НАКО-<br />
ПИТЕЛЕ НА МАГНИТНОЙ ЛЕНТЕ, А ТАКЖЕ НА ПЕРФОКАРТАХ И ПЕРФО-<br />
ЛЕНТЕ. ПОСЛЕДОВАТЕЛЬНОСТЬ ШАГОВ (ДЕЙСТВИЙ), НЕОБХОДИМЫХ ДЛЯ<br />
ВЫПОЛНЕНИЯ ЗАДАНИЯ, ЗАПИСЫВАЕТСЯ С ПОМОЩЬЮ ЯЗЫКА УПРАВЛЕНИЯ<br />
ПАКЕТОМ. СИСТЕМА ПАКЕТНОЙ ОБРАБОТКИ СОДЕРЖИТ СРЕДСТВА, ПОЗ-<br />
ВОЛЯЮЩИЕ ПЕРЕДАВАТЬ УПРАВЛЕНИЕ ИЗ ОДНОГО ПАКЕТА В ДРУГОЙ,<br />
ВО ВРЕМЯ ВЫПОЛНЕНИЯ ПАКЕТНОГО ЗАДАНИЯ ВЫЗЫВАТЬ ДРУГОЕ<br />
ПАКЕТНОЕ ЗАДАНИЕ КАК "ПОДПРОГРАММУ" И Т.П.<br />
<br />
B KAЧECTBE CИCTEMHOГO KOMAHДHOГO ИHTEPФEЙCA HИЗШEГO<br />
УPOBHЯ BЫCTУПAET БИБЛИOTEKA CИCTEMHЫX MAKPOKOMAHД, KOTOPЫE<br />
MOГУT ПPИMEHЯTЬCЯ ПPOГPAMMИCTOM B ПPOГPAMMAX HA ЯЗЫКЕ<br />
MAKPOACCEMБЛEP. НАБОР CИCTEMHЫХ MAKPOKOMAHД СОДЕРЖИТ<br />
CPEДCTBA ДЛЯ ПPOГPAMMИPOBAHИЯ BBOДA/BЫBOДA, PAБOTЫ C<br />
KATAЛOГAMИ BHEШHИX ЗAПOMИHAЮЩИX УCTPOЙCTB И TAЙMEPOM. OHИ<br />
ПOЗBOЛЯЮT ПOЛУЧАTЬ CПPABOЧHУЮ ИHФOPMAЦИЮ O COCTABE<br />
OПEPAЦИOHHOЙ CИCTEMЫ И HAБOPE TEXHИЧECKИX CPEДCTB, BXOДЯЩИX<br />
В COCTAB KOMПЛEKCA, И T.Д. ПPAKTИЧECKИ BCE СРЕДСТВА<br />
MAKPOKOMAHД ДOCTУПHЫ ПPOГPAMMИCTУ, PAБOTAЮЩEMУ HA ЯЗЫKE<br />
ФOPTPAH, B BИДE OБPAЩEHИЙ K ПOДПPOГPAMMAM, COДEPЖAЩИMCЯ B<br />
CИCTEMHOЙ ОБ'ЕКТНОЙ БИБЛИOTEKE. КРОМЕ ЭТОГО, ФОРТРАН ОБЕС-<br />
ПЕЧИВАЕТ ОБРАБОТКУ ПРЕРЫВАНИЙ И РАБОТУ ПОДПРОГРАММ ЗАВЕРШЕ-<br />
НИЯ В РЕАЛЬНОМ МАСШТАБЕ ВРЕМЕНИ.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 19 -<br />
<br />
<br />
<br />
<br />
3.1.6. ФAЙЛOBAЯ CИCTEMA<br />
<br />
<br />
<br />
B COCTAB MOHИTOPOB PAФOC BXOДЯT ПPOГPAMMHЫE CPEДCTBA<br />
OPГAHИЗAЦИИ ФAЙЛOB HA МАГНИТНЫХ ДИСКАХ, НА ГИБКИХ МАГНИТНЫХ<br />
ДИСКАХ, HA MAГHИTHЫX ЛEHTAX И MAГHИTHЫX ЛEHTAX KAСCETHOГO<br />
TИПA. ФАЙЛОВАЯ СИСТЕМА РАФОС СОВМЕСТИМА С ОРГАНИЗАЦИЕЙ ФАЙ-<br />
ЛОВ В ФОНОВО-ОПЕРАТИВНОЙ БАЗОВОЙ ОПЕРАЦИОННОЙ СИСТЕМЕ<br />
РЕАЛЬНОГО ВРЕМЕНИ (ФОБОС) СВЕРХУ ВНИЗ.<br />
<br />
ФАЙЛОМ ЯВЛЯЕТСЯ СОВОКУПНОСТЬ СВЯЗАННЫХ МЕЖДУ СОБОЙ<br />
ЗАПИСЕЙ. ФАЙЛЫ НА НОСИТЕЛЯХ РАСПОЛАГАЮТСЯ В ЛОГИЧЕСКИХ БЛО-<br />
КАХ. ЛОГИЧЕСКИЙ БЛОК В СИСТЕМЕ ВСЕГДА ИМЕЕТ ФИКСИРОВАННЫЙ<br />
РАЗМЕР 512 (ДЕСЯТИЧНОЕ) БАЙТ. БЛОКИ НА НОСИТЕЛЕ ПОЛУЧАЮТ<br />
НОМЕРА ПОСЛЕДОВАТЕЛЬНО, НАЧИНАЯ С 0.<br />
<br />
ФАЙЛ РАЗМЕЩАЕТСЯ В СМЕЖНЫХ ЛОГИЧЕСКИХ БЛОКАХ НОСИТЕЛЯ,<br />
Т.Е. ЯВЛЯЕТСЯ НЕПРЕРЫВНЫМ. ЭТО ОБЕСПЕЧИВАЕТ БЫСТРЫЙ ДОСТУП<br />
К ИНФОРМАЦИИ, НАХОДЯЩЕЙСЯ В ФАЙЛЕ, ПО ОТНОСИТЕЛЬНОМУ НОМЕРУ<br />
БЛОКА В ФАЙЛЕ.<br />
<br />
ИНФОРМАЦИЯ О КАЖДОМ ИМЕЮЩЕМСЯ ФАЙЛЕ (ИМЯ, ТИП ФАЙЛА,<br />
МЕСТОПОЛОЖЕНИЕ НА НОСИТЕЛЕ И Т.Д.) СОДЕРЖИТСЯ НА НОСИТЕЛЕ В<br />
ТАБЛИЦЕ, КОТОРАЯ НАЗЫВАЕТСЯ КАТАЛОГОМ. НА КАЖДОМ ФИЗИЧЕСКОМ<br />
НОСИТЕЛЕ ИМЕЕТСЯ ОДИН КАТАЛОГ ФАЙЛОВ.<br />
<br />
БЛОК 0 И БЛОКИ 2-5 СИСТЕМНОГО НОСИТЕЛЯ СОДЕРЖАТ ЗАГ-<br />
РУЗЧИК ОПЕРАЦИОННОЙ СИСТЕМЫ (СИСТЕМНЫЙ ЗАГРУЗЧИК). НА РАБО-<br />
ЧИХ НОСИТЕЛЯХ (ОТСУТСТВУЮТ ФАЙЛЫ МОНИТОРА И ДРАЙВЕРОВ) БЛО-<br />
КИ 0 И 2-5 НЕ ИСПОЛЬЗУЮТСЯ. БЛОК 1 СОДЕРЖИТ СИСТЕМНУЮ<br />
ИНФОРМАЦИЮ, ВКЛЮЧАЮЩУЮ ИДЕНТИФИКАТОР ТОМА, ИМЯ ВЛАДЕЛЬЦА,<br />
ТАБЛИЦУ ЗАМЕЩЕНИЯ ДЕФЕКТНЫХ БЛОКОВ НА РЕЗЕРВНЫЕ И Т.Д.<br />
КАТАЛОГ ФАЙЛОВ ВСЕГДА НАЧИНАЕТСЯ С БЛОКА 6. КАТАЛОГ СОСТОИТ<br />
ИЗ СЕГМЕНТОВ. ЧИСЛО СЕГМЕНТОВ НЕ МОЖЕТ ПРЕВЫШАТЬ 31. СЕГ-<br />
МЕНТ ЗАНИМАЕТ 2 СМЕЖНЫХ БЛОКА (1024 БАЙТ). ВСЕ ОСТАЛЬНЫЕ<br />
БЛОКИ НОСИТЕЛЯ (ПОСЛЕ КАТАЛОГА) ИСПОЛЬЗУЮТСЯ ДЛЯ ХРАНЕНИЯ<br />
ФАЙЛОВ.<br />
<br />
ПЕРЕД НАЧАЛОМ ИСПОЛЬЗОВАНИЯ НОВОГО НОСИТЕЛЯ, ЕГО НЕОБ-<br />
ХОДИМО ПОДГОТОВИТЬ (ВЫПОЛНИТЬ ИНИЦИАЛИЗАЦИЮ) КОМАНДОЙ МОНИ-<br />
ТОРА INITIALIZE/BADBLOCKS. ЭТО ОБЕСПЕЧИТ ПРОВЕРКУ НОСИТЕЛЯ<br />
НА НАЛИЧИЕ ДЕФЕКТНЫХ БЛОКОВ И СОЗДАНИЕ КАТАЛОГА, В КОТОРОМ<br />
ДЕФЕКТНЫЕ БЛОКИ ОТМЕЧАЮТСЯ В ВИДЕ ФАЙЛОВ ТИПА .BAD. ЕСЛИ<br />
БЛОКИ, ПРЕДНАЗНАЧЕННЫЕ ДЛЯ РАЗМЕЩЕНИЯ КАТАЛОГА, ЯВЛЯЮТСЯ<br />
ДЕФЕКТНЫМИ, ТО НОСИТЕЛЬ НЕ ПРИГОДЕН ДЛЯ ХРАНЕНИЯ ФАЙЛОВ<br />
РАФОС. В КОМАНДЕ INITIALIZE МОЖНО ТАКЖЕ УКАЗАТЬ ТРЕБУЕМЫЙ<br />
РАЗМЕР КАТАЛОГА В СЕГМЕНТАХ С ПОМОЩЬЮ КЛЮЧА /SEGMENTS:K.<br />
ОБЩАЯ СТРУКТУРА НОСИТЕЛЯ ПОКАЗАНА НА РИС. 6.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 20 -<br />
<br />
<br />
<br />
<br />
НОМЕР БЛОКА<br />
(ВОСЬМЕРИЧНЫЙ)<br />
--!---------------!<br />
0 ! ЗАГРУЗЧИК-1 ! ПЕРВИЧНЫЙ ЗАГРУЗЧИК<br />
--!---------------!<br />
1 ! ! БЛОК СИСТЕМНОЙ ИНФОРМАЦИИ<br />
--!---------------!<br />
2 ! !<br />
! ЗАГРУЗЧИК-2 ! ВТОРИЧНЫЙ ЗАГРУЗЧИК<br />
5 ! !<br />
--!---------------!<br />
6 ! КАТАЛОГ !<br />
! ФАЙЛОВ !<br />
! !<br />
--!---------------! НАЧАЛО ОБЛАСТИ НОСИТЕЛЯ<br />
N ! ФАЙЛ 1 ! ДЛЯ ХРАНЕНИЯ ФАЙЛОВ<br />
!---------------!<br />
! ФАЙЛ 2 !<br />
!---------------!<br />
! <СВОБОДНО> ! В РАСПЕЧАТКЕ КАТАЛОГА<br />
!---------------! СООТВЕТСТВУЕТ <UNUSED><br />
! ФАЙЛ 3 !<br />
!---------------!<br />
! ФАЙЛ 4 !<br />
!---------------!<br />
! ФАЙЛ 5 !<br />
!---------------!<br />
! <СВОБОДНО> !<br />
!---------------!<br />
! ... !<br />
<br />
<br />
РИС. 6<br />
<br />
СРЕДСТВА ФАЙЛОВОЙ СИСТЕМЫ ОБЕСПЕЧИВАЮТ ВЫПОЛНЕНИЕ<br />
ТАКИХ ОПЕРАЦИЙ, КАК ОТКРЫТИЕ УЖЕ СУЩЕСТВУЮЩЕГО ФАЙЛА НА<br />
ДИСКЕ, СОЗДАНИЕ НОВОГО ФАЙЛА, ПЕРЕИМЕНОВАНИЕ ФАЙЛА, УДАЛЕ-<br />
НИЕ ФАЙЛА ИЗ КАТАЛОГА ДИСКА.<br />
<br />
ЕДИНАЯ ФАЙЛОВАЯ СТРУКТУРА ПРИМЕНЯЕТСЯ ДЛЯ ВСЕХ ДИСКО-<br />
ВЫХ УСТРОЙСТВ И ВООБЩЕ ДЛЯ ВСЕХ ВНЕШНИХ УСТРОЙСТВ, КОТОРЫЕ<br />
МОЖНО ЛОГИЧЕСКИ ПРЕДСТАВИТЬ В ВИДЕ ПОСЛЕДОВАТЕЛЬНОСТИ ЗАНУ-<br />
МЕРОВАННЫХ БЛОКОВ ФИКСИРОВАННОЙ ДЛИНЫ (512 БАЙТ), К КОТОРЫМ<br />
МОЖНО ОБРАЩАТЬСЯ ПО НОМЕРУ В ПРОИЗВОЛЬНОМ ПОРЯДКЕ.<br />
<br />
<br />
ПРИМЕЧАНИЕ. ДЛЯ НЕКОТОРЫХ УСТРОЙСТВ (ТИПА МАГНИТНОЙ<br />
ЛЕНТЫ) ЭТИ ТРЕБОВАНИЯ НЕ ВЫПОЛНЯЮТСЯ. ДЛЯ РЕШЕНИЯ ЭТОЙ<br />
ПРОБЛЕМЫ МОНИТОРЫ РАФОС ОБЕСПЕЧИВАЮТ ВОЗМОЖНОСТЬ ИСПОЛЬЗО-<br />
ВАНИЯ "НЕСТАНДАРТНЫХ" ФАЙЛОВЫХ СТРУКТУР. СРЕДСТВА РАБОТЫ С<br />
ТАКИМИ СТРУКТУРАМИ ВКЛЮЧЕНЫ, НАПРИМЕР, В ДРАЙВЕР МАГНИТНОЙ<br />
ЛЕНТЫ. В СЛУЧАЕ ПОДКЛЮЧЕНИЯ НОВЫХ УСТРОЙСТВ, ИМЕЮЩИХ АНАЛО-<br />
ГИЧНЫЕ ОСОБЕННОСТИ, СРЕДСТВА ОБРАБОТКИ ЗАПРОСОВ ФАЙЛОВОЙ<br />
СИСТЕМЫ ДОЛЖНЫ ВКЛЮЧАТЬСЯ ПОЛЬЗОВАТЕЛЕМ НЕПОСРЕДСТВЕННО В<br />
ДРАЙВЕР СООТВЕТСТВУЮЩЕГО УСТРОЙСТВА.<br />
<br />
HEПPEPЫBHAЯ CTPУKTУPA ФAЙЛA ПOЗBOЛЯET, HAПPИMEP,<br />
BЫПOЛHИTЬ ЗAГPУЗKУ ПPИKЛAДHOЙ ИЛИ CИCTEMHOЙ ПPOГPAMMЫ ЗA<br />
OДHO OБPAЩEHИE K HAKOПИTEЛЮ.<br />
�<br />
- 21 -<br />
<br />
<br />
<br />
<br />
В РАФОС ВХОДЯТ СРЕДСТВА ДЛЯ РАБОТЫ С<br />
В_И_Р_Т_У_А_Л_Ь_Н_Ы_М_И Ф_А_Й_Л_О_В_Ы_М_И<br />
Н_О_С_И_Т_Е_Л_Я_М_И. ЭТИ СРЕДСТВА ПОЗВОЛЯЮТ РАССМАТРИВАТЬ<br />
ОТДЕЛЬНЫЙ ФАЙЛ В КАЧЕСТВЕ САМОСТОЯТЕЛЬНОГО НОСИТЕЛЯ. ТАКОЙ<br />
ФАЙЛ ИМЕЕТ ВНУТРЕННЮЮ СТРУКТУРУ, ЭКВИВАЛЕНТНУЮ СТРУКТУРЕ<br />
ФИЗИЧЕСКОГО НОСИТЕЛЯ, И ИМЕЕТ КАТАЛОГ ФАЙЛОВ, СОДЕРЖАЩИХСЯ<br />
В НЕМ (РИС. 7). ОБ'ЯВЛЕНИЕ ФАЙЛА ВИРТУАЛЬНЫМ НОСИТЕЛЕМ ОСУ-<br />
ЩЕСТВЛЯЕТСЯ КОМАНДОЙ МОНИТОРА CONNECT.<br />
<br />
ФИЗИЧЕСКИЙ НОСИТЕЛЬ<br />
<br />
!---------------!<br />
! !<br />
!---------------!<br />
! КАТАЛОГ !<br />
! ФАЙЛОВ !<br />
!---------------! НАЧАЛО ОБЛАСТИ НОСИТЕЛЯ<br />
! ФАЙЛ 1 ! ДЛЯ ХРАНЕНИЯ ФАЙЛОВ<br />
!---------------!<br />
! ФАЙЛ 2 !<br />
!---------------! ВИРТУАЛЬНЫЙ НОСИТЕЛЬ<br />
! <СВОБОДНО> !<br />
!---------------!---->------>---!---------------!<br />
! ФАЙЛ 3 ! ! !<br />
!---------------!---->--! !---------------!<br />
! ФАЙЛ 4 ! ! ! КАТАЛОГ !<br />
!---------------! ! ! ФАЙЛОВ !<br />
! ФАЙЛ 5 ! ! !---------------!<br />
!---------------! ! ! ФАЙЛ 1 !<br />
! <СВОБОДНО> ! ! !---------------!<br />
!---------------! ! ! ФАЙЛ 2 !<br />
! ... ! ! !---------------!<br />
! ! ! ! ... !<br />
!---------------! !--->---!---------------!<br />
<br />
<br />
РИС. 7<br />
<br />
<br />
ЭТИ СРЕДСТВА ВКЛЮЧЕНЫ В СИСТЕМУ ДЛЯ TOГO, ЧTOБЫ<br />
HECKOЛЬKO BЛAДEЛЬЦEB (ПOЛЬЗOBATEЛEЙ) ФAЙЛOB ИMEЛИ<br />
OГPAHИЧEHHЫЙ ДOCTУП K ИHФOPMAЦИИ, PAЗMEЩEHHOЙ B "ЧУЖИX"<br />
ФAЙЛAX, И HEУMЫШЛEHHO HE ПOBPEДИЛИ ФAЙЛЫ OCTAЛЬHЫX<br />
BЛAДEЛЬЦEB, PAЗMEЩEHHЫЕ HA OДHOM И TOM ЖE ФИЗИЧECKOM<br />
HOCИTEЛE.<br />
<br />
ИCПOЛЬЗOBAHИE ИEPAPXИЧECKOЙ ФAЙЛOBOЙ CИCTEMЫ<br />
УBEЛИЧИBAET CPEДHEE BPEMЯ OДHOГO OБPAЩEHИЯ K BHEШHEMУ УСТ-<br />
РОЙСТВУ HA 20-30 MKC (ДЛЯ СРАВНЕНИЯ: СРЕДНЕЕ ВРЕМЯ ДОСТУПА<br />
К ИНФОРМАЦИИ НА ДИСКЕ СМ-5400 РАВНО 40-50 МС).<br />
<br />
ВСЕ ФАЙЛЫ, НЕОБХОДИМЫЕ ДЛЯ ГЕНЕРАЦИИ СИСТЕМЫ, БИБЛИО-<br />
ТЕК И ИСПОЛНЯЮЩИХ СИСТЕМ ЯЗЫКОВ ВЫСОКОГО УРОВНЯ, А ТАКЖЕ<br />
ПАКЕТОВ ПРИКЛАДНЫХ ПРОГРАММ РАСПОЛОЖЕНЫ В ВИРТУАЛЬНЫХ НОСИ-<br />
ТЕЛЯХ.<br />
<br />
В РАФОС ВХОДЯТ СРЕДСТВА ДЛЯ РАБОТЫ С<br />
Р_А_З_Д_Е_Л_Я_Е_М_Ы_М_И Ф_А_Й_Л_А_М_И (ТОЛЬКО ДЛЯ<br />
TS-МОНИТОРА). СРЕДСТВА РАЗДЕЛЯЕМЫХ ФАЙЛОВ ПОЗВОЛЯЮТ ПРОГ-<br />
�<br />
- 22 -<br />
<br />
<br />
<br />
<br />
РАММЕ ПОЛУЧИТЬ ПОЛНЫЙ КОНТРОЛЬ НАД ОДНИМ ИЛИ НЕСКОЛЬКИМИ<br />
БЛОКАМИ ФАЙЛА. ДЛЯ ЭТОГО ПРОГРАММА ДОЛЖНА "ЗАБЛОКИРОВАТЬ"<br />
НУЖНЫЕ ЕЙ БЛОКИ ФАЙЛА. ПОСЛЕ БЛОКИРОВКИ ДРУГИЕ ПРОГРАММЫ,<br />
РАБОТАЮЩИЕ С ТЕМ ЖЕ ФАЙЛОМ, НЕ СМОГУТ РАБОТАТЬ С ЭТИМИ БЛО-<br />
КАМИ, ПОКА ПЕРВАЯ ПРОГРАММА НЕ "РАЗБЛОКИРУЕТ" ИХ. ВОЗМОЖНА<br />
БЛОКИРОВКА ВСЕГО ФАЙЛА.<br />
<br />
ДЛЯ РАЗДЕЛЯЕМЫХ ФАЙЛОВ TS-МОНИТОР ВЫПОЛНЯЕТ КЭШИРОВА-<br />
НИЕ БЛОКОВ ДАННЫХ, ЧТО ПОЗВОЛЯЕТ СУЩЕСТВЕННО УСКОРИТЬ ОПЕ-<br />
РАЦИЮ ЧТЕНИЯ ПРИ РАБОТЕ С РАЗДЕЛЯЕМЫМИ ФАЙЛАМИ ЗА СЧЕТ<br />
ИСПОЛЬЗОВАНИЯ ДЛЯ ХРАНЕНИЯ ИХ КОПИЙ В СПЕЦИАЛЬНОМ БУФЕРЕ<br />
ОПЕРАТИВНОЙ ПАМЯТИ.<br />
<br />
В TS-МОНИТОРЕ ВЫПОЛНЯЕТСЯ КЭШИРОВАНИЕ КАТАЛОГОВ.<br />
СРЕДСТВА КЭШИРОВАНИЯ КАТАЛОГОВ ПОЗВОЛЯЮТ УМЕНЬШИТЬ ВРЕМЯ<br />
ОТКРЫТИЯ ФАЙЛОВ ЗА СЧЕТ УМЕНЬШЕНИЯ ЧИСЛА ОБРАЩЕНИЙ К ВНЕШ-<br />
НЕМУ НОСИТЕЛЮ ДЛЯ ЧТЕНИЯ КАТАЛОГА. ЭТО СВЯЗАНО С ТЕМ, ЧТО<br />
ИНФОРМАЦИЯ О НАИБОЛЕЕ ЧАСТО ИСПОЛЬЗУЕМЫХ В СИСТЕМЕ ФАЙЛАХ<br />
СОХРАНЯЕТСЯ В ОПЕРАТИВНОЙ ПАМЯТИ.<br />
<br />
<br />
<br />
3.1.7. ДРАЙВЕРЫ BHEШHИХ УCTPOЙCTB<br />
<br />
<br />
<br />
УПРАВЛЯЮЩАЯ CИCTEMA BKЛЮЧAET HAБOP ДPAЙBEPOB ДЛЯ<br />
OБCЛУЖИBAHИЯ BHEШHИX УCTPOЙCTB И СПЕЦПРОЦЕССОРОВ, ВХОДЯЩИХ<br />
В НОМЕНКЛАТУРУ ТЕХНИЧЕСКИХ СРЕДСТВ СМ ЭВМ (ПРИЛОЖЕНИЕ 1).<br />
<br />
ДРАЙВЕРЫ ВНЕШНИХ УСТРОЙСТВ - ЭТО СПЕЦИАЛЬНЫМ ОБРАЗОМ<br />
ОФОРМЛЕННЫЕ ПРОГРАММЫ ОПЕРАЦИОННОЙ СИСТЕМЫ, КОТОРЫЕ ОБЕСПЕ-<br />
ЧИВАЮТ ДОСТУП КО ВСЕМ ПЕРИФЕРИЙНЫМ И ВНЕШНИМ ЗАПОМИНАЮЩИМ<br />
УСТРОЙСТВАМ СО СТОРОНЫ МОНИТОРОВ РАФОС, А ТАКЖЕ СИСТЕМНЫХ И<br />
ПРИКЛАДНЫХ (ПОЛЬЗОВАТЕЛЬСКИХ) ПРОГРАММ.<br />
<br />
ДРАЙВЕРЫ ПОЗВОЛЯЮТ РАЗРАБАТЫВАТЬ ПРОГРАММНОЕ ОБЕСПЕЧЕ-<br />
НИЕ, НЕ ЗАВИСИМОЕ ОТ ВНЕШНИХ УСТРОЙСТВ. ВСЕ МОНИТОРЫ РАФОС<br />
НЕ СОДЕРЖАТ НИ ОДНОГО МОДУЛЯ, ИМЕЮЩЕГО НЕПОСРЕДСТВЕННЫЙ<br />
ДОСТУП К КАКОМУ-ЛИБО ВНЕШНЕМУ УСТРОЙСТВУ, ПОСКОЛЬКУ ВСЯ<br />
РАБОТА С УСТРОЙСТВАМИ НА ФИЗИЧЕСКОМ УРОВНЕ ВЫПОЛНЯЕТСЯ В<br />
ДРАЙВЕРАХ. ЕСЛИ ПОЛЬЗОВАТЕЛЮ НЕОБХОДИМО РАБОТАТЬ С ДОПОЛНИ-<br />
ТЕЛЬНЫМ УСТРОЙСТВОМ, КОТОРОЕ НЕ ЯВЛЯЕТСЯ СТАНДАРТНЫМ ДЛЯ<br />
РАФОС, ТО ОН МОЖЕТ СРАВНИТЕЛЬНО ЛЕГКО РАЗРАБОТАТЬ ДРАЙВЕР<br />
ДЛЯ ЭТОГО УСТРОЙСТВА.<br />
<br />
ПPOЦEДУPA ПPOГPAMMИPOBAHИЯ ДPAЙBEPA CУЩECTBEHHO<br />
УПPOЩAETCЯ (НАПРИМЕР, ПО СРАВНЕНИЮ С ФОБОС) ЗА СЧЕТ<br />
ПPИMEHЕНИЯ CПEЦИAЛЬHЫХ CИCTEMHЫХ MAKPOKOMAHД. ПPOЦEДУPA<br />
COЗДAHИЯ, ОТЛАДКИ И BKЛЮЧEHИЯ ДPAЙBEPA B CИCTEMУ MOЖET<br />
BЫПOЛHЯTЬCЯ B ФOHOBOM PEЖИME, HE ПPEPЫBAЯ ПРИ ЭТОМ<br />
BЫПOЛHEHИЕ ПPOГPAMMЫ РЕАЛЬНОГО ВРЕМЕНИ B OПEPATИBHOM<br />
PAЗДEЛE.<br />
<br />
ВКЛЮЧИТЬ НОВЫЙ ДРАЙВЕР В СОСТАВ СИСТЕМЫ МОЖНО С<br />
ПОМОЩЬЮ ОДНОЙ КОМАНДЫ МОНИТОРА. В КАЧЕСТВЕ АЛЬТЕРНАТИВЫ<br />
ПОЛЬЗОВАТЕЛЬ МОЖЕТ РАБОТАТЬ С НОВЫМ УСТРОЙСТВОМ БЕЗ ДРАЙВЕ-<br />
РА, НЕПОСРЕДСТВЕННО В ПРОГРАММЕ ОБРАЩАЯСЬ К УСТРОЙСТВУ НА<br />
ФИЗИЧЕСКОМ УРОВНЕ. ОДНАКО В ПОСЛЕДНЕМ СЛУЧАЕ ПРОГРАММА<br />
�<br />
- 23 -<br />
<br />
<br />
<br />
<br />
БУДЕТ ЗАВИСЕТЬ ОТ ЭТОГО УСТРОЙСТВА, ХОТЯ ПРИ ЭТОМ МОЖЕТ<br />
БЫТЬ ОБЕСПЕЧЕНО МАКСИМАЛЬНОЕ БЫСТРОДЕЙСТВИЕ ПО СРАВНЕНИЮ С<br />
ИСПОЛЬЗОВАНИЕМ ДРАЙВЕРА.<br />
<br />
КАЖДЫЙ ДРАЙВЕР РАФОС ХРАНИТСЯ В ОТДЕЛЬНОМ ФАЙЛЕ НА<br />
СИСТЕМНОМ ДИСКЕ (Т.Е. ДИСКЕ, С КОТОРОГО ЗАГРУЖЕН МОНИТОР<br />
ОПЕРАЦИОННОЙ СИСТЕМЫ). ФАЙЛ, СОДЕРЖАЩИЙ ДРАЙВЕР, ИМЕЕТ ИМЯ<br />
СОСТОЯЩЕЕ ИЗ ТРЕХ БУКВ, А ТИП ФАЙЛА - ВСЕГДА .SYS (СИСТЕМ-<br />
НЫЙ ФАЙЛ). ПЕРВЫЕ ДВЕ БУКВЫ ИМЕНИ ФАЙЛА ОБЫЧНО ЯВЛЯЮТСЯ<br />
СОКРАЩЕНИЕМ НАИМЕНОВАНИЯ УСТРОЙСТВА И ОПРЕДЕЛЯЮТ "ФИЗИЧЕС-<br />
КОЕ" ИМЯ УСТРОЙСТВА ПРИ РАБОТЕ ПОД УПРАВЛЕНИЕМ ОПЕРАЦИОННОЙ<br />
СИСТЕМЫ. ПОСЛЕДНЯЯ БУКВА ИМЕНИ ФАЙЛА НАЗЫВАЕТСЯ ПОСТФИКСОМ<br />
И ОДНОЗНАЧНО ОПРЕДЕЛЯЕТСЯ ТИПОМ МОНИТОРА. НАПРИМЕР, ДРАЙВЕР<br />
УСТРОЙСТВА ПЕЧАТИ ДЛЯ XM-МОНИТОРА НАХОДИТСЯ В ФАЙЛЕ<br />
LPX.SYS.<br />
<br />
СРЕДСТВА РАЗРАБОТКИ ДРАЙВЕРОВ ВКЛЮЧАЮТ ПОДДЕРЖКУ ПРО-<br />
ТОКОЛИРОВАНИЯ ОШИБОК УСТРОЙСТВ И СБОРА СТАТИСТИКИ ОБ ИХ<br />
ФУНКЦИОНИРОВАНИИ И СРЕДСТВА ТАЙМ-АУТА.<br />
<br />
<br />
<br />
3.1.8. PAБOTA C ГPAФИЧECKИM ДИCПЛEEM<br />
<br />
<br />
<br />
PAФOC COДEPЖИT CPEДCTBA ДЛЯ ПPOГPAMMИPOBAHИЯ<br />
ГPAФИЧECKOГO ДИCПЛEЯ, KOTOPЫE BKЛЮЧAЮT CПEЦИAЛЬHУЮ<br />
ПPOГPAMMУ-ДPAЙBEP И БИБЛИOTEKУ MAKPOKOMAHД ДЛЯ PAБOTЫ C<br />
СМ-7300, CM-7306 И АЦВ-СМ B ИHTEPAKTИBHOM PEЖИME. KPOME<br />
ЭTOГO, ПO CПEЦИAЛЬHOЙ KOMAHДE OПEPATOPA В<br />
SJ/FB/XM-МОНИТОРАХ ДИCПЛEЙ MOЖHO ИCПOЛЬЗOBATЬ B KAЧECTBE<br />
УCTPOЙCTBA OTOБPAЖEHИЯ ПPOTOKOЛA PAБOTЫ HA CИCTEMHOM<br />
TEPMИHAЛE И ДЛЯ PEДAKTИPOBAHИЯ TEKCTOBЫX ФAЙЛOB B ЭКРАННОМ<br />
PEЖИME. ПOCЛEДHЯЯ BOЗMOЖHOCTЬ ПOЗBOЛЯET БЫCTPO BЫПOЛHЯTЬ<br />
CЛOЖHЫE PAБOTЫ ПO PEДAKTИPOBAHИЮ ПOЛЬЗOBATEЛЮ, НЕ ИМЕЮЩЕМУ<br />
CПEЦИAЛЬHOЙ ПOДГOTOBKИ.<br />
<br />
РАБОТА С ГPAФИЧECKИМ ДИCПЛEЕМ TAKЖE ВОЗМОЖНА ИЗ<br />
ПPOГPAMM, HAПИCAHHЫX НА ЯЗЫKЕ ФOPTPAH. РАФОС ПРЕДОСТАВЛЯЕТ<br />
БИБЛИОТЕКУ ПОДПРОГРАММ, РЕАЛИЗУЮЩИХ ШИРОКИЙ НАБОР ГРАФИЧЕС-<br />
КИХ ПРИМИТИВОВ И ОБЕСПЕЧИВАЮЩИХ ИНТЕРАКТИВНЫЙ РЕЖИМ РАБОТЫ<br />
СО СВЕТОВЫМ ПЕРОМ.<br />
<br />
<br />
<br />
3.1.9. АВТОРИЗАЦИЯ ДОСТУПА<br />
<br />
<br />
<br />
ПОДСИСТЕМА АВТОРИЗАЦИИ (ТОЛЬКО TS-МОНИТОР) УПРАВЛЯЕТ<br />
ДОСТУПОМ ПОЛЬЗОВАТЕЛЕЙ В СИСТЕМУ И В ПРОЦЕССЕ ФУНКЦИОНИРО-<br />
ВАНИЯ НАКАПЛИВАЕТ СЛЕДУЮЩУЮ ИНФОРМАЦИЮ: СПИСОК ПОЛЬЗОВАТЕ-<br />
ЛЕЙ (PPN), ДОПУЩЕННЫХ К РАБОТЕ С СИСТЕМОЙ, ОБЩЕЕ ВРЕМЯ,<br />
ПРОВЕДЕННОЕ ЗА ТЕРМИНАЛОМ, И ИСПОЛЬЗОВАННОЕ ВРЕМЯ ЦЕНТРАЛЬ-<br />
НОГО ПРОЦЕССОРА.<br />
<br />
СРЕДСТВА АВТОРИЗАЦИИ ДОСТУПА ОБЕСПЕЧИВАЮТ КОНТРОЛЬ ЗА<br />
ПОЛЬЗОВАТЕЛЕМ, НАЧИНАЮЩИМ СЕАНС РАБОТЫ С СИСТЕМОЙ, ПО ИМЕНИ<br />
�<br />
- 24 -<br />
<br />
<br />
<br />
<br />
И ПАРОЛЮ. СПИСОК ЛИЦ, ДОПУЩЕННЫХ ДЛЯ РАБОТЫ С СИСТЕМОЙ,<br />
ХРАНИТСЯ В СПЕЦИАЛЬНОМ КАТАЛОГЕ И МОЖЕТ ИЗМЕНЯТЬСЯ ТОЛЬКО<br />
ПРИВИЛЕГИРОВАННЫМ ПОЛЬЗОВАТЕЛЕМ (АДМИНИСТРАТОРОМ СИСТЕМЫ И<br />
СИСТЕМНЫМ ПРОГРАММИСТОМ). АДМИНИСТРАТОР ИМЕЕТ ВОЗМОЖНОСТЬ<br />
ПРОСМАТРИВАТЬ СПИСОК ПОЛЬЗОВАТЕЛЕЙ, ЗАДАВАТЬ ПРИВИЛЕГИИ<br />
ПОЛЬЗОВАТЕЛЯМ, ИЗМЕНЯТЬ ПАРОЛИ ДОСТУПА В СИСТЕМУ, РАСПЕЧА-<br />
ТЫВАТЬ СТАТИСТИКУ О РАБОТЕ ПОЛЬЗОВАТЕЛЕЙ.<br />
<br />
<br />
<br />
3.2. СИСТЕМНЫЕ ПРОГРАММЫ<br />
<br />
<br />
<br />
СИСТЕМНЫЕ ПРОГРАММЫ, ВХОДЯЩИЕ В СОСТАВ ОПЕРАЦИОННОЙ<br />
СИСТЕМЫ, ПОЗВОЛЯЮТ ВЫПОЛНЯТЬ РАЗНООБРАЗНЫЕ ФУНКЦИИ ПО ОБС-<br />
ЛУЖИВАНИЮ СИСТЕМЫ.<br />
<br />
<br />
<br />
3.2.1. BINCOM - СРАВНЕНИЕ ДВОИЧНЫХ ФАЙЛОВ<br />
<br />
<br />
<br />
BINCOM ВЫПОЛНЯЕТ СРАВНЕНИЕ ДВОИЧНЫХ ФАЙЛОВ И СОЗДАЕТ<br />
ЛИСТИНГ РАЗЛИЧИЙ, КОТОРЫЙ ВЫВОДИТ НА ТЕРМИНАЛ, УСТРОЙСТВО<br />
ПЕЧАТИ ИЛИ В ФАЙЛ НА УКАЗАННОМ УСТРОЙСТВЕ. КРОМЕ ЛИСТИНГА<br />
РАЗЛИЧИЙ, ПРОГРАММА СОЗДАЕТ КОМАНДНЫЙ ФАЙЛ КОРРЕКЦИИ,<br />
ВЫПОЛНЕНИЕ КОТОРОГО ПРОИЗВОДИТ ИЗМЕНЕНИЯ ОДНОЙ ВЕРСИИ ПРОГ-<br />
РАММЫ В СООТВЕТСТВИИ С ДРУГОЙ.<br />
<br />
<br />
<br />
3.2.2. PIP - РАБОТА С ФАЙЛАМИ<br />
<br />
<br />
<br />
PIP ВЫПОЛНЯЕТ СЛЕДУЮЩИЕ ОПЕРАЦИИ:<br />
<br />
- КОПИРОВАНИЕ;<br />
- ПЕРЕИМЕНОВАНИЕ;<br />
- ОБ'ЕДИНЕНИЕ ФАЙЛОВ;<br />
- УДАЛЕНИЕ ФАЙЛОВ.<br />
<br />
В PIP ИМЕЕТСЯ ВОЗМОЖНОСТЬ УКАЗАНИЯ ГРУППОВЫХ ОПЕРАЦИЙ.<br />
ДОПУСТИМО ИСПОЛЬЗОВАНИЕ "*" ВМЕСТО ГРУППЫ СИМВОЛОВ И "%"<br />
ВМЕСТО ЛЮБОГО СИМВОЛА ИМЕНИ И ТИПА ФАЙЛА. НАПРИМЕР, ЗАПИСЬ<br />
"*ABC.%D%" ОБОЗНАЧАЕТ "ВСЕ ФАЙЛЫ, У КОТОРЫХ ИМЯ ЗАКАНЧИ-<br />
ВАЕТСЯ БУКВАМИ "ABC", ТИП ИМЕЕТ ТРИ СИМВОЛА, ПРИЧЕМ ВТОРОЙ<br />
СИМВОЛ ДОЛЖЕН БЫТЬ "D"".<br />
<br />
ПРИ ВЫПОЛНЕНИИ КОПИРОВАНИЯ И/ИЛИ ПЕРЕИМЕНОВАНИЯ PIP<br />
СОХРАНЯЕТ ДАТУ СОЗДАНИЯ ФАЙЛА. ИСПОЛЬЗОВАНИЕ СПЕЦИАЛЬНОГО<br />
КЛЮЧА ПОЗВОЛЯЕТ ВКЛЮЧИТЬ В ОПЕРАЦИЮ "ВСЕ ФАЙЛЫ, КРОМЕ УКА-<br />
ЗАННЫХ". ПРИ КОПИРОВАНИИ НА УСТРОЙСТВО ПЕЧАТИ, ТЕРМИНАЛ ИЛИ<br />
ПЕРФОЛЕНТУ МОЖНО УКАЗЫВАТЬ КОЛИЧЕСТВО КОПИЙ ФАЙЛА, КОТОРОЕ<br />
НЕОБХОДИМО ПОЛУЧИТЬ.<br />
<br />
<br />
�<br />
- 25 -<br />
<br />
<br />
<br />
<br />
3.2.3. DUP - ОБСЛУЖИВАНИЕ УСТРОЙСТВ<br />
<br />
<br />
<br />
DUP ВЫПОЛНЯЕТ ЦЕЛЫЙ РЯД ФУНКЦИЙ:<br />
<br />
- ИНИЦИАЛИЗАЦИЮ НОСИТЕЛЯ;<br />
- ПРОВЕРКУ НОСИТЕЛЯ НА НАЛИЧИЕ ДЕФЕКТНЫХ БЛОКОВ С<br />
УКАЗАНИЕМ АБСОЛЮТНОГО И ОТНОСИТЕЛЬНОГО НОМЕРА ПЛО-<br />
ХОГО БЛОКА;<br />
- "СБОРКУ МУСОРА" НА НОСИТЕЛЕ;<br />
- СОЗДАНИЕ И РАСШИРЕНИЕ ФАЙЛА;<br />
- КОПИРОВАНИЕ НОСИТЕЛЕЙ;<br />
- ЗАГРУЗКУ МОНИТОРОВ В ПАМЯТЬ;<br />
- ЗАПИСЬ ИДЕНТИФИКАТОРА НОСИТЕЛЯ И Т.Д.<br />
<br />
ПРОГРАММА DUP ПОЗВОЛЯЕТ СОЗДАВАТЬ РЕЗЕРВНЫЕ КОПИИ (ДЛЯ<br />
ЦЕЛЕЙ ЗАЩИТЫ) ОДНОГО ДИСКА НА ДРУГОМ ИЛИ МАГНИТНОЙ ЛЕНТЕ.<br />
<br />
<br />
<br />
3.2.4. DIR - РАСПЕЧАТКА КАТАЛОГОВ<br />
<br />
<br />
<br />
DIR ОБЕСПЕЧИВАЕТ РАСПЕЧАТКУ КАТАЛОГА ФАЙЛОВ НОСИТЕЛЯ В<br />
НЕСКОЛЬКО КОЛОНОК (ЧИСЛО КОЛОНОК ЗАДАЕТСЯ В КОМАНДЕ) С ВОЗ-<br />
МОЖНОСТЬЮ СОРТИРОВКИ ФАЙЛОВ:<br />
<br />
- ПО РАЗМЕРУ;<br />
- ПО ПОЛОЖЕНИЮ НА НОСИТЕЛЕ;<br />
- ПО ДАТАМ СОЗДАНИЯ;<br />
- В ЛЕКСИКОГРАФИЧЕСКОМ ПОРЯДКЕ ПО ИМЕНАМ И/ИЛИ ТИПАМ<br />
ФАЙЛОВ.<br />
<br />
К ЛЮБОМУ ИЗ ПЕРЕЧИСЛЕННЫХ ПРАВИЛ СОРТИРОВКИ МОЖНО ПРИМЕНИТЬ<br />
КЛЮЧ, ПОЗВОЛЯЮЩИЙ ВЫПОЛНИТЬ СОРТИРОВКУ В ПОРЯДКЕ, ОБРАТНОМ<br />
УКАЗАННОМУ. DIR ДОПУСКАЕТ УКАЗАНИЕ ГРУППОВОЙ ОПЕРАЦИИ.<br />
<br />
DIR ПРЕДОСТАВЛЯЕТ ТАКЖЕ СРЕДСТВО РАСПЕЧАТКИ КАТАЛОГА<br />
"УДАЛЕННЫХ" ФАЙЛОВ, ИНФОРМАЦИЯ О КОТОРЫХ ЕЩЕ СОХРАНИЛАСЬ В<br />
СИСТЕМЕ (Т.Е. ПОСЛЕ УДАЛЕНИЯ ФАЙЛА НЕ ВЫПОЛНЯЛАСЬ ОПЕРАЦИЯ<br />
"СБОРКА МУСОРА" ИЛИ НА ЕГО МЕСТО НЕ БЫЛ ЗАПИСАН ДРУГОЙ<br />
ФАЙЛ, ДЛИНА КОТОРОГО МЕНЬШЕ ИЛИ РАВНА ДЛИНЕ УДАЛЕННОГО ФАЙ-<br />
ЛА). ЭТО СРЕДСТВО ОБЛЕГЧАЕТ ВОССТАНОВЛЕНИЕ ОШИБОЧНО УДАЛЕН-<br />
НЫХ ФАЙЛОВ.<br />
<br />
<br />
<br />
3.2.5. EL, ELINIT, ERROU - ПОДСИСТЕМА<br />
РЕГИСТРАЦИИ ОШИБОК<br />
<br />
<br />
<br />
<br />
СИСТЕМНЫЕ ПРОГРАММЫ EL, ELINIT, ERROUT ОБРАЗУЮТ ПОД-<br />
СИСТЕМУ РЕГИСТРАЦИИ ОШИБОК И СБОРА СТАТИСТИКИ О ФУНКЦИОНИ-<br />
РОВАНИИ УСТРОЙСТВ ПРЯМОГО ДОСТУПА. ВКЛЮЧЕНИЕ ЭТИХ СРЕДСТВ В<br />
МОНИТОРЫ РАФОС ОСУЩЕСТВЛЯЕТСЯ ПРИ ГЕНЕРАЦИИ СИСТЕМЫ.<br />
�<br />
- 26 -<br />
<br />
<br />
<br />
<br />
ПРИМЕЧАНИЕ. ДАННЫЕ СРЕДСТВА МОГУТ ИСПОЛЬЗОВАТЬСЯ ТОЛЬ-<br />
КО В FB/XM-МОНИТОРАХ.<br />
<br />
ЕСЛИ ИСПОЛЬЗУЕТСЯ ПОДСИСТЕМА РЕГИСТРАЦИИ ОШИБОК, ТО<br />
ИНФОРМАЦИЯ ОБ УСПЕШНЫХ И ОШИБОЧНЫХ ОПЕРАЦИЯХ НОСИТЕЛЕЙ ПРЯ-<br />
МОГО ДОСТУПА НАКАПЛИВАЕТСЯ В БУФЕРЕ EL:. ПРОГРАММА EL ОСУ-<br />
ЩЕСТВЛЯЕТ ЗАПИСЬ ИНФОРМАЦИИ ИЗ БУФЕРА ПАМЯТИ В ФАЙЛ НА ДИС-<br />
КЕ. ПРОГРАММА ELINIT ОСУЩЕСТВЛЯЕТ ИНИЦИАЛИЗАЦИЮ И СОХРАНЕ-<br />
НИЕ ФАЙЛА СТАТИСТИКИ, А ПРОГРАММА ERROUT СОЗДАЕТ ОТЧЕТ НА<br />
ОСНОВЕ ИНФОРМАЦИИ, СОБРАННОЙ В ФАЙЛЕ СТАТИСТИКИ, И ВЫВОДИТ<br />
РАСПЕЧАТКУ ОТЧЕТА НА ЭКРАН ТЕРМИНАЛА ИЛИ В ФАЙЛ, В ЗАВИСИ-<br />
МОСТИ ОТ УКАЗАНИЯ ПОЛЬЗОВАТЕЛЯ.<br />
<br />
<br />
<br />
3.2.6. PAT - КОРРЕКЦИЯ ОБ'ЕКТНЫХ ФАЙЛОВ<br />
<br />
<br />
<br />
PAT ИСПОЛЬЗУЕТСЯ ДЛЯ КОРРЕКЦИИ ОБ'ЕКТНОГО МОДУЛЯ И<br />
ПОЗВОЛЯЕТ НЕ ТОЛЬКО ИЗМЕНЯТЬ СОДЕРЖИМОЕ ОТДЕЛЬНЫХ ЯЧЕЕК, НО<br />
И ДОБАВЛЯТЬ НОВЫЕ ПОДПРОГРАММЫ.<br />
<br />
ПРИ ВЫПОЛНЕНИИ ОПЕРАЦИИ ИСПОЛЬЗУЮТСЯ ДВА ВХОДНЫХ<br />
ОБ'ЕКТНЫХ ФАЙЛА: ФАЙЛ, КОТОРЫЙ ТРЕБУЕТСЯ ИЗМЕНИТЬ, И ФАЙЛ,<br />
В КОТОРОМ СОДЕРЖАТСЯ ИЗМЕНЕНИЯ. ФАЙЛ ИЗМЕНЕНИЙ ПОДГОТАВЛИ-<br />
ВАЕТСЯ НА ЯЗЫКЕ МАКРОАССЕМБЛЕР, ЗАТЕМ ТРАНСЛИРУЕТСЯ. В<br />
РЕЗУЛЬТАТЕ РАБОТЫ ПРОГРАММА PAT СОЗДАЕТ НОВЫЙ ОТКОРРЕКТИРО-<br />
ВАННЫЙ ОБ'ЕКТНЫЙ ФАЙЛ.<br />
<br />
<br />
<br />
3.2.7. SIPP - КОРРЕКЦИЯ ЗАГРУЗОЧНЫХ ФАЙЛОВ<br />
<br />
<br />
<br />
SIPP ПРЕДНАЗНАЧЕНА ДЛЯ КОРРЕКЦИИ ЗАГРУЗОЧНОГО ФАЙЛА В<br />
СИСТЕМЕ, А ТАКЖЕ ЛЮБОГО СЛОВА ИЛИ БАЙТА В БЛОКЕ НА УСТ-<br />
РОЙСТВЕ ПРЯМОГО ДОСТУПА (ДИСКЕ). SIPP ПОЗВОЛЯЕТ МОДИФИЦИРО-<br />
ВАТЬ ФАЙЛ ЗАГРУЗОЧНОГО МОДУЛЯ, ИМЕЮЩИЙ ОВЕРЛЕЙНУЮ СТРУКТУ-<br />
РУ.<br />
<br />
ПРОГРАММА SIPP МОЖЕТ ЗАНОСИТЬ (И, СООТВЕТСТВЕННО, РАС-<br />
ПЕЧАТЫВАТЬ) В ФАЙЛ ИНФОРМАЦИЮ В ТЕКСТОВОМ ВИДЕ И КОДЕ<br />
RAD50. ЕЕ МОЖНО ЗАПУСКАТЬ В КОМАНДНОМ ФАЙЛЕ.<br />
<br />
<br />
<br />
3.2.8. RESORS - РАСПЕЧАТКА СОСТОЯНИЯ СИСТЕМЫ<br />
<br />
<br />
<br />
RESORC ИСПОЛЬЗУЕТСЯ МОНИТОРОМ ПРИ ОБРАБОТКЕ КОМАНДЫ<br />
SHOW. ОНА ОБЕСПЕЧИВАЕТ РАСПЕЧАТКУ СЛУЖЕБНОЙ ИНФОРМАЦИИ О<br />
МОДЕЛИ ЦЕНТРАЛЬНОГО ПРОЦЕССОРА, ДРАЙВЕРАХ ВНЕШНИХ УСТ-<br />
РОЙСТВ, ПАРАМЕТРАХ ТЕРМИНАЛОВ, ИНФОРМАЦИЮ О ЗАГРУЖЕННЫХ<br />
ЗАДАЧАХ, О ДОПОЛНИТЕЛЬНЫХ ВОЗМОЖНОСТЯХ СИСТЕМЫ, И Т.Д.<br />
<br />
<br />
�<br />
- 27 -<br />
<br />
<br />
<br />
<br />
3.2.9. FILEX - ОБМЕН ФАЙЛАМИ<br />
<br />
<br />
<br />
FILEX ПОЗВОЛЯЕТ ПЕРЕНОСИТЬ (КОПИРОВАТЬ) ФАЙЛЫ С НОСИ-<br />
ТЕЛЯ, ПОДГОТОВЛЕННОГО В ОДНОЙ ОПЕРАЦИОННОЙ СИСТЕМЕ, НА<br />
НОСИТЕЛЬ, ПРЕДНАЗНАЧЕННЫЙ ДЛЯ ДРУГОЙ ОПЕРАЦИОННОЙ СИСТЕМЫ.<br />
FILEX ПЕРЕНОСИТ ФАЙЛЫ, СОЗДАННЫЕ ТРЕМЯ ОПЕРАЦИОННЫМИ СИСТЕ-<br />
МАМИ: РАФОС, ОДНА ИЗ СИСТЕМ ЕС ЭВМ (С ПОМОЩЬЮ ГИБКИХ ДИСКОВ<br />
- ПЕРЕМЕЩАЕМЫЙ ФОРМАТ) И ДОС-СМ. ПРИ ЭТОМ ДИСК ДОС-СМ МОЖЕТ<br />
ИСПОЛЬЗОВАТСЯ ТОЛЬКО КАК ВХОДНОЕ УСТРОЙСТВО, А ГИБКИЙ ДИСК<br />
- КАК ВХОДНОЕ И ВЫХОДНОЕ УСТРОЙСТВА.<br />
<br />
<br />
ПРИМЕЧАНИЕ. ОПЕРАЦИИ С МАГНИТНЫМИ ЛЕНТАМИ, КАССЕТАМИ И<br />
ГИБКИМ ДИСКОМ С ДВОЙНОЙ ПЛОТНОСТЬЮ ПРОГРАММА FILEX НЕ<br />
ВЫПОЛНЯЕТ.<br />
<br />
<br />
<br />
3.2.10. FORMAT - ФОРМАТИРОВАНИЕ ДИСКОВ<br />
<br />
<br />
<br />
FORMAT ИСПОЛЬЗУЕТСЯ ДЛЯ НЕАВТОНОМНОГО (Т.Е. В ПРОЦЕССЕ<br />
РАБОТЫ СИСТЕМЫ) ФОРМАТИРОВАНИЯ ДИСКОВ СМ-5400 (ИЗОТ-1370) И<br />
ГИБКИХ ДИСКОВ. ПРОГРАММА МОЖЕТ БЫТЬ ИСПОЛЬЗОВАНА ДЛЯ ПЕРЕ-<br />
ФОРМАТИРОВАНИЯ ГИБКИХ ДИСКОВ С НОРМАЛЬНОЙ ПЛОТНОСТЬЮ В ДИС-<br />
КИ С ДВОЙНОЙ ПЛОТНОСТЬЮ И НАОБОРОТ. ПРОЦЕДУРА ФОРМАТИРОВА-<br />
НИЯ ЗАКЛЮЧАЕТСЯ В ФОРМИРОВАНИИ СЛУЖЕБНЫХ ЗАПИСЕЙ В НАЧАЛЕ И<br />
КОНЦЕ КАЖДОГО СЕКТОРА НОСИТЕЛЯ И ОБЫЧНО ЗАНИМАЕТ ОКОЛО<br />
ОДНОЙ МИНУТЫ (ДЛЯ ОДНОГО ДИСКА).<br />
<br />
<br />
<br />
3.2.11. LINK - КОМПОНОВЩИК<br />
<br />
<br />
<br />
LINK ПОЗВОЛЯЕТ КОМПОНОВАТЬ ИЗ ОБ'ЕКТНЫХ МОДУЛЕЙ<br />
(РЕЗУЛЬТАТ РАБОТЫ ТРАНСЛЯТОРОВ С РАЗЛИЧНЫХ ЯЗЫКОВ ПРОГРАМ-<br />
МИРОВАНИЯ, НАПРИМЕР МАКРОАССЕМБЛЕР, ПАСКАЛЬ И Т.Д.) ПРОГ-<br />
РАММЫ В ФОРМАТЕ ЗАГРУЗКИ ДЛЯ РАБОТЫ В ФОНОВОМ ИЛИ ОПЕРАТИВ-<br />
НОМ РАЗДЕЛАХ. LINK СОДЕРЖИТ СРЕДСТВА ДЛЯ ПОСТРОЕНИЯ ПРОГ-<br />
РАММ, ИМЕЮЩИХ СЛОЖНУЮ ОВЕРЛЕЙНУЮ СТРУКТУРУ. В КАЧЕСТВЕ<br />
ВЫХОДНОГО ФАЙЛА МОЖЕТ БЫТЬ ПОЛУЧЕНА ПРОГРАММА В АБСОЛЮТНОМ<br />
ДВОИЧНОМ ФОРМАТЕ, Т.Е. ДЛЯ ЗАГРУЗКИ С ПЕРФОЛЕНТЫ В КОМП-<br />
ЛЕКС, ИМЕЮЩИЙ БЕЗДИСКОВУЮ КОНФИГУРАЦИЮ.<br />
<br />
LINK ОБЕСПЕЧИВАЕТ ВЫБОРКУ НЕОБХОДИМЫХ ОБ'ЕКТНЫХ МОДУ-<br />
ЛЕЙ ИЗ УКАЗАННЫХ БИБЛИОТЕК ОБ'ЕКТНЫХ МОДУЛЕЙ ПО ССЫЛКЕ НА<br />
ГЛОБАЛЬНЫЕ МЕТКИ ЭТОГО МОДУЛЯ. НЕУДОВЛЕТВОРЕННЫЕ ССЫЛКИ ПО<br />
УМОЛЧАНИЮ ЗАПОЛНЯЮТСЯ ИЗ СИСТЕМНОЙ ОБ'ЕКТНОЙ БИБЛИОТЕКИ.<br />
<br />
В КАРТУ ЗАГРУЗКИ (РАСПРЕДЕЛЕНИЯ ПАМЯТИ), СОЗДАВАЕМОЙ И<br />
РАСПЕЧАТЫВАЕМОЙ LINK, ВКЛЮЧЕНА ИНФОРМАЦИЯ О РАЗМЕЩЕНИИ<br />
ПРОГРАММНЫХ СЕКЦИЙ, АДРЕСАХ ГЛОБАЛЬНЫХ МЕТОК, О СТРУКТУРЕ И<br />
РАЗМЕРАХ ПЕРЕКРЫТИЙ И Т.Д.<br />
<br />
�<br />
- 28 -<br />
<br />
<br />
<br />
<br />
3.2.12. LIBR - БИБЛИОТЕКАРЬ<br />
<br />
<br />
<br />
LIBR ОБЕСПЕЧИВАЕТ СОЗДАНИЕ КАК БИБЛИОТЕКИ ОБ'ЕКТНЫХ<br />
МОДУЛЕЙ, ТАК И БИБЛИОТЕКИ МАКРОКОМАНД ДЛЯ ЯЗЫКА МАКРОАС-<br />
СЕМБЛЕР.<br />
<br />
ПРОГРАММА ИМЕЕТ ВОЗМОЖНОСТЬ ИЗВЛЕКАТЬ ОБ'ЕКТНЫЙ МОДУЛЬ<br />
ИЗ БИБЛИОТЕКИ. ЭТО БЫВАЕТ НЕОБХОДИМО, ПОСКОЛЬКУ LINK ВСЕГДА<br />
РАЗМЕЩАЕТ БИБЛИОТЕЧНЫЕ МОДУЛИ В КОРНЕВОМ СЕГМЕНТЕ ОВЕРЛЕЙ-<br />
НОЙ ПРОГРАММЫ. ПОЭТОМУ, ЧТОБЫ РАЗМЕСТИТЬ БИБЛИОТЕЧНЫЙ<br />
МОДУЛЬ В ПЕРЕКРЫТИИ (ОВЕРЛЕЕ), НЕОБХОДИМО ЕГО ПРЕДВАРИТЕЛЬ-<br />
НО ИЗВЛЕЧЬ ИЗ БИБЛИОТЕКИ С ПОМОЩЬЮ ПРОГРАММЫ LIBR.<br />
<br />
<br />
<br />
3.2.13. EDIT - РЕДАКТОР ОБЩЕГО НАЗНАЧЕНИЯ<br />
<br />
<br />
<br />
EDIT ИСПОЛЬЗУЕТСЯ ДЛЯ РЕДАКТИРОВАНИЯ ТЕКСТОВ ИСХОДНЫХ<br />
ПРОГРАММ ИЛИ ДОКУМЕНТАЦИИ. ШИРОКИЙ НАБОР КОМАНД ОРИЕНТИРО-<br />
ВАН НА КОНТЕКСТНУЮ РАБОТУ В ДИАЛОГОВОМ РЕЖИМЕ И ВКЛЮЧАЕТ<br />
СРЕДСТВА ПОИСКА, ЗАМЕНЫ, ЦИКЛИЧЕСКОГО ПОВТОРЕНИЯ ОДНОЙ<br />
КОМАНДЫ ИЛИ ГРУППЫ КОМАНД.<br />
<br />
РЕДАКТОР ХОРОШО ЗАЩИЩЕН ОТ ОШИБОК ОПЕРАТОРА. ОШИБОЧНОЕ<br />
ВЫПОЛНЕНИЕ КОМАНДЫ <CTRL/C> НЕ ПРИВОДИТ К ПОТЕРЕ РЕЗУЛЬТА-<br />
ТОВ РЕДАКТИРОВАНИЯ. ЕСЛИ НЕПРЕДНАМЕРЕННО ОСУЩЕСТВЛЕН ВЫХОД<br />
В МОНИТОР, ТО МОЖНО ВОССТАНОВИТЬ И ПРОДОЛЖИТЬ ПРЕРВАННОЕ<br />
РЕДАКТИРОВАНИЕ ПО КОМАНДЕ МОНИТОРА "REENTER".<br />
<br />
<br />
<br />
3.2.14. SED - ЭКРАННЫЙ РЕДАКТОР ТЕКСТОВ<br />
<br />
<br />
<br />
ЭКРАННЫЙ РЕДАКТОР ЗНАЧИТЕЛЬНО УПРОЩАЕТ РАБОТУ ОПЕРАТО-<br />
РА ЗА ТЕРМИНАЛОМ, НЕПРЕРЫВНО ОТОБРАЖАЯ ТЕКУЩЕЕ СОСТОЯНИЕ<br />
РЕДАКТИРУЕМОГО ТЕКСТА И ВСЕ ПРОВОДИМЫЕ В НЕМ ИЗМЕНЕНИЯ НА<br />
ЭКРАНЕ ТЕРМИНАЛА (РЕЖИМ "ОКНА"). РЕДАКТОР НАПИСАН НА ПАСКА-<br />
ЛЕ, ПОСТАВЛЯЕТСЯ В ИСХОДНОМ ВИДЕ И ЕГО МОЖНО ДОСТАТОЧНО<br />
ЛЕГКО НАСТРОИТЬ НА КОНКРЕТНЫЙ ТИП ТЕРМИНАЛА. СУЩЕСТВУЮЩАЯ<br />
ВЕРСИЯ РЕДАКТОРА SED ПОЗВОЛЯЕТ СГЕНЕРИРОВАТЬ ВАРИАНТ РЕДАК-<br />
ТОРА ДЛЯ СЛЕДУЮЩИХ ТЕРМИНАЛОВ: ВТА-2000-3/ВТА-2000/32,<br />
ВТА-2000-15, VDT-52129/VDT-52130, 15-ИЭ-00-013.<br />
<br />
<br />
<br />
3.2.15. DOC - ФОРМАТИРОВАНИЕ ТЕКСТОВ<br />
<br />
<br />
<br />
DOC ПРЕДНАЗНАЧЕНА ДЛЯ ФОРМАТИРОВАНИЯ И РАСПЕЧАТКИ<br />
ТЕКСТОВЫХ ФАЙЛОВ (ДОКУМЕНТОВ) В ФОРМАТЕ, УДОБНОМ ДЛЯ ЧТЕНИЯ<br />
И СООТВЕТСТВУЮЩЕМ ТРЕБОВАНИЯМ ГОСТ ЕСПД.<br />
<br />
�<br />
- 29 -<br />
<br />
<br />
<br />
<br />
НАБОР ДИРЕКТИВ, КОТОРЫЕ ОБРАБАТЫВАЮТСЯ ПРОГРАММОЙ DOC,<br />
ПОЗВОЛЯЕТ ВЫПОЛНЯТЬ ФОРМАТИРОВАНИЕ СТРАНИЦ, ЗАГОЛОВКОВ,<br />
СОБИРАТЬ ОГЛАВЛЕНИЕ, ОФОРМЛЯТЬ ТИТУЛЬНЫЕ ЛИСТЫ И Т.Д. DOC<br />
МОЖЕТ ВЫВОДИТЬ ТЕКСТ, СФОРМАТИРОВАННЫЙ В ОДНУ ИЛИ ДВЕ<br />
КОЛОНКИ.<br />
<br />
<br />
<br />
3.2.16. LDA - АБСОЛЮТНЫЙ ЗАГРУЗЧИК<br />
<br />
<br />
<br />
LDA ВЫПОЛНЯЕТ ЗАГРУЗКУ С УСТРОЙСТВ ПРЯМОГО ДОСТУПА<br />
ПРОГРАММ, ИМЕЮЩИХ АБСОЛЮТНЫЙ ДВОИЧНЫЙ ЗАГРУЗОЧНЫЙ ФОРМАТ.<br />
<br />
ПРОГРАММЫ, ЗАГРУЖЕННЫЕ С ПОМОЩЬЮ LDA, ВЫПОЛНЯЮТСЯ БЕЗ<br />
ОПЕРАЦИОННОЙ СИСТЕМЫ, Т.Е. РАЗРУШАЮТ РЕЗИДЕНТНУЮ В ПАМЯТИ<br />
ЧАСТЬ ОПЕРАЦИОННОЙ СИСТЕМЫ, ПОД УПРАВЛЕНИЕМ КОТОРОЙ ОНИ<br />
БЫЛИ ЗАГРУЖЕНЫ.<br />
<br />
<br />
<br />
3.2.17. QUEUE - ПОДСИСТЕМА СПУЛИНГА<br />
<br />
<br />
<br />
QUEUE ВЫПОЛНЯЕТСЯ В ОПЕРАТИВНОМ РАЗДЕЛЕ ПОД УПРАВЛЕ-<br />
НИЕМ FB/XM-МОНИТОРОВ И ПРЕДНАЗНАЧЕНА ДЛЯ БУФЕРИЗОВАННОГО<br />
ВВОДА/ВЫВОДА ФАЙЛОВ НА МЕДЛЕННЫЕ ВНЕШНИЕ УСТРОЙСТВА.<br />
<br />
ПОДСИСТЕМА СПУЛИНГА СОСТОИТ ИЗ ДВУХ ПРОГРАММ:<br />
QUEUE.REL И QUEMAN.SAV. ПРОГРАММА QUEMAN В ДИАЛОГЕ С ОПЕРА-<br />
ТОРОМ ФОРМИРУЕТ ЗАДАНИЕ НА ВЫВОД, КОТОРОЕ СТАВИТСЯ В ОЧЕ-<br />
РЕДЬ НА ВЫПОЛНЕНИЕ К ПРОГРАММЕ QUEUE. ПРОГРАММА QUEUE В<br />
СООТВЕТСТВИИ С ОЧЕРЕДЬЮ ВЫВОДИТ УКАЗАННЫЕ В ЗАДАНИЯХ ФАЙЛЫ<br />
НА ВНЕШНИЕ УСТРОЙСТВА.<br />
<br />
<br />
ПРИМЕЧАНИЕ. В СОСТАВ TS-МОНИТОРА ВХОДИТ БОЛЕЕ МОЩНЫЙ<br />
ВАРИАНТ ПОДСИСТЕМЫ СПУЛИНГА, КОТОРЫЙ ВКЛЮЧАЕТСЯ НЕПОСРЕДСТ-<br />
ВЕННО В СОСТАВ РЕЗИДЕНТНОГО МОНИТОРА.<br />
<br />
<br />
<br />
3.2.18. PGN - ИНТЕРАКТИВНЫЙ МАКРОПРОЦЕССОР<br />
<br />
<br />
<br />
PGN ПРЕДСТАВЛЯЕТ СОБОЙ ИНТЕРПРЕТАТОР, ПРЕДНАЗНАЧЕННЫЙ<br />
ДЛЯ РАБОТЫ С ТЕКСТОВЫМИ ФАЙЛАМИ. МОЖЕТ ПРИМЕНЯТЬСЯ В<br />
КАЧЕСТВЕ ПРЕДПРОЦЕССОРА ДЛЯ СИСТЕМ ПРОГРАММИРОВАНИЯ С ЯЗЫ-<br />
КОВ МАКРОАССЕМБЛЕР, ФОРТРАН, ПАСКАЛЬ, БЕЙСИК И Т.Д. В РАФОС<br />
ПРОГРАММА PGN ИСПОЛЬЗУЕТСЯ ПРИ ГЕНЕРАЦИИ СИСТЕМЫ (МОНИТОРОВ<br />
И ДРАЙВЕРОВ ВВОДА/ВЫВОДА), БИБЛИОТЕК, ИСПОЛНЯЮЩИХ СИСТЕМ<br />
ЯЗЫКОВ ВЫСОКОГО УРОВНЯ, ТРАНСЛЯТОРОВ И ПАКЕТОВ ПРИКЛАДНЫХ<br />
ПРОГРАММ.<br />
<br />
<br />
<br />
�<br />
- 30 -<br />
<br />
<br />
<br />
<br />
3.2.19. ОТЛАДЧИКИ<br />
<br />
<br />
<br />
<br />
В СОСТАВ РАФОС ВКЛЮЧЕН ОТЛАДЧИК (ODT.OBJ) ДЛЯ ПРОГРАММ<br />
НА ЯЗЫКЕ МАКРОАССЕМБЛЕР, ПОЗВОЛЯЮЩИЙ В ПРОЦЕССЕ ДИАЛОГА<br />
ПРОСМАТРИВАТЬ И ИЗМЕНЯТЬ СОДЕРЖИМОЕ ЯЧЕЕК ПАМЯТИ, ВЫПОЛНЯТЬ<br />
ПРОГРАММУ В ПОШАГОВОМ РЕЖИМЕ, УСТАНАВЛИВАТЬ ТОЧКИ ОСТАНОВА<br />
В РАЗЛИЧНЫХ МЕСТАХ ПРОГРАММЫ И Т.Д.<br />
<br />
ДОПОЛНИТЕЛЬНО К СТАНДАРТНОМУ ИНТЕРАКТИВНОМУ ОТЛАДЧИКУ<br />
ПРОГРАММ (ODT.OBJ) В СОСТАВ РАФОС ВКЛЮЧЕН МОДУЛЬ TODT.OBJ,<br />
КОТОРЫЙ ИМЕЕТ ОДНУ ДОПОЛНИТЕЛЬНУЮ КОМАНДУ И ПОЗВОЛЯЕТ<br />
ВЫПОЛНЯТЬ ТРАССИРОВКУ ОТДЕЛЬНЫХ УЧАСТКОВ ОТЛАЖИВАЕМОЙ ПРОГ-<br />
РАММЫ. ТРАССИРОВКА МОЖЕТ ВЫПОЛНЯТЬСЯ НА УСТРОЙСТВЕ ПЕЧАТИ,<br />
ПЕРФОЛЕНТЕ ИЛИ ТЕРМИНАЛЕ И ВЕДЕТСЯ В ТЕРМИНАХ КОМАНД<br />
АССЕМБЛЕРА.<br />
<br />
ПРОГРАММА VDT.OBJ ЯВЛЯЕТСЯ СПЕЦИАЛЬНОЙ ВЕРСИЕЙ ОТЛАД-<br />
ЧИКА ODT, КОТОРАЯ ИСПОЛЬЗУЕТСЯ ДЛЯ ОТЛАДКИ ВИРТУАЛЬНОГО ИЛИ<br />
ПРИВИЛЕГИРОВАННОГО ЗАДАНИЯ В СИСТЕМЕ С XM-МОНИТОРОМ. ОНА<br />
МОЖЕТ РАБОТАТЬ ВО ВСЕХ МОНИТОРАХ, В ТОМ ЧИСЛЕ С МНОГОТЕРМИ-<br />
НАЛЬНОЙ ПОДДЕРЖКОЙ.<br />
<br />
<br />
ПРИМЕЧАНИЕ. ОТЛАДКУ ПРОГРАММ ПОД УПРАВЛЕНИЕМ<br />
XM-МОНИТОРА МОЖНО ВЫПОЛНЯТЬ ТОЛЬКО С ПОМОЩЬЮ VDT.<br />
<br />
ДЛЯ ОТЛАДКИ ПРОГРАММ В TS-МОНИТОРЕ ИСПОЛЬЗУЕТСЯ СПЕ-<br />
ЦИАЛЬНАЯ ВЕРСИЯ ОТЛАДЧИКА ODT - TSODT.REL. В TS-МОНИТОРЕ<br />
МОЖНО ТАКЖЕ ИСПОЛЬЗОВАТЬ VDT, ОДНАКО ОТЛАДЧИК TSODT ПРЕД-<br />
ПОЧТИТЕЛЬНЕЙ, ПОСКОЛЬКУ НЕ ТРЕБУЕТ КОМПОНОВКИ СОВМЕСТНО С<br />
ОТЛАЖИВАЕМОЙ ПРОГРАММОЙ.<br />
<br />
ОСОБЕННОСТЬЮ ОТЛАДЧИКA ДЛЯ ПРОГРАММ, РАЗРАБОТАННЫХ НА<br />
ЯЗЫКЕ ПАСКАЛЬ, ЯВЛЯЕТСЯ ВОЗМОЖНОСТЬ РАБОТЫ С ЭТИМ ОТЛАДЧИ-<br />
КОМ В ТЕРМИНАХ ЯЗЫКА ПАСКАЛЬ, Т.Е. ССЫЛАТЬСЯ НА ПОДПРОГРАМ-<br />
МЫ, ОПЕРАТОРЫ И ПЕРЕМЕННЫЕ, А НЕ НА АДРЕСА ЯЧЕЕК ПАМЯТИ.<br />
<br />
<br />
<br />
3.2.20. VRF - СРАВНЕНИЕ НОСИТЕЛЕЙ<br />
<br />
<br />
<br />
VRF ИСПОЛЬЗУЕТСЯ ПРИ ВЫПОЛНЕНИИ КОМАНДЫ МОНИТОРА<br />
VERIFY И ОСУЩЕСТВЛЯЕТ СРАВНЕНИЕ ДВУХ НОСИТЕЛЕЙ (ДИСКОВ),<br />
НАПРИМЕР, ПОСЛЕ КОПИРОВАНИЯ ОДНОГО НА ДРУГОЙ. ПРОГРАММА<br />
МОЖЕТ ПРИМЕНЯТЬСЯ ДЛЯ СРАВНЕНИЯ ДВУХ ФАЙЛОВ НА НАЛИЧИЕ РАС-<br />
ХОЖДЕНИЙ.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 31 -<br />
<br />
<br />
<br />
<br />
3.2.21. DUMP - РАСПЕЧАТКА ФАЙЛОВ<br />
<br />
<br />
<br />
DUMP ПРЕДНАЗНАЧЕНА ДЛЯ РАСПЕЧАТКИ СОДЕРЖИМОГО ДВОИЧНЫХ<br />
ФАЙЛОВ.<br />
<br />
ПРОГРАММА DUMP МОЖЕТ ВЫПОЛНЯТЬ РАСПЕЧАТКУ МАГНИТНЫХ И<br />
КАССЕТНЫХ ЛЕНТ. ПРИ РАБОТЕ С ЭТИМИ УСТРОЙСТВАМИ DUMP ОБРА-<br />
БАТЫВАЕТ ВСЮ ЛЕНТУ КАК ФАЙЛ (Т.Е. НЕЛЬЗЯ СДЕЛАТЬ РАСПЕЧАТКУ<br />
КОНКРЕТНО КАКОГО-ЛИБО ФАЙЛА НА ЛЕНТЕ).<br />
<br />
<br />
<br />
3.2.22. SLP - КОРРЕКЦИЯ ТЕКСТОВЫХ ФАЙЛОВ<br />
<br />
<br />
<br />
ПРОГРАММА SLP ПРЕДНАЗНАЧЕНА ДЛЯ КОРРЕКЦИИ ТЕКСТОВЫХ<br />
ФАЙЛОВ. С ЕЕ ПОМОЩЬЮ МОЖНО ЛЕГКО ЗАМЕНИТЬ ОДИН ИСХОДНЫЙ<br />
ТЕКСТ ПРОГРАММЫ НА ДРУГОЙ. ВСЕ ИЗМЕНЕННЫЕ СТРОКИ ТЕКСТА<br />
ПРОГРАММЫ ПОМЕЧАЮТСЯ СИМВОЛАМИ КОРРЕКЦИИ, ПРИНЯТЫМИ ПО<br />
УМОЛЧАНИЮ ИЛИ УКАЗАННЫМИ ПОЛЬЗОВАТЕЛЕМ.<br />
<br />
<br />
<br />
3.2.23. SRCCOM - СРАВНЕНИЕ ФАЙЛОВ<br />
<br />
<br />
<br />
SRCCOM ПРЕДНАЗНАЧЕНА ДЛЯ СРАВНЕНИЯ ДВУХ ФАЙЛОВ, СОДЕР-<br />
ЖАЩИХ СИМВОЛЬНУЮ ИНФОРМАЦИЮ, И ВЫВОДА РАЗЛИЧИЙ МЕЖДУ НИМИ<br />
НА УКАЗАННОЕ УСТРОЙСТВО.<br />
<br />
<br />
<br />
3.3. СИСТЕМЫ ПРОГРАММИРОВАНИЯ<br />
<br />
<br />
<br />
В СОСТАВ РАФОС ВХОДИТ ШИРОКИЙ НАБОР ЯЗЫКОВЫХ ПРОЦЕССО-<br />
РОВ - СИСТЕМ ПРОГРАММИРОВАНИЯ.<br />
<br />
<br />
ПРИМЕЧАНИЕ. СИСТЕМЫ ПРОГРАММИРОВАНИЯ ПОСТАВЛЯЮТСЯ<br />
ОТДЕЛЬНО ОТ ОПЕРАЦИОННОЙ СИСТЕМЫ.<br />
<br />
<br />
<br />
3.3.1. МАКРОАССЕМБЛЕР<br />
<br />
<br />
<br />
<br />
ЯЗЫК МАКРОАССЕМБЛЕР ЯВЛЯЕТСЯ МАШИННО-ОРИЕНТИРОВАННЫМ<br />
ЯЗЫКОМ. ПРОГРАММЫ НА ЯЗЫКЕ МАКРОАССЕМБЛЕР ИМЕЮТ ДОСТУП КО<br />
ВСЕМ СРЕДСТВАМ, ПРЕДОСТАВЛЯЕМЫМ СИСТЕМОЙ РАФОС (НАПРИМЕР,<br />
РАБОТА С РАСШИРЕННОЙ ПАМЯТЬЮ).<br />
<br />
�<br />
- 32 -<br />
<br />
<br />
<br />
<br />
ЯЗЫК ВКЛЮЧАЕТ СРЕДСТВА УСЛОВНОЙ ТРАНСЛЯЦИИ, МАКРОПРО-<br />
ЦЕССОР И РАЗВИТУЮ СИСТЕМУ УПРАВЛЕНИЯ ФУНКЦИЯМИ ТРАНСЛЯТОРА<br />
ДЛЯ ГЕНЕРАЦИИ ЛИСТИНГОВ И ТАБЛИЦ ПЕРЕКРЕСТНЫХ ССЫЛОК.<br />
<br />
МАКРОАССЕМБЛЕР ИМЕЕТ ВОЗМОЖНОСТЬ ИСПОЛЬЗОВАНИЯ ГЛО-<br />
БАЛЬНОЙ АРИФМЕТИКИ, РАБОТУ С СЕКЦИЯМИ .PSECT, ИМЕЮЩИМИ РАЗ-<br />
НООБРАЗНЫЕ АТРИБУТЫ, ИСПОЛЬЗОВАНИЕ БИБЛИОТЕК МАКРОКОМАНД<br />
ПОЛЬЗОВАТЕЛЯ И СИСТЕМЫ. ДОПУСКАЕТСЯ КЛЮЧЕВАЯ ФОРМА АРГУМЕН-<br />
ТОВ МАКРОКОМАНД.<br />
<br />
ТРАНСЛЯТОР ДЛЯ ТАБЛИЦЫ СИМВОЛОВ ПОЛЬЗОВАТЕЛЯ ИСПОЛЬ-<br />
ЗУЕТ ВИРТУАЛЬНУЮ ПАМЯТЬ. ПОЭТОМУ РАЗМЕР ФИЗИЧЕСКОЙ ПАМЯТИ<br />
НЕ ОГРАНИЧИВАЕТ РАЗМЕР ТРАНСЛИРУЕМОЙ ПРОГРАММЫ, Т.К. ПРИ<br />
ОТСУТСТВИИ СВОБОДНОЙ ОПЕРАТИВНОЙ ПАМЯТИ ИСПОЛЬЗУЕТСЯ ВНЕШ-<br />
НЯЯ ПАМЯТЬ НА ДИСКЕ.<br />
<br />
ЯЗЫКИ ВЫСОКОГО УРОВНЯ, ТАКИЕ КАК ФОРТРАН, БЕЙСИК, ПАС-<br />
КАЛЬ ПОЗВОЛЯЮТ ВКЛЮЧАТЬ В СОСТАВ ИХ ПРОГРАММ ПОДПРОГРАММЫ<br />
НА ЯЗЫКЕ МАКРОАССЕМБЛЕР.<br />
<br />
<br />
<br />
3.3.2. ПАСКАЛЬ<br />
<br />
<br />
<br />
<br />
В РАФОС ВКЛЮЧЕНА СИСТЕМА ПРОГРАММИРОВАНИЯ ПАСКАЛЬ<br />
(ВЕРСИЯ 2.0), ИМЕНУЕМАЯ В ДАННОЙ ДОКУМЕНТАЦИИ КАК СИСТЕМА<br />
ПРОГРАММИРОВАНИЯ ПАСКАЛЬ-2/РАФОС. КОМПИЛЯТОР<br />
ПАСКАЛЬ-2/РАФОС, РАБОТАЮЩИЙ ПОД МОНИТОРАМИ SJ И TS, ЯВЛЯЕТ-<br />
СЯ МНОГОПРОХОДНЫМ ОПТИМИЗИРУЮЩИМ КОМПИЛЯТОРОМ, В КОТОРОМ<br />
ОСОБОЕ ВНИМАНИЕ УДЕЛЕНО СООТВЕТСТВИЮ СТАНДАРТУ ЯЗЫКА ПАС-<br />
КАЛЬ.<br />
<br />
РАЗМЕР ПРОГРАММ, ПОЛУЧАЕМЫХ В РЕЗУЛЬТАТЕ ИСПОЛЬЗОВАНИЯ<br />
КОМПИЛЯТОРА ПАСКАЛЬ-2/РАФОС, НА 30-40% МЕНЬШЕ, А ВЫПОЛНЯЮТ-<br />
СЯ ОНИ ПОЧТИ В 2 РАЗА БЫСТРЕЕ. КОМПИЛЯТОР ОБЕСПЕЧИВАЕТ<br />
ТРАНСЛЯЦИЮ С ВХОДНОГО ЯЗЫКА ПАСКАЛЬ НА МАКРОАССЕМБЛЕР И<br />
ПРЕДОСТАВЛЯЕТ ПРОГРАММАМ НА ЯЗЫКЕ ПАСКАЛЬ ВОЗМОЖНОСТЬ СОП-<br />
РЯЖЕНИЯ ИХ С МАКРОАССЕМБЛЕРОМ.<br />
<br />
ОТЛАДКА ПРОГРАММ ОСУЩЕСТВЛЯЕТСЯ В ИНТЕРАКТИВНОМ РЕЖИМЕ<br />
С ИСПОЛЬЗОВАНИЕМ СИМВОЛИЧЕСКИХ ОБОЗНАЧЕНИЙ, ПРИМЕНЯЕМЫХ В<br />
ИСХОДНОМ ТЕКСТЕ ПРОГРАММЫ НА ПАСКАЛЕ.<br />
<br />
ИСПОЛНЯЮЩАЯ СИСТЕМА ПАСКАЛЬ ВКЛЮЧАЕТ ЧЕТЫРЕ БИБЛИОТЕ-<br />
КИ, ПOДДЕРЖИВАЮЩИЕ СЛЕДУЮЩИЕ КОМБИНАЦИИ НАБОРОВ КОМАНД ПРО-<br />
ЦЕССОРА:<br />
<br />
LIBFPP - НАБОР КОМАНД С ПЛАВАЮЩЕЙ ЗАПЯТОЙ ДЛЯ ПРОЦЕССОРА,<br />
КОТОРЫЙ ЯВЛЯЕТСЯ СТАНДАРТНЫМ АППАРАТНЫМ КОМПОНЕН-<br />
ТОМ СМ-1420 И ВОЗМОЖНЫМ ДОПОЛНЕНИЕМ К<br />
"ЭЛЕКТРОНИКЕ-85";<br />
<br />
LIBFIS - НАБОР КОМАНД С ПЛАВАЮЩЕЙ ЗАПЯТОЙ ДЛЯ ПРОЦЕССОРА,<br />
ЯВЛЯЮЩИМСЯ ДОПОЛНИТЕЛЬНЫМ АППАРАТНЫМ ОБЕСПЕЧЕНИЕМ,<br />
ПОСТАВЛЯЕМЫМ ДЛЯ СМ-4 И "ЭЛЕКТРОНИКИ-60";<br />
<br />
�<br />
- 33 -<br />
<br />
<br />
<br />
<br />
LIBEIS - РАСШИРЕННЫЙ НАБОР КОМАНД С АППАРАТНЫМ ОБЕСПЕЧЕНИЕМ<br />
КОМАНД УМНОЖЕНИЯ, ДЕЛЕНИЯ И ДЛИННОГО СДВИГА; ЭТОТ<br />
НАБОР КОМАНД ЯВЛЯЕТСЯ ОБЯЗАТЕЛЬНЫМ АППАРАТНЫМ КОМ-<br />
ПОНЕНТОМ ПРОЦЕССОРОВ СМ-1420 (СМ-1600),<br />
"ЭЛЕКТРОНИКИ-85", СМ-4, "ЭЛЕКТРОНИКИ-60";<br />
<br />
LIBSIM - НАБОР КОМАНД БЕЗ КОМАНД С ПЛАВАЮЩЕЙ ЗАПЯТОЙ; ЭТА<br />
БИБЛИОТЕКА БУДЕТ РАБОТАТЬ НА ЛЮБОМ КОМПЛЕКСЕ СМ-3<br />
И ДВК-2М.<br />
<br />
<br />
<br />
3.4. ДОПОЛНИТЕЛЬНЫЕ КОМПОНЕНТЫ<br />
<br />
<br />
<br />
<br />
<br />
3.4.1. СИСТЕМА ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ<br />
(СИМФОР)<br />
<br />
<br />
<br />
РАФОС ВЫСТУПАЕТ В ПЕРВУЮ ОЧЕРЕДЬ В КАЧЕСТВЕ ИНСТРУМЕН-<br />
ТАЛЬНОЙ СИСТЕМЫ ДЛЯ РАЗРАБОТКИ ПРИКЛАДНЫХ ПРОГРАММ И<br />
ИСПОЛЬЗОВАНИЯ В ПРОБЛЕМНО-ОРИЕНТИРОВАННЫХ КОМПЛЕКСАХ С РАЗ-<br />
ДЕЛЕНИЕМ ФУНКЦИЙ, В СОСТАВ КОТОРЫХ ВХОДИТ НЕСКОЛЬКО МИКРОП-<br />
РОЦЕССОРОВ И СПЕЦПРОЦЕССОРОВ.<br />
<br />
СИМФОР ОБЕСПЕЧИВАЕТ СРЕДСТВА ИССЛЕДОВАНИЯ СЛОЖНЫХ СИС-<br />
ТЕМ, ОБ'ЕКТОВ УПРАВЛЕНИЯ И КОМПЛЕКСОВ. ОНА ПОЗВОЛЯЕТ МОДЕ-<br />
ЛИРОВАТЬ НЕПРЕРЫВНЫЕ, ДИСКРЕТНЫЕ И НЕПРЕРЫВНО-ДИСКРЕТНЫЕ<br />
ПРОЦЕССЫ, НАКАПЛИВАТЬ СТАТИСТИЧЕСКУЮ ИНФОРМАЦИЮ О МОДЕЛИ-<br />
РУЕМОЙ СИСТЕМЕ, РАСПЕЧАТЫВАТЬ СОБРАННУЮ ИНФОРМАЦИЮ В ВИДЕ<br />
ТАБЛИЦ, ГИСТОГРАММ, ГРАФИКОВ И Т.П.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 34 -<br />
<br />
<br />
<br />
<br />
4. РЕКОМЕНДАЦИИ ПО РАБОТЕ С ДОКУМЕНТАЦИЕЙ<br />
<br />
<br />
<br />
<br />
ДОКУМЕНТАЦИЯ СИСТЕМЫ ВКЛЮЧАЕТ СЛЕДУЮЩИЕ ДОКУМЕНТЫ<br />
(ПРИЛОЖЕНИЕ 4):<br />
<br />
1 - ОПИСАНИЕ ПРИМЕНЕНИЯ;<br />
2 - РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА;<br />
3 - РУКОВОДСТВО ПРОГРАММИСТА;<br />
4 - РУКОВОДСТВО ОПЕРАТОРА;<br />
<br />
ПОЛЬЗОВАТЕЛИ РАФОС МОГУТ БЫТЬ РАЗДЕЛЕНЫ НА ЧЕТЫРЕ<br />
КАТЕГОРИИ:<br />
<br />
1) ОПЕРАТОР;<br />
2) ПРОГРАММИСТ;<br />
3) СИСТЕМНЫЙ ПРОГРАММИСТ;<br />
4) АДМИНИСТРАТОР СИСТЕМЫ.<br />
<br />
ПОСЛЕДНИЕ ДВЕ КАТЕГОРИИ ПОЛЬЗОВАТЕЛЕЙ ОБЫЧНО СОВПАДАЮТ,<br />
Т.К. СИСТЕМНЫЙ ПРОГРАММИСТ ВЫПОЛНЯЕТ И ФУНКЦИИ АДМИНИСТРА-<br />
ТОРА.<br />
<br />
ПОЭТОМУ ДЛЯ КАЖДОЙ КАТЕГОРИИ ПОЛЬЗОВАТЕЛЕЙ РАЗРАБОТАНА<br />
СООТВЕТСТСТВУЮЩАЯ ДОКУМЕНТАЦИЯ, СОСТАВ КОТОРОЙ ПРИВЕДЕН В<br />
ПРИЛОЖЕНИИ 4. ДЛЯ ЭФФЕКТИВНОЙ РАБОТЫ ПОЛЬЗОВАТЕЛЮ НЕОБХОДИ-<br />
МО ИЗУЧИТЬ ДОКУМЕНТАЦИЮ, ОТНОСЯЩУЮСЯ К ЕГО КАТЕГОРИИ.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 35 -<br />
<br />
<br />
<br />
<br />
ПРИЛОЖЕНИЕ 1<br />
<br />
<br />
<br />
<br />
НАИМЕНОВАНИЕ УСТРОЙСТВ<br />
<br />
<br />
<br />
1. ИМЕНА ФИЗИЧЕСКИХ УСТРОЙСТВ<br />
<br />
ПРИЛОЖЕНИЕ СОДЕРЖИТ СПИСОК ФИЗИЧЕСКИХ УСТРОЙСТВ И ИМЕН<br />
ИХ ДРАЙВЕРОВ, ПОДДЕРЖИВАЕМЫХ РАФОС. ДЛЯ КАЖДОГО УСТРОЙСТВА<br />
(ИЛИ КЛАССА УСТРОЙСТВ) ПРЕДСТАВЛЕНО СИМВОЛИЧЕСКОЕ ОБОЗНАЧЕ-<br />
НИЕ УСТРОЙСТВА, ПРИНЯТОЕ В ОПЕРАЦИОННОЙ СИСТЕМЕ, С ПОЯСНЕ-<br />
НИЯМИ И ШИФРАМИ В СООТВЕТСТВИИ С НОМЕНКЛАТУРОЙ ТЕХНИЧЕСКИХ<br />
СРЕДСТВ СМ ЭВМ:<br />
<br />
- ПРОЦЕССОРЫ СМ-2103, СМ-2104 И ДРУГИЕ ПРОГРАММНО<br />
СОВМЕСТИМЫЕ С НИМИ;<br />
<br />
- ОПЕРАТИВНАЯ ПАМЯТЬ ФЕРРИТОВАЯ СМ-3100, СМ-3101,<br />
СМ-3103, СМ-3105;<br />
<br />
- ОПЕРАТИВНАЯ ПАМЯТЬ ПОЛУПРОВОДНИКОВАЯ СМ-3501;<br />
<br />
- ПРОГРАММИРУЕМЫЙ ТАЙМЕР СМ-2001;<br />
<br />
RF, RFN<br />
- ДИСК С ФИКСИРОВАННЫМИ ГОЛОВКАМИ (0<=N<=7); МЕХА-<br />
НИЗМ СМ-5500; ВМЕСТО ДИСКА К ДАННОМУ КОНТРОЛЛЕРУ<br />
МОЖЕТ ПОДКЛЮЧАТЬСЯ ДОМЕННОЕ ЗАПОМИНАЮЩЕЕ УСТРОЙСТ-<br />
ВО ДОМЕН-3;<br />
<br />
RK, RKN<br />
- ДИСК СО СМЕННЫМИ КАССЕТАМИ (0<=N<=7); КОНТРОЛЛЕР<br />
СМ-5102, СМ-5105, СМ-5105.01; МЕХАНИЗМ СМ-5400,<br />
СМ-5401, СМ-5403;<br />
<br />
DM, DMN<br />
- ПАКЕТ СМЕННЫХ ДИСКОВ (0<=N<=7) СМ-5408 (ДЛЯ КОМП-<br />
ЛЕКСОВ СМ-1600);<br />
<br />
DP, DPN<br />
- ПАКЕТ (0<=N<=7) СМЕННЫХ ДИСКОВ (СМ-5407); МЕХАНИЗМ<br />
ЕС-5061;<br />
<br />
DX, DXN<br />
- ГИБКИЙ ДИСК (0<=N<=3); МЕХАНИЗМ СМ-5603;<br />
<br />
DY, DYN<br />
- ГИБКИЙ ДИСК С ДВОЙНОЙ ПЛОТНОСТЬЮ ЗАПИСИ;<br />
<br />
MT, MTN<br />
- МАГНИТНАЯ ЛЕНТА (0<=N<=7); КОНТРОЛЛЕР СМ-5001;<br />
МЕХАНИЗМ СМ-5300, СМ-5302;<br />
<br />
<br />
<br />
�<br />
- 36 -<br />
<br />
<br />
<br />
<br />
MM, MMN<br />
- МАГНИТНАЯ ЛЕНТА С ВЫСОКОЙ ПЛОТНОСТЬЮ ЗАПИСИ;<br />
<br />
CT, CTN<br />
- КАССЕТНАЯ МАГНИТНАЯ ЛЕНТА (0<=N<=1) ТИПА СМ-5204 И<br />
СМ-5208 (КОНТРОЛЛЕР СМ-5211);<br />
<br />
TT - СИСТЕМНЫЙ ТЕРМИНАЛ; СМ-7202, СМ-7203, СМ-7205,<br />
СМ-7206, СМ-7209, СМ-7219; ПОДКЛЮЧЕНИЕ ТЕРМИНАЛОВ<br />
ПО ИРПР (СМ-6001) ИЛИ ИРПС И С2 (СМ-6002);<br />
<br />
GT - УСТРОЙСТВО ОТОБРАЖЕНИЯ ГРАФИЧЕСКОЙ ИНФОРМАЦИИ<br />
(ГРАФИЧЕСКИЙ ДИСПЛЕЙ) СМ-7300 (ЭПГ-СМ);<br />
<br />
CR - УСТРОЙСТВО ВВОДА С ПЕРФОКАРТ; СМ-6101, СМ-6102,<br />
СМ-6103;<br />
<br />
PC - ПЕРФОЛЕНТОЧНОЕ УСТРОЙСТВО ВВОДА/ВЫВОДА; СМ-6200,<br />
СМ-6202, СМ-6203, СМ-6204, СМ-6208, СМ-6222,<br />
СМ-6227;<br />
<br />
LP - УСТРОЙСТВО ПЕЧАТИ; СМ-6301, СМ-6302, СМ-6303.<br />
СМ-6306, СМ-6315, СМ-6316, СМ-6321, СМ-6322;<br />
<br />
LS - УСТРОЙСТВО ПЕЧАТИ С КЛАВИАТУРОЙ; СМ-7102, СМ-7108;<br />
<br />
<br />
2. ИМЕНА ПСЕВДОУСТРОЙСТВ<br />
<br />
ДРАЙВЕРЫ ПСЕВДОУСТРОЙСТВ НЕ ВЫПОЛНЯЮТ РЕАЛЬНЫХ ОПЕРА-<br />
ЦИЙ ВВОДА/ВЫВОДА И ПРЕДНАЗНАЧЕНЫ ДЛЯ РЕАЛИЗАЦИИ СЛУЖЕБНЫХ<br />
ФУНКЦИЙ ОПЕРАЦИОННОЙ СИСТЕМЫ:<br />
<br />
BA - ПСЕВДОУСТРОЙСТВО, ИСПОЛЬЗУЕМОЕ ДЛЯ УПРАВЛЕНИЯ<br />
ПАКЕТНОЙ ОБРАБОТКОЙ;<br />
<br />
NL - НУЛЬ-УСТРОЙСТВО, КОТОРОЕ ОСУЩЕСТВЛЯЕТ ФИКТИВНЫЕ<br />
ОПЕРАЦИИ ВВОДА/ВЫВОДА БЕЗ ПЕРЕДАЧИ ИНФОРМАЦИИ;<br />
<br />
UX, UY, UZ<br />
- ПСЕВДОУСТРОЙСТВА ДЛЯ РАБОТЫ С ВИРТУАЛЬНЫМИ ФАЙЛО-<br />
ВЫМИ НОСИТЕЛЯМИ;<br />
<br />
MQ - ДРАЙВЕР ОБМЕНА МЕЖДУ ЗАДАЧАМИ;<br />
<br />
VM - ДРАЙВЕР РАСШИРЕННОЙ ПАМЯТИ.<br />
<br />
<br />
3. ДРАЙВЕРЫ ЛОКАЛЬНЫХ СИСТЕМ<br />
<br />
DD - ДРАЙВЕР СВЯЗИ В РАСПРЕДЕЛЕННОЙ СИСТЕМЕ НА АКТИВНОМ<br />
КОМПЛЕКСЕ;<br />
<br />
XT - ДРАЙВЕР СВЯЗИ В РАСПРЕДЕЛЕННОЙ СИСТЕМЕ НА ПАССИВ-<br />
НОМ КОМПЛЕКСЕ.<br />
<br />
<br />
4. ИМЕНА ЛОГИЧЕСКИХ УСТРОЙСТВ<br />
<br />
�<br />
- 37 -<br />
<br />
<br />
<br />
<br />
ТАБЛИЦЫ МОНИТОРА РАФОС ВКЛЮЧАЮТ СЛЕДУЮЩИЕ ПРЕДОПРЕДЕ-<br />
ЛЕННЫЕ ЛОГИЧЕСКИЕ ИМЕНА:<br />
<br />
SY, SYN<br />
- ЛОГИЧЕСКОЕ ИМЯ УСТРОЙСТВА, С КОТОРОГО ЗАГРУЖЕНА<br />
ОПЕРАЦИОННАЯ СИСТЕМА; SYN ОПРЕДЕЛЯЕТ УСТРОЙСТВО,<br />
ПОДКЛЮЧЕННОЕ К ТОМУ ЖЕ КОНТРОЛЛЕРУ, ЧТО И SY:, И<br />
ИМЕЮЩЕЕ НОМЕР N (МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ N ЗАВИСИТ<br />
ОТ ТИПА ФИЗИЧЕСКОГО УСТРОЙСТВА); СООТВЕТСТВИЕ SY:<br />
И ФИЗИЧЕСКОГО УСТРОЙСТВА НЕ МОЖЕТ БЫТЬ ИЗМЕНЕНО<br />
КОМАНДОЙ МОНИТОРА ASSIGN;<br />
<br />
DK, DKN<br />
- ЛОГИЧЕСКОЕ ИМЯ УСТРОЙСТВА, КОТОРОЕ ИСПОЛЬЗУЕТСЯ ПО<br />
УМОЛЧАНИЮ (СТАНДАРТНОЕ УСТРОЙСТВО); DKN ОПРЕДЕЛЯЕТ<br />
УСТРОЙСТВО, ПОДКЛЮЧЕННОЕ К ТОМУ ЖЕ КОНТРОЛЛЕРУ,<br />
ЧТО И DK:, И ИМЕЮЩЕЕ НОМЕР N; ПОСЛЕ ЗАГРУЗКИ ОПЕ-<br />
РАЦИОННОЙ СИСТЕМЫ DK СОВПАДАЕТ С SY; СООТВЕТСТВИЕ<br />
DK ФИЗИЧЕСКОМУ УСТРОЙСТВУ МОЖЕТ БЫТЬ ИЗМЕНЕНО<br />
КОМАНДОЙ ASSIGN (В ОТЛИЧИЕ ОТ SY).<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 38 -<br />
<br />
<br />
<br />
<br />
ПРИЛОЖЕНИЕ 2<br />
<br />
<br />
<br />
<br />
ОБОЗНАЧЕНИЯ И СИСТЕМНЫЕ СОГЛАШЕНИЯ<br />
<br />
<br />
<br />
<br />
1. ВСЕ ОБОЗНАЧЕНИЯ УПРАВЛЯЮЩИХ СИМВОЛОВ ЗАКЛЮЧАЮТСЯ В<br />
УГЛОВЫЕ СКОБКИ "<" И ">".<br />
<br />
2. УПРАВЛЯЮЩИЕ СИМВОЛЫ ОБЫЧНО ОБОЗНАЧАЮТСЯ <CTRL/X><br />
("X" СООТВЕТСТВУЕТ СИМВОЛУ). ИХ ВВОД В ПРОГРАММУ С КЛАВИА-<br />
ТУРЫ ТЕРМИНАЛА ОСУЩЕСТВЛЯЕТСЯ НАЖАТИЕМ КЛАВИШИ "X" ПРИ<br />
НАЖАТОЙ КЛАВИШЕ "CTRL" ИЛИ "УС" В ЗАВИСИМОСТИ ОТ КОНКРЕТНО-<br />
ГО ВИДЕОТЕРМИНАЛА.<br />
<br />
НЕКОТОРЫЕ УПРАВЛЯЮЩИЕ СИМВОЛЫ, НАИБОЛЕЕ ЧАСТО ИСПОЛЬ-<br />
ЗУЕМЫЕ В ДОКУМЕНТАЦИИ, ИМЕЮТ СЛЕДУЮЩИЕ СОКРАЩЕННЫЕ ОБОЗНА-<br />
ЧЕНИЯ:<br />
<br />
<CR> - ВОЗВРАТ КАРЕТКИ (КОД 15);<br />
<LF> - ПЕРЕВОД СТРОКИ (КОД 12);<br />
<FF> - ПЕРЕВОД ФОРМАТА (КОД 14);<br />
<TAB> - ГОРИЗОНТАЛЬНАЯ ТАБУЛЯЦИЯ (КОД 11);<br />
<DEL> - СТИРАНИЕ (КОД 177);<br />
<ESC> - СИМВОЛ УПРАВЛЕНИЯ РЕДАКТОРОМ (КОД 33).<br />
<br />
3. ВСЕ СТРОКИ, НАБИРАЕМЫЕ ОПЕРАТОРОМ НА ТЕРМИНАЛЕ,<br />
ЕСЛИ НЕ СКАЗАНО ОСОБО, ЗАКАНЧИВАЮТСЯ НАЖАТИЕМ КЛАВИШИ <CR>,<br />
КОТОРАЯ ОБЫЧНО В ДОКУМЕНТАЦИИ НЕ УКАЗЫВАЕТСЯ И ПОДРАЗУМЕ-<br />
ВАЕТСЯ ПО УМОЛЧАНИЮ.<br />
<br />
4. ПОСЛЕ ЗАГРУЗКИ СИСТЕМНОЙ ПРОГРАММЫ, НАЖАТИЕ КЛАВИШИ<br />
<CR> В ОТВЕТ НА "*", НАПЕЧАТАННУЮ ПРОГРАММОЙ, ПРИВЕДЕТ К<br />
ВЫВОДУ НА ТЕРМИНАЛ ИДЕНТИФИКАТОРА И ВЕРСИИ ПРОГРАММЫ.<br />
<br />
5. ВСЕ СООБЩЕНИЯ, ВЫДАВАЕМЫЕ РАФОС НА СИСТЕМНЫЙ ТЕРМИ-<br />
НАЛ, ИМЕЮТ СЛЕДУЮЩИЙ ФОРМАТ:<br />
<br />
?PROG-X-TEXT<br />
<br />
ГДЕ<br />
<br />
PROG - ИМЯ ПРОГРАММЫ ИЛИ ПРОГРАММНОЙ КОМПОНЕНТЫ, КОТОРАЯ<br />
ВЫВОДИТ ДАННОЕ СООБЩЕНИЕ;<br />
<br />
X - ТИП СООБЩЕНИЯ;<br />
<br />
TEXT - ТЕКСТ СООБЩЕНИЯ.<br />
<br />
ВСЕ СООБЩЕНИЯ МОГУТ ОТНОСИТЬСЯ К ОДНОМУ ИЗ ТИПОВ:<br />
<br />
I - УСПЕШНОЕ ЗАВЕРШЕНИЕ;<br />
W - ЗАВЕРШЕНИЕ С ПРЕДУПРЕЖДЕНИЕМ;<br />
Е - ОШИБКА (ПРОГРАММА НЕ ВЫПОЛНЯЕТСЯ);<br />
F - СЕРЬЕЗНАЯ ОШИБКА;<br />
�<br />
- 39 -<br />
<br />
<br />
<br />
<br />
U - НЕУСТРАНИМАЯ ОШИБКА.<br />
<br />
6. ПРИ ОПИСАНИИ СИНТАКСИСА КОМАНД, ФОРМАТОВ ДИРЕКТИВ<br />
НЕОБЯЗАТЕЛЬНЫЕ АРГУМЕНТЫ, ОПЕРАНДЫ ИЛИ ПАРАМЕТРЫ ЗАКЛЮЧАЮТ-<br />
СЯ В КВАДРАТНЫЕ СКОБКИ "[" И "]".<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 40 -<br />
<br />
<br />
<br />
<br />
ПРИЛОЖЕНИЕ 3<br />
<br />
<br />
<br />
<br />
ОСНОВНЫЕ ПОНЯТИЯ И ТЕРМИНЫ<br />
<br />
<br />
<br />
<br />
НИЖЕ ПРЕДСТАВЛЕН СПИСОК ОСНОВНЫХ ПОНЯТИЙ И ТЕРМИНОВ,<br />
ИСПОЛЬЗУЕМЫХ В ДОКУМЕНТАЦИИ РАФОС. ЗА ТЕРМИНОМ МОГУТ БЫТЬ<br />
УКАЗАНЫ В СКОБКАХ СИНОНИМЫ И/ИЛИ ДОПУСТИМЫЕ СОКРАЩЕНИЯ:<br />
<br />
АБСОЛЮТНАЯ СЕКЦИЯ<br />
- ПРОГРАММНАЯ СЕКЦИЯ, ТРАНСЛЯЦИЯ КОТОРОЙ ПРОИЗВОДИТ-<br />
СЯ В АБСОЛЮТНЫХ АДРЕСА;<br />
<br />
АДРЕС (ФИЗИЧЕСКИЙ АДРЕС)<br />
- 18-РАЗРЯДНОЕ ДВОИЧНОЕ ЧИСЛО БЕЗ ЗНАКА, ОПРЕДЕЛЯЮ-<br />
ЩЕЕ ПОЛОЖЕНИЕ ЯЧЕЙКИ В ПАМЯТИ ЭВМ;<br />
<br />
АППАРАТНЫЙ ЗАГРУЗЧИК<br />
- АППАРАТНО РЕАЛИЗОВАННЫЙ ПЕРВИЧНЫЙ ЗАГРУЗЧИК ДЛЯ<br />
ВНЕШНИХ УСТРОЙСТВ ТИПА ДИСКА, МАГНИТНОЙ ЛЕНТЫ,<br />
ПЕРФОЛЕНТЫ, ВЫПОЛНЯЮЩИЙ ЧТЕНИЕ В ОПЕРАТИВНУЮ<br />
ПАМЯТЬ ЗАГРУЗЧИКА ОПЕРАЦИОННОЙ СИСТЕМЫ ИЛИ ПРОГ-<br />
РАММЫ;<br />
<br />
АРГУМЕНТ<br />
- ПЕРЕМЕННАЯ ИЛИ ПОСТОЯННАЯ ВЕЛИЧИНА, ИСПОЛЬЗУЕМАЯ<br />
ДЛЯ УТОЧНЕНИЯ КОМАНДЫ;<br />
<br />
АССЕМБЛЕР<br />
- ПРОГРАММА, КОТОРАЯ ПЕРЕВОДИТ СИМВОЛИЧЕСКИЙ ИСХОД-<br />
НЫЙ КОД В МАШИННЫЕ ИНСТРУКЦИИ, ЗАМЕНЯЯ СИМВОЛИЧЕС-<br />
КИЕ КОДЫ ОПЕРАЦИЙ ДВОИЧНЫМИ КОДАМИ, А СИМВОЛИЧЕС-<br />
КИЕ АДРЕСА - АБСОЛЮТНЫМИ ИЛИ ОТНОСИТЕЛЬНЫМИ АДРЕ-<br />
САМИ ЯЧЕЕК;<br />
<br />
БАЗОВЫЙ АДРЕС<br />
- ИСПОЛЬЗУЕТСЯ В КАЧЕСТВЕ БАЗЫ ПРИ ВЫЧИСЛЕНИИ ОТНО-<br />
СИТЕЛЬНЫХ АДРЕСОВ; ОБЫЧНО ЯВЛЯЕТСЯ АДРЕСОМ ПЕРВОЙ<br />
ЯЧЕЙКИ ПРОГРАММЫ ИЛИ ОБЛАСТИ ДАННЫХ;<br />
<br />
БИБЛИОТЕКА<br />
- ФАЙЛ, СОДЕРЖАЩИЙ ОДНО ИЛИ НЕСКОЛЬКО ОПРЕДЕЛЕНИЙ<br />
МАКРОКОМАНД, ЛИБО ОДИН ИЛИ НЕСКОЛЬКО ОБ'ЕКТНЫХ<br />
МОДУЛЕЙ, КОТОРЫЕ МОГУТ ВКЛЮЧАТЬСЯ В ПРИКЛАДНУЮ<br />
ПРОГРАММУ ПОЛЬЗОВАТЕЛЯ ИЗБИРАТЕЛЬНО;<br />
<br />
БЛОК - ГРУППА ФИЗИЧЕСКИ СМЕЖНЫХ СЛОВ ИЛИ БАЙТОВ, РАЗМЕР<br />
КОТОРОЙ ЗАВИСИТ ОТ КОНКРЕТНОГО УСТРОЙСТВА; ЯВЛЯЕТ-<br />
СЯ МИНИМАЛЬНЫМ СЕГМЕНТОМ, АДРЕСУЕМЫМ ОПЕРАЦИОННОЙ<br />
СИСТЕМОЙ ПРИ ОПЕРАЦИЯХ ВВОДА/ВЫВОДА НА УСТРОЙСТВАХ<br />
ВНЕШНЕЙ ПАМЯТИ;<br />
<br />
БУФЕР - ОБЛАСТЬ ПАМЯТИ, ИСПОЛЬЗУЕМАЯ ДЛЯ ВРЕМЕННОГО ХРАНЕ-<br />
НИЯ ИНФОРМАЦИИ, ПЕРЕДАВАЕМОЙ МЕЖДУ ДВУМЯ УСТРОЙСТ-<br />
�<br />
- 41 -<br />
<br />
<br />
<br />
<br />
ВАМИ ИЛИ УСТРОЙСТВОМ И ПАМЯТЬЮ; БУФЕРОМ МОЖЕТ БЫТЬ<br />
СПЕЦИАЛЬНЫЙ РЕГИСТР ИЛИ ОБЛАСТЬ ОПЕРАТИВНОЙ ПАМЯ-<br />
ТИ;<br />
<br />
ВЕКТОР ПРЕРЫВАНИЯ<br />
- ДВА СЛОВА ОПЕРАТИВНОЙ ПАМЯТИ, СОДЕРЖАЩИЕ АДРЕС<br />
ПРОГРАММЫ ОБРАБОТКИ ПРЕРЫВАНИЯ И СЛОВО СОСТОЯНИЯ<br />
ПРОЦЕССОРА, ПРИ КОТОРОМ ЭТА ПРОГРАММА ДОЛЖНА<br />
НАЧАТЬ РАБОТАТЬ;<br />
<br />
ВЕРХНИЙ АДРЕС ПРОГРАММЫ<br />
- СТАРШИЙ АДРЕС ОБЛАСТИ ПАМЯТИ, ПО КОТОРЫЙ ЗАГРУ-<br />
ЖАЕТСЯ ПРОГРАММА;<br />
<br />
ВИРТУАЛЬНЫЙ АДРЕС<br />
- 16-РАЗРЯДНОЕ ДВОИЧНОЕ ЧИСЛО БЕЗ ЗНАКА, ОПРЕДЕЛЯЮ-<br />
ЩЕЕ ПОЛОЖЕНИЕ ЯЧЕЙКИ В ВИРТУАЛЬНОМ АДРЕСНОМ ПРОСТ-<br />
РАНСТВЕ;<br />
<br />
ВИРТУАЛЬНОЕ АДРЕСНОЕ ПРОСТРАНСТВО<br />
- СОВОКУПНОСТЬ ВСЕХ ВОЗМОЖНЫХ ВИРТУАЛЬНЫХ АДРЕСОВ<br />
РАБОТАЮЩЕЙ ПРОГРАММЫ;<br />
<br />
ВИРТУАЛЬНАЯ ПРОГРАММА<br />
- ПРОГРАММА, ВЫПОЛНЯЮЩАЯСЯ В НЕПРИВИЛЕГИРОВАННОМ<br />
РЕЖИМЕ; РАБОТАЕТ В ВИРТУАЛЬНОМ АДРЕСНОМ ПРОСТ-<br />
РАНСТВЕ;<br />
<br />
ВРЕМЯ ДОСТУПА<br />
- ИНТЕРВАЛ ВРЕМЕНИ ОТ НАЧАЛА ОБРАБОТКИ ЗАПРОСА НА<br />
ВВОД/ВЫВОД ИНФОРМАЦИИ ДО НАЧАЛА ВЫПОЛНЕНИЯ ОПЕРА-<br />
ЦИИ ОБМЕНА;<br />
<br />
ВХОДНАЯ ИНФОРМАЦИЯ<br />
- ИНФОРМАЦИЯ, КОТОРАЯ ПОДЛЕЖИТ ОБРАБОТКЕ;<br />
<br />
ВЫЗОВ ПО ЦЕПОЧКЕ<br />
- ЗАГРУЗКА И ЗАПУСК ОДНОЙ ФОНОВОЙ ПРОГРАММЫ ИЗ ДРУ-<br />
ГОЙ С ПОМОЩЬЮ СИСТЕМНОЙ МАКРОКОМАНДЫ .CHAIN;<br />
<br />
ВЫХОДНАЯ ИНФОРМАЦИЯ<br />
- РЕЗУЛЬТАТ ФУНКЦИОНИРОВАНИЯ ПРОГРАММЫ ИЛИ ПРОГРАММ-<br />
НОГО МОДУЛЯ;<br />
<br />
ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА<br />
- СИСТЕМА ПО ПЕРЕРАБОТКЕ ИНФОРМАЦИИ, СОСТОЯЩАЯ ИЗ<br />
ТЕХНИЧЕСКИХ СРЕДСТВ, ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ И<br />
ДОКУМЕНТАЦИИ, ОПИСЫВАЮЩЕЙ ИХ ФУНКЦИОНИРОВАНИЕ;<br />
<br />
ГЛОБАЛЬНЫЙ СИМВОЛ<br />
- ЗНАЧЕНИЕ, ОПРЕДЕЛЕННОЕ В ОДНОМ ПРОГРАММНОМ МОДУЛЕ<br />
И ИСПОЛЬЗУЕМОЕ В ДРУГИХ; ГЛОБАЛЬНЫМИ ОБЫЧНО<br />
ЯВЛЯЮТСЯ ТОЧКИ ВХОДА В МОДУЛЬ, ГДЕ ЭТИ ЗНАЧЕНИЯ<br />
ОПРЕДЕЛЕНЫ; ОНИ ЯВЛЯЮТСЯ ВНЕШНИМИ ДЛЯ МОДУЛЕЙ, ИЗ<br />
КОТОРЫХ К НИМ ОБРАЩАЮТСЯ; ГЛОБАЛЬНЫМИ МОГУТ БЫТЬ<br />
ТАКЖЕ ИМЕНА ПОЛЕЙ ДАННЫХ, СМЕЩЕНИЙ, РАЗРЯДОВ;<br />
<br />
<br />
<br />
�<br />
- 42 -<br />
<br />
<br />
<br />
<br />
ГОЛОВНАЯ ПРОГРАММА<br />
- ПРОГРАММНЫЙ МОДУЛЬ, С КОТОРОГО НАЧИНАЕТСЯ ВЫПОЛНЕ-<br />
НИЕ ПРОГРАММЫ;<br />
<br />
ГРУППОВАЯ ОПЕРАЦИЯ<br />
- СОКРАЩЕННЫЙ СПОСОБ УКАЗАНИЯ ГРУППЫ ФАЙЛОВ, ИМЕЮЩИХ<br />
РЯД ОДИНАКОВЫХ ПРИЗНАКОВ В КАКОЙ-ЛИБО ОПЕРАЦИИ;<br />
ТАКИМИ ПРИЗНАКАМИ МОГУТ БЫТЬ ИМЯ ФАЙЛА, ТИП ФАЙЛА,<br />
ДАТА СОЗДАНИЯ И ДР.;<br />
<br />
ДИСТРИБУТИВНЫЙ<br />
- МОЖЕТ ОТНОСИТЬСЯ К ФАЙЛУ, НОСИТЕЛЮ, ИЛИ СИСТЕМЕ В<br />
ЦЕЛОМ; ОБОЗНАЧАЕТ ПРОГРАММНУЮ КОМПОНЕНТУ (ПОЛУФАБ-<br />
РИКАТ), ПОСТАВЛЯЕМУЮ ПОЛЬЗОВАТЕЛЮ; ТРЕБУЕТ ПРОВЕ-<br />
ДЕНИЯ НАСТРОЙКИ В СООТВЕТСТВИИ С КОНФИГУРАЦИЕЙ<br />
КОМПЛЕКСА И КРУГОМ ЗАДАЧ, СТОЯЩИХ ПЕРЕД ПОЛЬЗОВА-<br />
ТЕЛЕМ; ПРОЦЕДУРА НАСТРОЙКИ ОБЫЧНО НАЗЫВАЕТСЯ ГЕНЕ-<br />
РАЦИЕЙ;<br />
<br />
ДРАЙВЕР<br />
- ПРОГРАММА, КОТОРАЯ ЯВЛЯЕТСЯ КОМПОНЕНТОЙ УПРАВЛЯЮ-<br />
ЩЕЙ СИСТЕМЫ РАФОС И ПРЕДНАЗНАЧЕНА ДЛЯ РЕАЛИЗАЦИИ<br />
ОПЕРАЦИЙ ВВОДА/ВЫВОДА НА ФИЗИЧЕСКОМ УРОВНЕ И<br />
ВЫПОЛНЕНИЯ ОСОБЫХ СЛУЖЕБНЫХ ФУНКЦИЙ;<br />
<br />
ЗАГРУЗОЧНЫЙ МОДУЛЬ<br />
- ПРОГРАММА В ФОРМАТЕ ЗАГРУЗКИ;<br />
<br />
ЗНАК - БУКВА, ЦИФРА, ЗНАК ПУНКТУАЦИИ ИЛИ ДРУГОЙ ПЕЧАТНЫЙ<br />
ИЛИ УПРАВЛЯЮЩИЙ СИМВОЛ, ИСПОЛЬЗУЕМЫЙ ДЛЯ ПРЕДСТАВ-<br />
ЛЕНИЯ ИНФОРМАЦИИ;<br />
<br />
ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ<br />
- ЗНАЧЕНИЕ АРГУМЕНТА, ОПЕРАНДА И Т.Д., КОТОРОЕ<br />
ИСПОЛЬЗУЕТСЯ ПРОГРАММОЙ, ЕСЛИ ПОЛЬЗОВАТЕЛЬ НЕ<br />
ОПРЕДЕЛИЛ СООТВЕТСТВУЮЩЕЕ ЗНАЧЕНИЕ В ЯВНОМ ВИДЕ;<br />
<br />
ИДЕНТИФИКАТОР ТОМА (НОСИТЕЛЯ)<br />
- СПЕЦИАЛЬНАЯ ИНФОРМАЦИЯ, ЗАПИСЫВАЕМАЯ НА НОСИТЕЛЕ<br />
СРЕДСТВАМИ ОПЕРАЦИОННОЙ СИСТЕМЫ; ИСПОЛЬЗУЕТСЯ ДЛЯ<br />
ЦЕЛЕЙ ИДЕНТИФИКАЦИИ И ДОСТУПНА ПОЛЬЗОВАТЕЛЮ;<br />
<br />
ИМЯ УСТРОЙСТВА<br />
- ИМЯ (ИДЕНТИФИКАТОР), ОДНОЗНАЧНО ОПРЕДЕЛЯЮЩЕЕ ВНЕШ-<br />
НЕЕ УСТРОЙСТВО В СИСТЕМЕ; ОБЫЧНО СОСТОИТ ИЗ ДВУХ<br />
БУКВ И НЕОБЯЗАТЕЛЬНОЙ ЦИФРЫ (НОМЕРА), ЗА КОТОРЫМИ<br />
СЛЕДУЕТ ДВОЕТОЧИЕ ":";<br />
<br />
ИМЯ ФАЙЛА<br />
- АЛФАВИТНО-ЦИФРОВАЯ СТРОКА (A - Z, 0 - 9), ИСПОЛЬ-<br />
ЗУЕМАЯ ДЛЯ ИДЕНТИФИКАЦИИ ФАЙЛА; В РАФОС ИМЯ ФАЙЛА<br />
СОДЕРЖИТ НЕ БОЛЕЕ ШЕСТИ ЗНАКОВ, ПРОБЕЛЫ ЗАПРЕЩЕНЫ;<br />
<br />
ИНИЦИАЛИЗАЦИЯ<br />
- ПРИСВОЕНИЕ НАЧАЛЬНЫХ ЗНАЧЕНИЙ ПЕРЕМЕННЫМ, МАССИВАМ<br />
В ТРЕБУЕМЫЕ МОМЕНТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ;<br />
- ПОДГОТОВКА НОСИТЕЛЯ УСТРОЙСТВА ВНЕШНЕЙ ПАМЯТИ ДЛЯ<br />
ИСПОЛЬЗОВАНИЯ ОПЕРАЦИОННОЙ СИСТЕМОЙ;<br />
<br />
�<br />
- 43 -<br />
<br />
<br />
<br />
<br />
ИНТЕРПРЕТАТОР<br />
- ПРОГРАММА, КОТОРАЯ ТРАНСЛИРУЕТ И ЗАТЕМ ВЫПОЛНЯЕТ<br />
ОПЕРАТОР ВХОДНОГО ЯЗЫКА ПЕРЕД ТРАНСЛЯЦИЕЙ (И<br />
ВЫПОЛНЕНИЕМ) СЛЕДУЮЩЕГО ОПЕРАТОРА;<br />
<br />
ИНТЕРПРЕТАТОР КОМАНДНОЙ СТРОКИ (CSI)<br />
- ЯЗЫК, ИСПОЛЬЗУЕМЫЙ В РАФОС ДЛЯ УПРАВЛЕНИЯ СИСТЕМ-<br />
НЫМИ ПРОГРАММАМИ; МОЖЕТ ПРИМЕНЯТЬСЯ В ПРИКЛАДНЫХ<br />
ПРОГРАММАХ;<br />
- ПРОГРАММНАЯ КОМПОНЕНТА МОНИТОРА, ПРЕОБРАЗУЮЩАЯ<br />
СТРОКУ ФОРМАТА CSI В ТАБЛИЧНУЮ ФОРМУ ОДНОВРЕМЕННО<br />
С ВЫПОЛНЕНИЕМ СИНТАКСИЧЕСКОГО КОНТРОЛЯ;<br />
<br />
ИСПОЛНЯЮЩАЯ СИСТЕМА<br />
- НАБОР МОДУЛЕЙ, ОРГАНИЗОВАННЫЙ В ВИДЕ БИБЛИОТЕКИ,<br />
ИСПОЛЬЗУЕМОЙ ДЛЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ, НАПИСАННОЙ<br />
НА СООТВЕТСТВУЮЩЕМ ЯЗЫКЕ ВЫСОКОГО УРОВНЯ; В РАФОС<br />
ВКЛЮЧЕНЫ БИБЛИОТЕКИ ИСПОЛНЯЮЩЕЙ СИСТЕМЫ ЯЗЫКА ПАС-<br />
КАЛЬ;<br />
<br />
КАРТА РАСПРЕДЕЛЕНИЯ ПАМЯТИ (КАРТА ЗАГРУЗКИ)<br />
- РАСПЕЧАТКА ИЛИ ФАЙЛ, СОДЕРЖАЩИЙ ТАБЛИЦУ, СОЗДАВАЕ-<br />
МУЮ КОМПОНОВЩИКОМ; СОДЕРЖИТ ПАРАМЕТРЫ ЗАГРУЗОЧНОГО<br />
МОДУЛЯ: СТАРТОВЫЙ АДРЕС, ЗНАЧЕНИЯ ГЛОБАЛЬНЫХ СИМ-<br />
ВОЛОВ, ВЕРХНИЙ И НИЖНИЙ АДРЕСА И Т.Д.;<br />
<br />
КАТАЛОГ<br />
- ТАБЛИЦА, СОДЕРЖАЩАЯ ИМЕНА И УКАЗАТЕЛИ НА КАЖДЫЙ ИЗ<br />
ФАЙЛОВ ВНЕШНЕГО ЗАПОМИНАЮЩЕГО УСТРОЙСТВА;<br />
- ТАБЛИЦА, СОДЕРЖАЩАЯ ИМЕНА И ГЛОБАЛЬНЫЕ СИМВОЛЫ, А<br />
ТАКЖЕ ИНФОРМАЦИЮ О РАСПОЛОЖЕНИИ МОДУЛЕЙ, ВХОДЯЩИХ<br />
В ОБ'ЕКТНУЮ БИБЛИОТЕКУ ИЛИ МАКРОБИБЛИОТЕКУ;<br />
<br />
КАТАЛОГОВАЯ ОРГАНИЗАЦИЯ<br />
- ОТНОСИТСЯ К ЗАПОМИНАЮЩЕМУ УСТРОЙСТВУ, ИМЕЮЩЕМУ<br />
СТАНДАРТНУЮ ДЛЯ РАФОС СТРУКТУРУ КАТАЛОГА ВСЕХ ФАЙ-<br />
ЛОВ НА НОСИТЕЛЕ; ДЛЯ КАЖДОГО ФАЙЛА ХРАНИТСЯ ЕГО<br />
ИМЯ, ТИП, ДЛИНА И ДАТА СОЗДАНИЯ;<br />
<br />
КВАЛИФИКАТОР (КЛЮЧ)<br />
- ЭЛЕМЕНТ КОМАНДЫ ИЛИ КОМАНДНОЙ СТРОКИ, ДАЮЩИЙ ПОЛЬ-<br />
ЗОВАТЕЛЮ ВОЗМОЖНОСТЬ СДЕЛАТЬ ВЫБОР ИЗ НЕСКОЛЬКИХ<br />
ВАРИАНТОВ ИНТЕРПРЕТАЦИИ КОМАНДЫ;<br />
<br />
КОМАНДЫ МОНИТОРА (КОМАНДНЫЙ ЯЗЫК)<br />
- ДИАЛОГОВЫЙ ЯЗЫК, ДАЮЩИЙ ПОЛЬЗОВАТЕЛЮ ВОЗМОЖНОСТЬ<br />
УПРАВЛЯТЬ РАБОТОЙ СИСТЕМЫ;<br />
<br />
КОМАНДНАЯ СТРОКА<br />
- ВХОДНАЯ СТРОКА, УДОВЛЕТВОРЯЮЩАЯ СИНТАКСИСУ КОМАНД<br />
МОНИТОРА И ВКЛЮЧАЮЩАЯ КОМАНДУ, СПЕЦИФИКАЦИИ ФАЙЛОВ<br />
И КВАЛИФИКАТОРЫ;<br />
<br />
КОМАНДНЫЙ ФАЙЛ (КОСВЕННЫЙ ФАЙЛ)<br />
- ФАЙЛ, СОДЕРЖАЩИЙ КОМАНДНЫЕ СТРОКИ, КОТОРЫЕ БУДУТ<br />
ВЫПОЛНЯТЬСЯ ПОСЛЕДОВАТЕЛЬНО; ЭТИ ЖЕ КОМАНДЫ МОЖНО<br />
ВЫПОЛНИТЬ В ИНТЕРАКТИВНОМ РЕЖИМЕ;<br />
<br />
<br />
�<br />
- 44 -<br />
<br />
<br />
<br />
<br />
КОМПОНОВЩИК<br />
- ПРОГРАММА, СОЗДАЮЩАЯ ИЗ ОБ'ЕКТНЫХ МОДУЛЕЙ ЗАГРУ-<br />
ЗОЧНЫЙ, УДОВЛЕТВОРЯЕТ ГЛОБАЛЬНЫЕ ССЫЛКИ И, ПРИ<br />
НЕОБХОДИМОСТИ, РЕАЛИЗУЕТ СТРУКТУРУ ПЕРЕКРЫТИЙ;<br />
<br />
КОМПИЛЯТОР<br />
- ПРОГРАММА, ПРОВОДЯЩАЯ ТРАНСЛЯЦИЮ С ЯЗЫКА ВЫСОКОГО<br />
УРОВНЯ НА ЯЗЫК, ПРИГОДНЫЙ ДЛЯ ДАННОЙ МАШИНЫ;<br />
<br />
КОМПИЛЯЦИЯ<br />
- ПРОЦЕДУРА ПОЛУЧЕНИЯ ДВОИЧНОГО КОДА ИЗ ОПЕРАТОРОВ<br />
ЯЗЫКА ВЫСОКОГО УРОВНЯ;<br />
<br />
КОНКАТЕНАЦИЯ<br />
- ОБ'ЕДИНЕНИЕ ДВУХ СИМВОЛЬНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ<br />
(СТРОК) В ОДНУ, НЕ НАРУШАЮЩЕЕ ПОРЯДКА СЛЕДОВАНИЯ<br />
ЗНАКОВ В КАЖДОЙ ИЗ НИХ;<br />
<br />
КОРНЕВОЙ СЕГМЕНТ<br />
- СЕГМЕНТ ОВЕРЛЕЙНОЙ СТРУКТУРЫ (ПРОГРАММЫ), КОТОРЫЙ<br />
ПОСЛЕ ЗАГРУЗКИ ОСТАЕТСЯ РЕЗИДЕНТНЫМ В ПАМЯТИ В<br />
ТЕЧЕНИЕ ВСЕГО ВРЕМЕНИ ВЫПОЛНЕНИЯ ПРОГРАММЫ;<br />
<br />
КОСВЕННЫЙ АДРЕС<br />
- АДРЕС, ОПРЕДЕЛЯЮЩИЙ ЯЧЕЙКУ ПАМЯТИ, СОДЕРЖАЩУЮ ЛИБО<br />
ДЕЙСТВИТЕЛЬНЫЙ АДРЕС, ЛИБО ДРУГОЙ КОСВЕННЫЙ АДРЕС<br />
(УКАЗАТЕЛЬ);<br />
<br />
ЛИСТИНГ<br />
- РАСПЕЧАТКА, ПОЛУЧЕННАЯ НА ТЕРМИНАЛЕ ИЛИ УСТРОЙСТВЕ<br />
ПЕЧАТИ;<br />
<br />
ЛОГИЧЕСКОЕ ИМЯ УСТРОЙСТВА<br />
- ИМЯ, НАЗНАЧАЕМОЕ ПОЛЬЗОВАТЕЛЕМ ФИЗИЧЕСКОМУ УСТ-<br />
РОЙСТВУ; ИСПОЛЬЗУЕТСЯ В КАЧЕСТВЕ СИНОНИМА ФИЗИЧЕС-<br />
КОГО ИМЕНИ ПРИ ВСЕХ ССЫЛКАХ НА УСТРОЙСТВО;<br />
<br />
ЛОГИЧЕСКОЕ УСТРОЙСТВО<br />
- ЛОГИЧЕСКОЕ ИМЯ, ПОСТОЯННО СООТВЕТСТВУЮЩЕЕ ОДНОМУ<br />
ИЗ ФИЗИЧЕСКИХ УСТРОЙСТВ КОМПЛЕКСА; НЕКОТОРЫЕ ЛОГИ-<br />
ЧЕСКИЕ УСТРОЙСТВА МОГУТ БЫТЬ ПЕРЕНАЗНАЧЕНЫ (НО НЕ<br />
УДАЛЕНЫ ИЗ СИСТЕМЫ);<br />
<br />
МАКРО (МАКРОКОМАНДА)<br />
- ИНСТРУКЦИЯ ВХОДНОГО ЯЗЫКА МАКРОАССЕМБЛЕРА, ЭКВИВА-<br />
ЛЕНТНАЯ ОПРЕДЕЛЕННОЙ ПОСЛЕДОВАТЕЛЬНОСТИ ЭЛЕМЕНТАР-<br />
НЫХ ИНСТРУКЦИЙ ЯЗЫКА;<br />
<br />
МАКРО (МАКРОАССЕМБЛЕР)<br />
- ЯЗЫК АССЕМБЛЕРА И ТРАНСЛЯТОР С ЭТОГО ЯЗЫКА, ДОПУС-<br />
КАЮЩИЙ ИСПОЛЬЗОВАНИЕ МАКРОКОМАНД;<br />
<br />
МОНИТОР<br />
- ОСНОВНАЯ УПРАВЛЯЮЩАЯ ПРОГРАММА, КОТОРАЯ КОНТРОЛИ-<br />
РУЕТ И/ИЛИ ПРОВЕРЯЕТ ФУНКЦИОНИРОВАНИЕ ВЫЧИСЛИТЕЛЬ-<br />
НОЙ СИСТЕМЫ; ВКЛЮЧАЕТ МОДУЛИ ВЗАИМОДЕЙСТВИЯ С ОПЕ-<br />
РАТОРОМ, РАСПРЕДЕЛЕНИЯ РЕСУРСОВ, ОРГАНИЗАЦИИ<br />
ВВОДА/ВЫВОДА И Т.Д.;<br />
<br />
�<br />
- 45 -<br />
<br />
<br />
<br />
<br />
МОНИТОР ОДНОЗАДАЧНЫЙ (SJ-МОНИТОР)<br />
- МОНИТОР РАФОС, ОБЕСПЕЧИВАЮЩИЙ ОДНОПРОГРАММНЫЙ<br />
РЕЖИМ ФУНКЦИОНИРОВАНИЯ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ;<br />
<br />
МОНИТОР ФОНОВО-ОПЕРАТИВНЫЙ (FB-МОНИТОР)<br />
- МОНИТОР РАФОС, ОБЕСПЕЧИВАЮЩИЙ ОДНОВРЕМЕННОЕ ВЫПОЛ-<br />
НЕНИЕ ДВУХ (ФОНОВОЙ И ОПЕРАТИВНОЙ) ЗАДАЧ ВЫЧИСЛИ-<br />
ТЕЛЬНОЙ СИСТЕМОЙ;<br />
<br />
МОНИТОР УПРАВЛЕНИЯ ПАМЯТИ (XM-МОНИТОР)<br />
- FB-МОНИТОР, ВКЛЮЧАЮЩИЙ СРЕДСТВА ИСПОЛЬЗОВАНИЯ<br />
ПАМЯТИ ДО 124 КСЛОВ;<br />
<br />
НАЧАЛЬНЫЙ ЗАГРУЗЧИК<br />
- ПРОГРАММА, ВЫПОЛНЯЮЩАЯ ФУНКЦИИ АППАРАТНОГО ЗАГРУЗ-<br />
ЧИКА;<br />
<br />
НЕЗАВИСИМОСТЬ ОТ УСТРОЙСТВ<br />
- ВОЗМОЖНОСТЬ ДЛЯ ПРОГРАММЫ ВЫПОЛНЯТЬ ОПЕРАЦИИ<br />
ВВОДА/ВЫВОДА НЕЗАВИСИМО ОТ УСТРОЙСТВА, С КОТОРЫМ<br />
СВЯЗАНЫ ОПЕРАЦИИ;<br />
<br />
НИЖНИЙ АДРЕС ПРОГРАММЫ<br />
- МЛАДШИЙ АДРЕС ОБЛАСТИ ПАМЯТИ, С КОТОРОГО ЗАГРУ-<br />
ЖАЕТСЯ ПРОГРАММА;<br />
<br />
НОМЕР УСТРОЙСТВА<br />
- ЦИФРА (ОБЫЧНО ОТ 0 ДО 7, ПО УМОЛЧАНИЮ - 0),<br />
ИСПОЛЬЗУЕМАЯ ДЛЯ ВЫБОРА КОНКРЕТНОГО УСТРОЙСТВА ИЗ<br />
ГРУППЫ УСТРОЙСТВ ОДНОГО ТИПА;<br />
<br />
НОСИТЕЛЬ<br />
- КОМПОНЕНТА ВНЕШНЕГО УСТРОЙСТВА, НА КОТОРОЙ ОСУ-<br />
ЩЕСТВЛЯЕТСЯ ЗАПОМИНАНИЕ ИНФОРМАЦИИ;<br />
<br />
ОБ'ЕКТНЫЙ МОДУЛЬ<br />
- МИНИМАЛЬНАЯ ЕДИНИЦА РЕЗУЛЬТАТА РАБОТЫ КОМПИЛЯТОРА,<br />
КОТОРАЯ МОЖЕТ БЫТЬ СВЯЗАНА С ДРУГИМИ ОБ'ЕКТНЫМИ<br />
МОДУЛЯМИ ДЛЯ ПОЛУЧЕНИЯ ЗАГРУЗОЧНОГО МОДУЛЯ; СОС-<br />
ТОИТ ИЗ ПЕРЕМЕЩАЕМЫХ МАШИННЫХ ИНСТРУКЦИЙ, ИНФОРМА-<br />
ЦИИ ПО ПЕРЕМЕЩЕНИЮ, ТАБЛИЦЫ ГЛОБАЛЬНЫХ СИМВОЛОВ И<br />
Т.Д.;<br />
<br />
ОБЛАСТЬ<br />
- ПОНЯТИЕ XM-МОНИТОРА РАФОС; СЕГМЕНТ ФИЗИЧЕСКОЙ<br />
ПАМЯТИ, НАХОДЯЩЕЙСЯ В ЕЕ ВЕРХНИХ АДРЕСАХ; ЕЕ ДЛИНА<br />
КРАТНА 32 СЛОВАМ И НЕ ПРЕВОСХОДИТ 96 КСЛОВ; ПРОГ-<br />
РАММА МОЖЕТ ИСПОЛЬЗОВАТЬ ДО ТРЕХ ОБЛАСТЕЙ;<br />
<br />
ОБЛАСТЬ ПЕРЕКРЫТИЯ<br />
- ОБЛАСТЬ ОПЕРАТИВНОЙ ПАМЯТИ, В КОТОРУЮ ЗАГРУЖАЮТСЯ<br />
ПЕРЕКРЫТИЯ ОДНОГО УРОВНЯ;<br />
<br />
ОБРАЗ ПАМЯТИ<br />
- ПРЕДСТАВЛЕНИЕ СОДЕРЖИМОГО ОБЛАСТИ ПАМЯТИ, РАЗМЕ-<br />
ЩЕННОЕ ОБЫЧНО В ФАЙЛЕ;<br />
<br />
<br />
<br />
�<br />
- 46 -<br />
<br />
<br />
<br />
<br />
ОГРАНИЧИТЕЛЬ<br />
- ЗНАК, ИСПОЛЬЗУЕМЫЙ ДЛЯ РАЗДЕЛЕНИЯ ЗАПИСЕЙ;<br />
<br />
ОКНО - ТЕРМИН, ИСПОЛЬЗУЕМЫЙ В XM-МОНИТОРЕ РАФОС; ОБЛАСТЬ<br />
ВИРТУАЛЬНОГО ПРОСТРАНСТВА; АНАЛОГИЧНО СТРАНИЦЕ<br />
ВИРТУАЛЬНОГО ПРОСТРАНСТВА НАЧИНАЕТСЯ С АДРЕСА,<br />
КРАТНОГО 4 КСЛОВ; ДЛИНА ОКНА МОЖЕТ БЫТЬ БОЛЬШЕ 4<br />
КСЛОВ, Т.Е. ОКНО МОЖЕТ ИСПОЛЬЗОВАТЬ БОЛЕЕ ОДНОЙ<br />
СТРАНИЦЫ ВИРТУАЛЬНОЙ ПАМЯТИ; ДОПУСТИМО ИСПОЛЬЗО-<br />
ВАТЬ ДО 8 ОКОН С НОМЕРАМИ 0-7;<br />
<br />
ОПЕРАНД<br />
- СПЕЦИФИКАЦИЯ ОБ'ЕКТА, НАД КОТОРЫМ ПРОИЗВОДИТСЯ<br />
ОПЕРАЦИЯ;<br />
<br />
ОПЕРАТИВНЫЙ РЕЖИМ<br />
- РЕЖИМ, ПРИ КОТОРОМ ПРОГРАММА РЕАЛЬНОГО ВРЕМЕНИ<br />
ВЫПОЛНЯЕТСЯ С САМЫМ ВЫСОКИМ ПРИОРИТЕТОМ;<br />
<br />
ОПЕРАЦИОННАЯ СИСТЕМА<br />
- СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, ДАЮЩЕЕ ВОЗМОЖ-<br />
НОСТЬ ЭФФЕКТИВНО ИСПОЛЬЗОВАТЬ ПРОЦЕССОР И ВНЕШНИЕ<br />
УСТРОЙСТВА ДЛЯ РАЗРАБОТКИ И ВЫПОЛНЕНИЯ ПРИКЛАДНЫХ<br />
ПРОГРАММ; ВКЛЮЧАЕТ УПРАВЛЯЮЩУЮ СИСТЕМУ, СИСТЕМНЫЕ<br />
ПРОГРАММЫ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ;<br />
<br />
ОТОБРАЖЕНИЕ<br />
- ПОНЯТИЕ XM-МОНИТОРА РАФОС; СООТВЕТСТВИЕ (ПРОЕКЦИЯ)<br />
ОКНА НА ОБЛАСТЬ;<br />
<br />
ОЧЕРЕДЬ<br />
- ДИНАМИЧЕСКИЙ СПИСОК ЭЛЕМЕНТОВ ОЧЕРЕДИ, ОЖИДАЮЩИХ<br />
ОБРАБОТКИ, НАПРИМЕР, ЗАПРОСЫ НА ВВОД/ВЫВОД;<br />
<br />
ПЕРЕКЛЮЧАТЕЛИ ПУЛЬТА ПРОЦЕССОРА<br />
- КЛЮЧИ (ПЕРЕКЛЮЧАТЕЛИ), РАСПОЛОЖЕННЫЕ НА ПЕРЕДНЕЙ<br />
ПАНЕЛИ ЦЕНТРАЛЬНОГО ПРОЦЕССОРА;<br />
<br />
ПЕРЕКЛЮЧЕНИЕ СОСТОЯНИЯ<br />
- ПРОЦЕДУРА СОХРАНЕНИЯ РЕГИСТРОВ И НЕКОТОРЫХ ОБЛАС-<br />
ТЕЙ ПАМЯТИ, ВЫПОЛНЯЕМАЯ ОПЕРАЦИОННОЙ СИСТЕМОЙ<br />
ПЕРЕД ПЕРЕХОДОМ С ОБРАБОТКИ ОДНОЙ ПРОГРАММЫ К<br />
ОБРАБОТКЕ ДРУГОЙ ПРОГРАММЫ;<br />
<br />
ПОВТОРНАЯ ВХОДИМОСТЬ (РЕЕНТЕРАБЕЛЬНОСТЬ)<br />
- ОТНОСИТСЯ К ПРОГРАММЕ, СОСТОЯЩЕЙ ИЗ РАЗДЕЛЯЕМОГО<br />
СЕГМЕНТА "ЧИСТОГО" КОДА И НЕРАЗДЕЛЯЕМОГО СЕГМЕНТА<br />
ОБЛАСТИ ДАННЫХ; ПОВТОРНО ВХОДИМЫЕ ПРОГРАММЫ ОБЫЧНО<br />
РАЗРАБАТЫВАЮТСЯ ДЛЯ ИСПОЛЬЗОВАНИЯ (ОДНОЙ КОПИИ<br />
ПРОГРАММЫ В ПАМЯТИ) НЕСКОЛЬКИМИ ПРОЦЕССАМИ ОПЕРА-<br />
ЦИОННОЙ СИСТЕМЫ;<br />
<br />
ПОСЛЕДОВАТЕЛЬНЫЙ ДОСТУП<br />
- ДОСТУП К ДАННЫМ, ПРИ КОТОРОМ СЛЕДУЮЩАЯ ОБЛАСТЬ, ИЗ<br />
КОТОРОЙ ДОЛЖНЫ БЫТЬ ПОЛУЧЕНЫ ДАННЫЕ, НЕПОСРЕДСТ-<br />
ВЕННО СЛЕДУЕТ ЗА ОБЛАСТЬЮ ДАННЫХ, ПОЛУЧЕННЫХ ПЕРЕД<br />
ЭТИМ;<br />
<br />
<br />
�<br />
- 47 -<br />
<br />
<br />
<br />
<br />
ПРЕРЫВАНИЕ<br />
- ВНЕШНЕЕ СОБЫТИЕ, ВЫЗЫВАЮЩЕЕ ПЕРЕДАЧУ УПРАВЛЕНИЯ<br />
ОПРЕДЕЛЕННОЙ ЯЧЕЙКЕ ПАМЯТИ; ПРИ ЭТОМ НАРУШАЕТСЯ<br />
НОРМАЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ ТЕКУЩЕЙ<br />
ПРОГРАММЫ;<br />
<br />
ПРИКЛАДНАЯ ПРОГРАММА (ПРОГРАММА ПОЛЬЗОВАТЕЛЯ)<br />
- ПРОГРАММА, ВЫПОЛНЯЮЩАЯ ФУНКЦИИ, ОПРЕДЕЛЯЕМЫЕ КОНК-<br />
РЕТНЫМИ ЗАДАЧАМИ ПОЛЬЗОВАТЕЛЯ; ПРИКЛАДНОЙ ПРОГРАМ-<br />
МОЙ ЯВЛЯЕТСЯ ЛЮБАЯ ПРОГРАММА, НЕ ЯВЛЯЮЩАЯСЯ ЧАСТЬЮ<br />
ОПЕРАЦИОННОЙ СИСТЕМЫ;<br />
<br />
ПРОГРАММА ЗАВЕРШЕНИЯ (ПОДПРОГРАММА ЗАВЕРШЕНИЯ)<br />
- ПОДПРОГРАММА, ВЫПОЛНЯЕМАЯ ПРИ НАСТУПЛЕНИИ СОБЫТИЯ;<br />
ЯВЛЯЕТСЯ КОМПОНЕНТОЙ ФОНОВОГО ИЛИ ОПЕРАТИВНОГО<br />
ЗАДАНИЯ; СОБЫТИЕ МОЖЕТ ЗАКЛЮЧАТЬСЯ В ЗАВЕРШЕНИИ<br />
ОПЕРАЦИИ ВВОДА/ВЫВОДА, МОЖЕТ БЫТЬ ВЫЗВАНО ПРЕРЫВА-<br />
НИЕМ ОТ ВНЕШНЕГО УСТРОЙСТВА, ПРЕРЫВАНИЕМ, ЗАПЛАНИ-<br />
РОВАННЫМ ПО ТАЙМЕРУ, И Т.Д.;<br />
<br />
ПРОГРАММА ОБСЛУЖИВАНИЯ ПОЛЬЗОВАТЕЛЯ (USR)<br />
- КОМПОНЕНТА МОНИТОРА РАФОС, ВЫПОЛНЯЮЩАЯ ОБРАБОТКУ<br />
ЗАПРОСОВ НА ДЕЙСТВИЯ С КАТАЛОГАМИ И ВКЛЮЧАЮЩАЯ<br />
ИНТЕРПРЕТАТОР КОМАНДНОЙ СТРОКИ (CSI);<br />
<br />
ПРОГРАММНОЕ ПРЕРЫВАНИЕ<br />
- УСЛОВНЫЙ ПЕРЕХОД К ОПРЕДЕЛЕННОЙ ЯЧЕЙКЕ, ВЫПОЛНЯЕ-<br />
МЫЙ АВТОМАТИЧЕСКИ АППАРАТУРОЙ, КАК ЧАСТЬ ФУНКЦИИ<br />
ВЫПОЛНЕНИЯ ИНСТРУКЦИИ ПРОЦЕССОРОМ; АДРЕС ЯЧЕЙКИ,<br />
ОТКУДА ПРОИЗОШЛО ПРЕРЫВАНИЕ, ЗАПОМИНАЕТСЯ; ТАКИЕ<br />
ПРЕРЫВАНИЯ СЛЕДУЕТ ОТЛИЧАТЬ ОТ ПРЕРЫВАНИЙ, ВЫЗВАН-<br />
НЫХ ВНЕШНИМИ СОБЫТИЯМИ;<br />
<br />
ПРОГРАММНАЯ СЕКЦИЯ<br />
- ИМЕЮЩИЙ ИМЯ НЕПРЕРЫВНЫЙ СЕГМЕНТ КОДА (ИНСТРУКЦИЙ<br />
ИЛИ ДАННЫХ), КОТОРЫЙ ВОСПРИНИМАЕТСЯ КАК ЕДИНОЕ<br />
ЦЕЛОЕ И МОЖЕТ ПЕРЕМЕЩАТЬСЯ НЕЗАВИСИМО ОТ ДРУГИХ<br />
СЕКЦИЙ, НЕ НАРУШАЯ ЛОГИКИ ПРОГРАММЫ;<br />
<br />
ПРОИЗВОЛЬНЫЙ ДОСТУП (ПРЯМОЙ ДОСТУП)<br />
- ДОСТУП К ДАННЫМ, ПРИ КОТОРОМ ПОЛОЖЕНИЕ ОЧЕРЕДНОГО<br />
СЕГМЕНТА, ИЗ КОТОРОГО ПОСТУПАЮТ ДАННЫЕ, НЕ ЗАВИСИТ<br />
ОТ ПОЛОЖЕНИЯ ПРЕДЫДУЩЕГО СЕГМЕНТА; ПРОТИВОПОЛОЖЕН<br />
ПОСЛЕДОВАТЕЛЬНОМУ ДОСТУПУ;<br />
<br />
ПРОТОКОЛ<br />
- ФОРМАЛЬНЫЙ НАБОР СОГЛАШЕНИЙ И ВРЕМЕННЫХ СООТНОШЕ-<br />
НИЙ ОБМЕНА ИНФОРМАЦИЕЙ МЕЖДУ ДВУМЯ ВЗАИМОДЕЙСТВУЮ-<br />
ЩИМИ ПРОЦЕССАМИ;<br />
<br />
РАБОТА В РЕАЛЬНОМ МАСШТАБЕ ВРЕМЕНИ<br />
- ВЫЧИСЛЕНИЯ, ВЫПОЛНЯЕМЫЕ ОДНОВРЕМЕННО С ФИЗИЧЕСКИМ<br />
ПРОЦЕССОМ ТАК, ЧТО РЕЗУЛЬТАТ ЭТИХ ВЫЧИСЛЕНИЙ МОЖЕТ<br />
БЫТЬ ИСПОЛЬЗОВАН ДЛЯ УПРАВЛЕНИЯ ДАННЫМ ПРОЦЕССОМ;<br />
<br />
РАЗДЕЛЕНИЕ ВРЕМЕНИ<br />
- МЕТОД РАСПРЕДЕЛЕНИЯ РЕСУРСОВ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕ-<br />
МЫ МЕЖДУ НЕСКОЛЬКИМИ ПОЛЬЗОВАТЕЛЯМИ, ПРИ КОТОРОМ<br />
СОЗДАЕТСЯ ЭФФЕКТ ОДНОВРЕМЕННОСТИ ВЫПОЛНЕНИЯ НЕС-<br />
�<br />
- 48 -<br />
<br />
<br />
<br />
<br />
КОЛЬКИХ ЗАДАЧ;<br />
<br />
РАЗДЕЛИТЕЛЬ<br />
- ЗНАК, ИСПОЛЬЗУЕМЫЙ ДЛЯ ВЫДЕЛЕНИЯ ЧАСТЕЙ ЗАПИСИ,<br />
ЗАПИСЕЙ В ФАЙЛЕ И Т.Д.;<br />
<br />
РАСШИРЕНИЕ ИМЕНИ ФАЙЛА (ТИП ФАЙЛА)<br />
- СИМВОЛИЧЕСКИЙ ДОПОЛНИТЕЛЬНЫЙ ИДЕНТИФИКАТОР ФАЙЛА,<br />
ОПРЕДЕЛЯЕМЫЙ ПОЛЬЗОВАТЕЛЕМ ИЛИ ОПЕРАЦИОННОЙ СИСТЕ-<br />
МОЙ; ТИПЫ ФАЙЛОВ, РАЗПОЗНАВАЕМЫЕ СИСТЕМОЙ, ИСПОЛЬ-<br />
ЗУЮТСЯ ДЛЯ ИДЕНТИФИКАЦИИ ФАЙЛОВ, ИМЕЮЩИХ ОДИНАКО-<br />
ВЫЙ ФОРМАТ; ТИП ФАЙЛА ОТДЕЛЯЕТСЯ ОТ ИМЕНИ ФАЙЛА<br />
ТОЧКОЙ "."; РАФОС ДОПУСКАЕТ ИДЕНТИФИКАТОР ТИПА<br />
ДЛИНОЙ НЕ БОЛЕЕ ТРЕХ АЛФАВИТНО-ЦИФРОВЫХ ЗНАКОВ;<br />
<br />
РЕДАКТИРОВАНИЕ<br />
- ПРОЦЕДУРА СОЗДАНИЯ И/ИЛИ ВНЕСЕНИЯ КОРРЕКЦИЙ (ИЗМЕ-<br />
НЕНИЙ) В ДАННЫЕ ФАЙЛА;<br />
<br />
РЕДАКТОР<br />
- ДИАЛОГОВАЯ ПРОГРАММА, ОБЕСПЕЧИВАЮЩАЯ РЕДАКТИРОВА-<br />
НИЕ ТЕКСТОВОГО ФАЙЛА ПО КОМАНДАМ ОПЕРАТОРА;<br />
<br />
РЕЗЕРВНЫЙ ФАЙЛ<br />
- КОПИЯ ФАЙЛА, СОЗДАВАЕМАЯ ДЛЯ ЦЕЛЕЙ ЗАЩИТЫ ИНФОРМА-<br />
ЦИИ НА СЛУЧАЙ НЕПРЕДНАМЕРЕННОЙ ПОТЕРИ ИЛИ РАЗРУШЕ-<br />
НИЯ ОСНОВНОГО ФАЙЛА; ИСПОЛЬЗУЕТСЯ РЕДАКТОРАМИ<br />
РАФОС;<br />
<br />
РЕЗИДЕНТ<br />
- ОТНОСИТСЯ К ИНСТРУКЦИЯМ ИЛИ ДАННЫМ, КОТОРЫЕ ПОС-<br />
ТОЯННО РАЗМЕЩЕНЫ В ОПЕРАТИВНОЙ ПАМЯТИ;<br />
<br />
РЕСТАРТ<br />
- ПРОЦЕДУРА ПОВТОРНОГО ЗАПУСКА ПРОГРАММЫ;<br />
<br />
"СБОРКА МУСОРА"<br />
- ОПЕРАЦИЯ СЖАТИЯ НА УСТРОЙСТВЕ ПРЯМОГО ДОСТУПА;<br />
ПОСЛЕ ВЫПОЛНЕНИЯ ЭТОЙ ОПЕРАЦИИ ВСЕ СВОБОДНЫЕ<br />
ОБЛАСТИ (UNUSED) ОБ'ЕДИНЯЮТСЯ В ОДНУ, КОТОРАЯ<br />
БУДЕТ РАСПОЛОЖЕНА В КОНЦЕ УСТРОЙСТВА;<br />
<br />
СВОПИНГ<br />
- ПРОЦЕДУРА СОХРАНЕНИЯ ДАННЫХ НА ВНЕШНЕМ ЗАПОМИНАЮ-<br />
ЩЕМ УСТРОЙСТВЕ И ВРЕМЕННОГО ИСПОЛЬЗОВАНИЯ ОСВОБО-<br />
ДИВШЕЙСЯ ОБЛАСТИ ПАМЯТИ ДЛЯ ДРУГИХ ЦЕЛЕЙ, С ПОСЛЕ-<br />
ДУЮЩИМ ВОССТАНОВЛЕНИЕМ ОРИГИНАЛЬНОЙ ИНФОРМАЦИИ В<br />
ПАМЯТИ;<br />
<br />
СЕГМЕНТ ПЕРЕКРЫТИЯ (ОВЕРЛЕЙ)<br />
- ЧАСТЬ ПРОГРАММЫ, ПЕРЕКРЫВАЮЩАЯ (ЗАМЕЩАЮЩАЯ) ПРИ<br />
ВЫЗОВЕ ДРУГУЮ, НАХОДЯЩУЮСЯ В ПАМЯТИ, И ПЕРЕКРЫВАЕ-<br />
МАЯ ДРУГИМИ ПРИ ИХ ВЫЗОВЕ ИЗ КОРНЕВОГО СЕГМЕНТА<br />
ИЛИ ПЕРЕКРЫТИЯ БОЛЕЕ ВЫСОКОГО ПОРЯДКА, НАХОДЯЩЕГО-<br />
СЯ В ПАМЯТИ;<br />
<br />
СИСТЕМНАЯ МАКРОКОМАНДА (ПРОГРАММНЫЙ ЗАПРОС)<br />
- НАБОР ИНСТРУКЦИЙ ПРОЦЕССОРА, ИСПОЛЬЗУЕМЫЙ ПРОГРАМ-<br />
МОЙ ПРИ ОБРАЩЕНИЯХ К МОНИТОРУ ДЛЯ ВЫПОЛНЕНИЯ СИС-<br />
�<br />
- 49 -<br />
<br />
<br />
<br />
<br />
ТЕМНЫХ ОПЕРАЦИЙ;<br />
<br />
СИСТЕМНАЯ ОБЛАСТЬ СВЯЗИ (SYSCOM)<br />
- ОБЛАСТЬ ОПЕРАТИВНОЙ ПАМЯТИ С АДРЕСАМИ 40-57;<br />
СОДЕРЖИТ ИНФОРМАЦИЮ, ИСПОЛЬЗУЕМУЮ КАК ПРОГРАММОЙ,<br />
ТАК И МОНИТОРОМ;<br />
<br />
СИСТЕМНАЯ ПРОГРАММА<br />
- ПРОГРАММА, ВЫПОЛНЯЮЩАЯ ФУНКЦИИ ПО ОБСЛУЖИВАНИЮ<br />
СИСТЕМЫ; ЛЮБАЯ ПРОГРАММА, ЯВЛЯЮЩАЯСЯ ЧАСТЬЮ ОПЕРА-<br />
ЦИОННОЙ СИСТЕМЫ, В ЧАСТНОСТИ ТРАНСЛЯТОРЫ С ЯЗЫКОВ<br />
ПРОГРАММИРОВАНИЯ;<br />
<br />
СИСТЕМНЫЙ ТЕРМИНАЛ<br />
- ТЕРМИНАЛ, ИСПОЛЬЗУЕМЫЙ В КАЧЕСТВЕ СРЕДСТВА ВЗАИМО-<br />
ДЕЙСТВИЯ МЕЖДУ ОПЕРАТОРОМ И ВЫЧИСЛИТЕЛЬНОЙ СИСТЕ-<br />
МОЙ;<br />
<br />
СИСТЕМНОЕ УСТРОЙСТВО<br />
- ВНЕШНЕЕ ЗАПОМИНАЮЩЕЕ УСТРОЙСТВО, НА КОТОРОМ ХРА-<br />
НИТСЯ И С КОТОРОГО ЗАГРУЖЕНА ОПЕРАЦИОННАЯ СИСТЕМА;<br />
<br />
СЛОВО СОСТОЯНИЯ ПРОГРАММЫ (JSW)<br />
- ЯЧЕЙКА ОПЕРАТИВНОЙ ПАМЯТИ С АБСОЛЮТНЫМ АДРЕСОМ 44<br />
(ВОСЬМЕРИЧНОЕ); СОДЕРЖИТ ИНФОРМАЦИЮ О ПРОГРАММЕ<br />
(НАЛИЧИЕ ПЕРЕКРЫТИЙ, РЕЖИМ РАБОТЫ ТЕРМИНАЛА И<br />
Т.Д.);<br />
<br />
СОГЛАШЕНИЯ О СВЯЗИ<br />
- ПРИНЯТЫЙ В СИСТЕМЕ ПОРЯДОК ИНСТРУКЦИЙ И ДАННЫХ,<br />
НЕОБХОДИМЫЙ ДЛЯ ПЕРЕДАЧИ ПАРАМЕТРОВ И УПРАВЛЕНИЯ<br />
ПРИ ВЫЗОВЕ ПОДПРОГРАММ;<br />
<br />
СПЕЦИФИКАЦИЯ ФАЙЛА<br />
- ИДЕНТИФИКАТОР, ОДНОЗНАЧНО ОПРЕДЕЛЯЮЩИЙ ФАЙЛ В ОПЕ-<br />
РАЦИОННОЙ СИСТЕМЕ; СОСТОИТ ИЗ ИМЕНИ УСТРОЙСТВА,<br />
ИМЕНИ ФАЙЛА, ТИПА ФАЙЛА;<br />
<br />
СПУЛИНГ (СПУЛЕР)<br />
- СПОСОБ ОРГАНИЗАЦИИ ВВОДА/ВЫВОДА ДЛЯ МЕДЛЕННЫХ УСТ-<br />
РОЙСТВ С ИСПОЛЬЗОВАНИЕМ ВНЕШНЕЙ ПАМЯТИ ДЛЯ СОКРА-<br />
ЩЕНИЯ ВРЕМЕНИ ОЖИДАНИЯ ПРИ ОБРАБОТКЕ ДАННЫХ;<br />
<br />
СТАРТОВЫЙ АДРЕС ПРОГРАММЫ (АДРЕС ЗАПУСКА)<br />
- АДРЕС, НА КОТОРЫЙ ПЕРЕДАЕТСЯ УПРАВЛЕНИЕ ПРОГРАММЕ<br />
ПРИ ЕЕ ЗАПУСКЕ;<br />
<br />
СТРАНИЦА<br />
- ПОРЦИЯ ТЕКСТОВОГО ФАЙЛА, ОГРАНИЧЕННАЯ ЗНАКОМ<br />
"ПЕРЕВОД ФОРМАТА" (<CTRL/L> ИЛИ <FF>), И ОБЫЧНО<br />
СОДЕРЖАЩАЯ 50-60 СТРОК;<br />
<br />
СТРАНИЦА ВИРТУАЛЬНОГО ПРОСТРАНСТВА<br />
- ОБЛАСТЬ ВИРТУАЛЬНОГО ПРОСТРАНСТВА С НИЖНЕЙ ГРАНИ-<br />
ЦЕЙ, КРАТНОЙ 4 КСЛОВ, И ОБ'ЕМОМ, КРАТНЫМ 32 СЛО-<br />
ВАМ; РАЗМЕР СТРАНИЦЫ НЕ ПРЕВЫШАЕТ 4 КСЛОВ; В<br />
АДРЕСНОМ ПРОСТРАНСТВЕ ЗАДАЧИ ОБЫЧНО СУЩЕСТВУЕТ 8<br />
СТРАНИЦ С НОМЕРАМИ 0-7;<br />
<br />
�<br />
- 50 -<br />
<br />
<br />
<br />
<br />
СТРАНИЦА ВВОДА/ВЫВОДА<br />
- СТАРШИЕ 4 КСЛОВ ОБЛАСТИ АДРЕСОВ НА ОБЩЕЙ ШИНЕ,<br />
ЗАРЕЗЕРВИРОВАННЫХ ДЛЯ РЕГИСТРОВ ВНЕШНИХ УСТРОЙСТВ;<br />
<br />
СТРУКТУРА ПЕРЕКРЫТИЙ (ОВЕРЛЕЙНАЯ СТРУКТУРА)<br />
- СТРУКТУРА ПРОГРАММЫ, СОДЕРЖАЩАЯ КОРНЕВОЙ СЕГМЕНТ И<br />
ОДИН ИЛИ БОЛЕЕ СЕГМЕНТОВ ПЕРЕКРЫТИЙ;<br />
<br />
ТАБЛИЦА ПЕРЕКРЕСТНЫХ ССЫЛОК<br />
- ЛИСТИНГ, СОДЕРЖАЩИЙ ВСЕ ССЫЛКИ В ПРОГРАММЕ НА КАЖ-<br />
ДЫЙ ИСПОЛЬЗУЕМЫЙ СИМВОЛ, ВКЛЮЧАЯ ТОЧКИ ОПРЕДЕЛЕ-<br />
НИЯ, ОБРАЩЕНИЯ И МОДИФИКАЦИИ СИМВОЛА;<br />
<br />
ТОЧКА ОСТАНОВА<br />
- ЯЧЕЙКА, В КОТОРОЙ ВЫПОЛНЕНИЕ ПРОГРАММЫ ПРИОСТАНАВ-<br />
ЛИВАЕТСЯ ДЛЯ ВМЕШАТЕЛЬСТВА ОПЕРАТОРА;<br />
<br />
ТРАНСЛЯТОР<br />
- ПРОГРАММА, ОСУЩЕСТВЛЯЮЩАЯ ПЕРЕВОД (ТРАНСЛЯЦИЮ) С<br />
ОДНОГО ЯЗЫКА ПРОГРАММИРОВАНИЯ НА ДРУГОЙ;<br />
<br />
ТРАНСЛЯЦИЯ<br />
- ПРОЦЕСС ПРЕОБРАЗОВАНИЯ (ПЕРЕВОДА) С ОДНОГО ЯЗЫКА<br />
НА ДРУГОЙ;<br />
<br />
УСЛОВНАЯ ТРАНСЛЯЦИЯ<br />
- ТРАНСЛЯЦИЯ ОПРЕДЕЛЕННЫХ УЧАСТКОВ ИСХОДНОЙ ПРОГРАМ-<br />
МЫ ПРИ ВЫПОЛНЕНИИ ЗАДАННЫХ УСЛОВИЙ;<br />
<br />
УСТРОЙСТВА БЕСКАТАЛОГОВОЙ ОРГАНИЗАЦИИ<br />
- ОТНОСИТСЯ К ВНЕШНИМ ЗАПОМИНАЮЩИМ УСТРОЙСТВАМ,<br />
ИМЕЮЩИМ ПОСЛЕДОВАТЕЛЬНУЮ СТРУКТУРУ И, ПОЭТОМУ, НЕ<br />
СОДЕРЖАЩИМ КАТАЛОГА В НАЧАЛЕ НОСИТЕЛЯ; ИНФОРМАЦИЯ<br />
О ФАЙЛЕ ХРАНИТСЯ НА НОСИТЕЛЕ ВМЕСТЕ С КАЖДЫМ ФАЙ-<br />
ЛОМ;<br />
<br />
УСТРОЙСТВО ПЕЧАТИ<br />
- АЛФАВИТНО-ЦИФРОВОЕ ПЕЧАТАЮЩЕЕ УСТРОЙСТВО (АЦПУ);<br />
<br />
УСТРОЙСТВО НЕФАЙЛОВОЙ СТРУКТУРЫ<br />
- УСТРОЙСТВА, ПОДОБНЫЕ ПЕРФОЛЕНТЕ, ТЕРМИНАЛУ И Т.П.,<br />
НА КОТОРЫХ ДАННЫЕ НЕ МОГУТ БЫТЬ ОРГАНИЗОВАНЫ В<br />
ВИДЕ НЕСКОЛЬКИХ ФАЙЛОВ;<br />
<br />
ФАЙЛ - ЛОГИЧЕСКИЙ НАБОР ДАННЫХ, ВОСПРИНИМАЕМЫЙ КАК ЕДИНОЕ<br />
ЦЕЛОЕ И ЗАНИМАЮЩИЙ ОДИН ИЛИ БОЛЕЕ БЛОКОВ НА ВНЕШ-<br />
НЕМ ЗАПОМИНАЮЩЕМ УСТРОЙСТВЕ ТИПА ДИСКА ИЛИ МАГНИТ-<br />
НОЙ ЛЕНТЫ; ИМЕЕТ СВЯЗАННЫЕ С НИМ ИМЯ И ТИП;<br />
<br />
ФАЙЛ АБСОЛЮТНОЙ ЗАГРУЗКИ<br />
- ФАЙЛ, СОДЕРЖАЩИЙ ПРОГРАММУ В СПЕЦИАЛЬНОМ ДВОИЧНОМ<br />
ФОРМАТЕ, ОБЕСПЕЧИВАЮЩЕМ ЕЕ ЗАГРУЗКУ И ЗАПУСК С<br />
ПЕРФОЛЕНТЫ АБСОЛЮТНЫМ ЗАГРУЗЧИКОМ ПЛОС-СМ ЛИБО ПО<br />
КОМАНДЕ МОНИТОРА ABSLOAD;<br />
<br />
ФОНОВАЯ ПРОГРАММА<br />
- ПРОГРАММА, ВЫПОЛНЯЮЩАЯСЯ НА БОЛЕЕ НИЗКОМ, ПО СРАВ-<br />
НЕНИЮ С ОПЕРАТИВНОЙ, ПРИОРИТЕТЕ;<br />
<br />
�<br />
- 51 -<br />
<br />
<br />
<br />
<br />
ЧАСЫ (ТАЙМЕР)<br />
- УСТРОЙСТВО, ГЕНЕРИРУЮЩЕЕ РЕГУЛЯРНЫЕ ПЕРИОДИЧЕСКИЕ<br />
СИГНАЛЫ (ПРЕРЫВАНИЯ) ДЛЯ СИНХРОНИЗАЦИИ;<br />
<br />
ЭХО-ПЕЧАТЬ<br />
- РАСПЕЧАТКА ЗНАКОВ, ВВОДИМЫХ ОПЕРАТОРОМ, ОСУЩЕСТВ-<br />
ЛЯЕМАЯ НА УСТРОЙСТВЕ ВВОДА/ВЫВОДА ТИПА ТЕРМИНАЛ;<br />
<br />
ЯЗЫК АССЕМБЛЕРА<br />
- МАШИННО-ОРИЕНТИРОВАННЫЙ ЯЗЫК ПРОГРАММИРОВАНИЯ;<br />
ОПЕРАТОР ВХОДНОГО ЯЗЫКА ПРЕОБРАЗУЕТСЯ, ОБЫЧНО, В<br />
ОДНУ ИНСТРУКЦИЮ ПРОЦЕССОРА;<br />
<br />
ЯЗЫК УПРАВЛЕНИЯ ПАКЕТОМ<br />
- НАБОР КОМАНД, ДИРЕКТИВ, КВАЛИФИКАТОРОВ И ПРАВИЛ ИХ<br />
ИСПОЛЬЗОВАНИЯ ДЛЯ УПРАВЛЕНИЯ ПАКЕТНОЙ ОБРАБОТКОЙ;<br />
<br />
ЯЗЫКОВЫЙ ПРОЦЕССОР<br />
- СИСТЕМНАЯ ПРОГРАММА, ОБЕСПЕЧИВАЮЩАЯ ОБРАБОТКУ<br />
И/ИЛИ ПРЕОБРАЗОВАНИЕ ПРОГРАММЫ, ЗАПИСАННОЙ НА<br />
ОДНОМ ИЗ ВХОДНЫХ ЯЗЫКОВ;<br />
<br />
ЯЧЕЙКА - АДРЕСУЕМЫЙ ЭЛЕМЕНТ ОПЕРАТИВНОЙ ПАМЯТИ ЭВМ (СЛОВО<br />
ИЛИ БАЙТ);<br />
<br />
<ESC>-ПОСЛЕДОВАТЕЛЬНОСТЬ<br />
- ПОСЛЕДОВАТЕЛЬНОСТЬ ЗНАКОВ, НАЧИНАЮЩАЯСЯ С <ESC> И<br />
ИСПОЛЬЗУЕМАЯ ДЛЯ УПРАВЛЕНИЯ ТЕРМИНАЛОМ (ОБЫЧНО,<br />
УПРАВЛЕНИЕ КУРСОРОМ ЭКРАНА).<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 52 -<br />
<br />
<br />
<br />
<br />
ПРИЛОЖЕНИЕ 4<br />
<br />
<br />
<br />
<br />
СТРУКТУРА ДОКУМЕНТАЦИИ<br />
<br />
<br />
<br />
<br />
ПРОГРАММНАЯ ДОКУМЕНТАЦИЯ НА ОПЕРАЦИОННУЮ СИСТЕМУ ДЛЯ<br />
ОРГАНИЗАЦИИ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ СИСТЕМ С РАЗДЕЛЕНИЕМ<br />
ФУНКЦИЙ (РАФОС) ВКЛЮЧАЕТ РЯД ДОКУМЕНТОВ ПО ОПЕРАЦИОННОЙ<br />
СИСТЕМЕ (НЕКОТОРЫЕ ИЗ НИХ РАЗБИТЫ НА ЧАСТИ) И ЯЗЫКАМ ПРОГ-<br />
РАММИРОВАНИЯ.<br />
<br />
<br />
<br />
1. ОПЕРАЦИОННАЯ СИСТЕМА<br />
<br />
1. ОПИСАНИЕ ПРИМЕНЕНИЯ<br />
- ВВЕДЕНИЕ В СИСТЕМУ<br />
- ОСОБЕННОСТИ СИСТЕМЫ<br />
<br />
2. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА<br />
- ГЕНЕРАЦИЯ СИСТЕМЫ<br />
- ЛОКАЛЬНЫЕ МНОГОМАШИННЫЕ<br />
СИСТЕМЫ<br />
- УПРАВЛЯЮЩАЯ СИСТЕМА<br />
- ФОРМАТЫ ФАЙЛОВ<br />
<br />
3. РУКОВОДСТВО ПРОГРАММИСТА<br />
- СИСТЕМНЫЕ ТАБЛИЦЫ И<br />
БИБЛИОТЕКИ<br />
- ПРОГРАММИРОВАНИЕ ВНЕШНИХ<br />
УСТРОЙСТВ<br />
- ОБРАБОТКА ГРАФИЧЕСКИХ ДАННЫХ<br />
<br />
4. РУКОВОДСТВО ОПЕРАТОРА<br />
- КОМАНДЫ МОНИТОРА<br />
- СИСТЕМНЫЕ ПРОГРАММЫ<br />
ОБЩЕГО НАЗНАЧЕНИЯ<br />
- ПРОГРАММЫ РАБОТЫ С ТЕКСТОМ<br />
<br />
5.ПЕРЕЧЕНЬ ПРОГРАММ ДИСТРИБУТИВА<br />
И СИСТЕМНОЙ ДОКУМЕНТАЦИИ<br />
<br />
6.ОПИСАНИЕ КОНТРОЛЬНОГО ПРИМЕРА<br />
<br />
7. СООБЩЕНИЯ И ДИАГНОСТИКА<br />
ОШИБОК<br />
<br />
8. СПРАВОЧНЫЙ МАТЕРИАЛ<br />
<br />
<br />
<br />
<br />
<br />
<br />
�<br />
- 53 -<br />
<br />
<br />
<br />
<br />
2. ЯЗЫКИ ПРОГРАММИРОВАНИЯ<br />
<br />
<br />
<br />
МАКРОАССЕМБЛЕР<br />
1. ОПИСАНИЕ ЯЗЫКА<br />
<br />
3. РУКОВОДСТВО ПРОГРАММИСТА<br />
<br />
ПАСКАЛЬ<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</pre><br />
<br />
[[Категория:PDP-11 совместимые]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%A1%D0%9C_%D0%AD%D0%92%D0%9C/%D0%9A%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3_1979&diff=3773СМ ЭВМ/Каталог 19792024-03-26T07:59:51Z<p>Panther: категория</p>
<hr />
<div>Оглавление издания "СМ ЭВМ. Каталог разработанных и испытанных технических и программных средств", выпущенного<br />
<br />
"Межправительственная комиссия по сотрудничеству социалистических стран в области вычислительной техники: СМ ЭВМ, система малых вычислительных машин. Москва, 1979."<br />
<br />
<DL><br />
<DT>Архитектура процессоров СМ ЭВМ первой очереди <!--7--><br />
<DT>Основные архитектурные особенности процессоров СМ-1П и СМ-2П <!--8--><br />
<DT>Основные архитектурные особенности процессоров СМ-3П и СМ-4П <!--19--><br />
<DT>Система малых интерфейсов СМ ЭВМ <!--30--><br />
<DT>Средства СМ ЭВМ для построения систем телеобработки данных <!--37--><br />
<DT>Конструктивная база СМ ЭВМ <!--40--><br />
<DT>Элементная база СМ ЭВМ <!--48--><br />
<DT>Условия эксплуатации технических средств СМ ЭВМ <!--50--><br />
<br />
<H2>Процессоры СМ ЭВМ и устройства, расширяющие функциональные возможности процессоров</H2> <!--53--><br />
<DT>Процессор СМ-1П (СМ-2101) <!--54--><br />
<DD>СССР: <EM>А-131-10</EM><br />
<DT>Процессор СМ-2П (СМ-2102) <!--58--><br />
<DD> СССР<br />
<DT>Процессор СМ-3П (СМ-2302, СМ-2303, СМ-2103, СМ-2301) <!--62--><br />
<DD> ПНР: <EM>СМ-3П</EM>, Куба: <EM>СИД-300</EM>, СССР: <EM>СМ-3П</EM>, ЧССР: <EM>СМ-3-20</EM><br />
<DT>Процессор СМ-4П (СМ-2402, СМ-2104) <!--66--><br />
<DD> СРР: <EM>I-100</EM>, СССР: <EM>СМ-4П</EM><br />
<DT>Программируемый таймер (СМ-2001) <!--71--><br />
<DD> ЧССР<br />
<DT>Блок системный интерфейсный (СМ-0101) <!--73--><br />
<DD> ЧССР<br />
<br />
<H2>Внутренние запоминающие устройства СМ ЭВМ</H2> <!--77--><br />
<DT>Ферритовое оперативное запоминающее устройство (СМ-3100) <!--78--><br />
<DD> СССР: <EM>ОЗУ-П 32 К-18/1</EM><br />
<DT>Ферритовое оперативное запоминающее устройство (СМ-3101) <!--80--><br />
<DD> ПНР: <EM>FBP-32/18/SM</EM><br />
<DT>Ферритовое оперативное запоминающее устройство (СМ-3103) <!--82--><br />
<DD> ЧССР: <EM>OFP 32K18</EM><br />
<DT>Ферритовое оперативное запоминающее устройство (СМ-3105) <!--84--><br />
<DD> СССР: <EM>А-211-18</EM><br />
<DT>Модуль полупроводниковой памяти 16К18 (СМ-3510) <!--85--><br />
<DD> ЧССР: <EM>OPP MO 32K18</EM><br />
<br />
<H2>Внешние запоминающие устройства СМ ЭВМ на магнитных лентах и дисках</H2> <!--87--><br />
<DT>Устройство управления (контроллер) малогабаритными накопителями на магнитной ленте (СМ-5001) <!--88--><br />
<DD> НРБ: <EM>ИЗОТ 5000С</EM><br />
<DT>Накопитель на магнитной ленте (СМ-5300) <!--91--><br />
<DD> НРБ: <EM>ИЗОТ 5004Е</EM><br />
<DT>Накопитель на магнитной ленте (СМ-5302) <!--93--><br />
<DD> НРБ: <EM>ИЗОТ 5005-1Е</EM><br />
<DT>Устройство управления (контроллер) накопителями на сменных магнитных дисках (СМ-5102) <!--95--><br />
<DD> ПНР<br />
<DT>Устройство управления (контроллер) накопителями на сменных магнитных дисках (СМ-5105.01, СМ-5105) <!--98--><br />
<DD> НРБ, СССР<br />
<DT>Накопитель на магнитном диске кассетного типа (СМ-5400) <!--100--><br />
<DD> НРБ: <EM>ИЗОТ-1370</EM><br />
<DT>Накопитель на магнитном диске кассетного типа (СМ-5401) <!--102--><br />
<DD> ПНР: <EM>МЕРА-9425</EM><br />
<DT>Накопитель на магнитном диске кассетного типа (СМ-5403) <!--104--><br />
<DD> ЧССР: <EM>KDP-721</EM><br />
<DT>Накопитель на магнитном диске с фиксированными головками (СМ-5500, СМ-5500-01, СМ-5500-02, СМ-5500-03) <!--106--><br />
<DD> ВНР: <EM>MD 0800-B, MD 1600-B, MD 0500-C, MD 1000-C</EM><br />
<DT>Внешнее запоминающее устройство на магнитных дисках (СМ-5501) <!--109--><br />
<DD> СССР<br />
<DT>Сменный диск кассетного типа (ЕС-5269-01) <!--111--><br />
<DD> НРБ<br />
<DT>Накопитель на гибких магнитных дисках (СМ-5602) <!--112--><br />
<DD> ПНР: <EM>PLX 45D</EM><br />
<br />
<H2>Устройства управления для устройств ввода-вывода СМ ЭВМ</H2> <!--115--><br />
<DT>Универсальный контроллер с выходом на ИРПР (СМ-6001) <!--116--><br />
<DD> ЧССР: <EM>УКПР-8</EM><br />
<DT>Универсальный контроллер с выходом на ИРПС и С2 (СМ-6002) <!--119--><br />
<DD> ЧССР: <EM>УКПС</EM><br />
<br />
<H2>Перфокарточные устройства ввода СМ ЭВМ</H2> <!--123--><br />
<DT>Устройство ввода с перфокарт (СМ-6101) <!--124--><br />
<DD> ВНР: <EM>VT 42111</EM><br />
<DT>Устройство ввода с перфокарт (СМ-6102) <!--126--><br />
<DD> ГДР: <EM>DARO 1220-2123</EM><br />
<DT>Устройство ввода с перфокарт (СМ-6103) <!--128--><br />
<DD> СРР: <EM>RCD 9226</EM><br />
<br />
<H2>Перфоленточные устройства ввода-вывода СМ ЭВМ</H2> <!--131--><br />
<DT>Комбинированное перфоленточное устройство ввода-вывода информации (СМ-6200) <!--132--><br />
<DD> ВНР<br />
<DT>Комбинированное перфоленточное устройство ввода-вывода информации (СМ-6204) <!--135--><br />
<DD> ПНР: <EM>СПТП-3, СТ-2100-3, DT-105S-3</EM><br />
<DT>Устройство ввода с перфоленты (СМ-6203) <!--138--><br />
<DD> ВНР: <EM>MP 301</EM><br />
<DT>Перфоленточное устройство ввода (СМ-6208) <!--140--><br />
<DD> ЧССР: <EM>ПУВ</EM><br />
<DT>Устройство вывода информации на перфоленту (СМ-6222) <!--142--><br />
<DD> ПНР: <EM>DT-105S</EM><br />
<DT>Устройство вывода на перфоленту (СМ-6227) <!--144--><br />
<DD> ВНР: <EM>MP 51</EM><br />
<br />
<H2>Печатающие устройства СМ ЭВМ</H2> <!--147--><br />
<DT>Алфавитно-цифровое печатающее устройство последовательного действия (СМ-6301/ЕС-7181-11) <!--148--><br />
<DD> ГДР: <EM>DARO 1156</EM><br />
<DT>Алфавитно-цифровое печатающее устройство последовательного действия (СМ-6302) <!--150--><br />
<DD> ПНР: <EM>DZM-180</EM><br />
<DT>Алфавитно-цифровое печатающее устройство последовательного действия (СМ-6303) <!--152--><br />
<DD> ЧССР: <EM>КОНСУЛ 2113</EM><br />
<DT>Алфавитно-цифровое печатающее устройство параллельного действия (СМ-6306) <!--154--><br />
<DD> ВНР: <EM>VT 25120</EM> (64-char Latin), <EM>VT 25121</EM> (64-char Cyrillic), <EM>VT 25122</EM> (96-char Latin+Cyrillic)<br />
<DT>Алфавитно-цифровое печатающее устройство параллельного действия (СМ-6315) <!--156--><br />
<DD> СССР<br />
<DT>Алфавитно-цифровое печатающее устройство параллельного действия (СМ-6316) <!--158--><br />
<DD> ВНР: <EM>VT 24112</EM><br />
<DT>Алфавитно-цифровое печатающее устройство параллельного действия (СМ-6321) <!--160--><br />
<DD> ВНР: <EM>VT 25150</EM><br />
<DT>Алфавитно-цифровое печатающее устройство параллельного действия (СМ-6322) <!--162--><br />
<DD> СРР: <EM>RCD 9322</EM><br />
<br />
<H2>Печатающие устройства с клавиатурой СМ ЭВМ</H2> <!--165--><br />
<DT>Алфавитно-цифровое мозаичное печатающее устройство с клавиатурой (СМ-7102) <!--166--><br />
<DD> ГДР: <EM>DARO 1154</EM><br />
<DT>Алфавитно-цифровое печатающее устройство с клавиатурой (СМ-7108, СМ-7108.70) <!--168--><br />
<DD> ЧССР: <EM>КОНСУЛ 2113+КОНСУЛ 259</EM><br />
<DT>Алфавитно-цифровое печатающее устройство с клавиатурой (СМ-6312.01, СМ-6312.02) <!--171--><br />
<DD> НРБ: <EM>ИЗОТ-0232</EM><br />
<DT>Алфавитно-цифровая клавиатура (СМ-7601) <!--174--><br />
<DD> ЧССР: <EM>КОНСУЛ 259</EM><br />
<br />
<H2>Дисплеи СМ ЭВМ</H2> <!--175--><br />
<DT>Алфавитно-цифровой видеотерминал (СМ-7202) <!--176--><br />
<DD> ЧССР<br />
<DT>Алфавитно-цифровой видеотерминал (СМ-7203) <!--181--><br />
<DD> Куба: <EM>СИД-702</EM><br />
<DT>Алфавитно-цифровой видеотерминал (СМ-7206) <!--186--><br />
<DD> ВНР: <EM>VT 47100</EM><br />
<DT>Алфавитно-цифровой видеотерминал (СМ-7209) <!--191--><br />
<DD> ПНР: <EM>МЕРА 7952</EM><br />
<DT>Алфавитно-цифровой видеотерминал (СМ-7219) <!--196--><br />
<DD> ВНР: <EM>VT 52100</EM><br />
<DT>Устройство отображения графической информации (СМ-7300) <!--201--><br />
<DD> СССР: <EM>ЭПГ СМ</EM><br />
<DT>Точечный графический видеотерминал (СМ-7301) <!--205--><br />
<DD> ВНР: <EM>VT 47607</EM><br />
<DT>Интеллектуальный алфавитно-цифровой видеотерминал (СМ-7401) <!--211--><br />
<DD> ВНР: <EM>VT 47605</EM><br />
<DT>Интеллектуальный алфавитно-цифровой видеотерминал (СМ-7402) <!--217--><br />
<DD> ГДР: <EM>РВТ 4000</EM><br />
<br />
<H2>Устройства подготовки данных СМ ЭВМ</H2> <!--223--><br />
<DT>Программируемое устройство сбора данных (СМ-6900) <!--224--><br />
<DT>Устройство сбора данных и преобразования информации на магнитных лентах (СМ-6902) <!--228--><br />
<DT>Устройство подготовки данных на гибких магнитных дисках (СМ-6921) <!--231--><br />
<DD> ЧССР: <EM>КОНСУЛ 271</EM><br />
<br />
<H2>Аппаратура передачи данных СМ ЭВМ</H2> <!--233--><br />
<DT>Адаптер дистанционной связи асинхронный (СМ-8501) <!--234--><br />
<DT>Устройство передачи данных МОДЕМ-200 (СМ-8101) <!--236--><br />
<DT>Устройство передачи данных МОДЕМ-1200 (СМ-8102) <!--238--><br />
<DT>Устройство передачи данных МОДЕМ-2400 (СМ-8103) <!--240--><br />
<DT>Нуль-модем (СМ-8105) <!--242--><br />
<DT>Устройство передачи данных МОДЕМ-200 (ЕС-8002) <!--244--><br />
<DT>Устройство передачи данных МОДЕМ-1200 (ЕС-8006) <!--246--><br />
<br />
<H2>Устройства связи с объектом СМ ЭВМ</H2> <!--248--><br />
<DD> Data acquisition equipment<br />
<DT>Проектно-компонуемое устройство связи с объектом с переменным составом оборудования на базе агрегатных модулей (СМ-9101) <!--249--><br />
<br />
<H2>Программное обеспечение комплексов на базе процессоров СМ-1П и СМ-2П</H2> <!--251--><br />
<DT>Ленточная операционная система СМ-1/СМ-2 <!--252--><br />
<DT>Дисковая операционная система СМ-1/СМ-2 <!--254--><br />
<DT>Операционная система реального времени СМ-1/СМ-2 <!--255--><br />
<DT>Дисковая мультипрограммная операционная система реального времени СМ-1/СМ-2 <!--256--><br />
<DT>Пакет программных модулей для компоновки операционных систем АСПО СМ-1/СМ-2 <!--258--><br />
<DT>Пакет программных модулей для генерации задач сбора и обработки информации в АСУТП СМ-1/СМ-2 <!--260--><br />
<DT>Пакет программных модулей для обработки графической информации СМ-1/СМ-2 <!--261--><br />
<br />
<H2>Программное обеспечение комплексов на базе процессоров СМ-3П и СМ-4П</H2> <!--262--><br />
<DT>Перфоленточная операционная система общего назначения (ЛОС) <!--263--><br />
<DT>Дисковая операционная система (ДОС) <!--265--><br />
<DT>Фоново-оперативная базовая операционная система реального времени (ФОБОС) <!--267--><br />
<DT>Тест-мониторная операционная система (ТМОС) <!--269--><br />
<DT>Пакет программ обработки данных в системах автоматизации лабораторных экспериментов (ПАЛЭКС) <!--271--><br />
<DT>Пакет программ численного анализа (ЧАП) <!--273--><br />
<DT>Пакет программ обработки данных методами математической статистики (ПАСТ) <!--275--><br />
<DT>Пакет программ имитационного моделирования непрерывных и дискретных процессов (СИМФОР) <!--277--><br />
<DT>Пакет программ для научно-технических расчетов (НТР) <!--279--><br />
<DT>Пакет программ методов оптимизации (ОПТИМУМ) <!--281--><br />
</DL><br />
<br />
[[Категория:Литература]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%9D%D0%B0%D0%B8%D1%80%D0%B8/%D0%9B%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0&diff=3772Наири/Литература2024-03-26T07:59:14Z<p>Panther: категория</p>
<hr />
<div>{{Emuverse}}<br />
<br />
Список литературы, имеющей отношение к ЭВМ серии «Наири».<br />
<br />
== Документация к ЭВМ ==<br />
<br />
* «Наири» Краткое техническое описание. 1964. 35 стр.<br />
* Техническое описание. ЩК 1.700.003 ТО. Книга 2. Малая универсальная вычислительная машина «Наири-С». Инструкция. Книга 2. 146 стр.<br />
* Техническое описание ЭВМ «Наири-3-1», 1971.<br />
* Техническое описание системы с разделением времени «Наири-3-2», 1973.<br />
<br />
== Без автора ==<br />
<br />
* Алгоритмы и программы решения на ЭВМ «Наири-С» задач электроснабжения нефтяных промыслов [Текст] / Произв. об-ние «Азнефть». Азерб. гос. н. -и. и проект. ин-т нефт. пром-сти (АзНИПИнефть). ОНТИ ; Сост. Азимов Б. А. и др. — Баку : [б. и.], 1979. — 40 с. : ил.; 20 см.<br />
* Всесоюзная конференция пользователей, разработчиков и изготовителей цифровых вычислительных машин типа «Наири» (2; 1967; Москва). Решение II Всесоюзной конференции пользователей, разработчиков и изготовителей цифровых вычислительных машин типа «Наири» [Текст] / М-во путей сообщения СССР. Моск. ордена Ленина и ордена Трудового Красного Знамени ин-т инженеров ж.-д. транспорта. — Москва : [б. и.], 1967. — 4 с.; 21 см.<br />
* Всесоюзный семинар пользователей ЭВМ «Наири» (4; 1969; Ереван). Решение Четвертого всесоюзного семинара пользователей ЭВМ «Наири» [Текст]. — Ереван : [б. и.], 1969. — 3 с.; 29 см.<br />
* Графические устройства на линии с ЭВМ ЕС-1010 и «Наири-2» [Текст] / В. Н. Аносов, П. П. Гавриш, Е. Д. Городничев и др. — Дубна : ОИЯИ, 1979. — 12 с. : схем.; 21 см. — (Сообщения Объединенного института ядерных исследований; 11-12285).<br />
* Дополнения к ДЗУ ЭВМ «Наири» с целью расширения ее возможностей [Текст]. — Москва : [б. и.], 1970. — 9 с.; 20 см. — (Б-ка алгоритмов и программ для ЭВМ «Наири»/ М-во мелиорации и водного хоз-ва СССР. Упр. науки и техники. ЦБНТИ; 7). На обороте тит. л. сост.: Н. Ф. Бончковский, А. А. Кистанов, Н. Б. Оленин, Л. С. Потапкина<br />
* Инструкция по эксплуатации ЭВЦМ «Наири-2» / Московский Ордена Трудового Красного Знамени Институт Стали и Сплавов. — Москва, 1972 (Ротапринт МИСиС). — 22 с.; 20 см.<br />
* Использование стандартных программ ЭЦВМ «Наири-К» и «Наири-С» [Текст] : Учеб.-метод. пособие / [Сост. А. С. Черняков] ; Белорус. ин-т инженеров ж.-д. транспорта, Кафедра вычислит. техники. — Гомель : БелИИЖТ, 1976. — 29 с.; 20 см.<br />
* Использование ЭВМ «НАИРИ» для решения экономико-математических задач [Текст] : (Метод. разраб.) / Акад. нар. хоз-ва СССР ; [Сост. Баскаков А. Б., Бондарев К. К., Никашин А. В.]. — Москва : АНХ, 1978. — 48 с. : ил.; 20 см.<br />
* Малая ЭЦВМ «Наири-2» [Текст] : Метод. рекомендации / М-во высш. и сред. спец. образования УзССР, Учеб.-метод. кабинет; [Сост. М. У. Рахимова]. — Ташкент : [б. и.], 1978. — 6 с.; 20 см.<br />
* Методическая разработка по программированию на ЭВМ «НАИРИ-2» [Текст] : (Алгоритм. яз. АП и счетный режим) / М-во высш. и сред. спец. образования РСФСР. Горьк. политехн. ин-т им. А. А. Жданова. Кафедра прикл. математики. — Горький : [б. и.], 1976. — 29 с.; 20 см.<br />
* Математическое обеспечение вычислительных систем. Программирование для цифровой вычислительной машины «Наири-К» на языке АП [Текст] : Учеб. пособие для студентов всех специальностей / Ю. А. Вальков, Б. А. Иванов, И. В. Ретинская, О. Е. Фролова ; Под ред. проф. Г. П. Молоткова и проф. В. С. Гладкого ; Моск. ин-т нефтехим. и газовой пром-сти им. И. М. Губкина, Кафедра прикл. математики и вычислит. техники. — Москва : [б. и.], 1977. — 67 с.; 21 см.<br />
* Методические указания к программированию математических задач на ЭЦВМ Наири. М., ВЗИИТ, 1976.<br />
* Методические указания и машинные программы для решения задач корреляционного анализа на ЭВМ «Наири-2», «Наири-К», «АСК» [Текст] / Минвуз УССР, Киев. технол. ин-т лег. пром-сти (КТИЛП); [Сост.: к. т. н., доц. В. С. Чмелев, к. э. н., доц. А. В. Ярошенко, преп. Б. П. Дроменко, инж. О. С. Сагинашвили]. — Киев : б. и., 1978. — 65 с. : ил.; 19 см.<br />
* Модернизация электронной вычислительной машины «Наири» [Текст] : Обзорная информация : [Сборник] / М-во пром. строительства СССР. Глав. техн. упр. ЦБТИ. — Москва : [б. и.], 1970. — 36 с. : схем.; 21 см.<br />
* «Наири». Программы для электронно-вычислит. машины. М., Центр науч. техн. информации по гражд. строительству и архитектуре, 1969. 22 см. Тираж 250 экз.<br />
* Обработка и анализ экспериментальных данных на ЭВМ «Наири-2» [Текст] : Метод. руководство / ВНИИ авиац. материалов; [Е. Н. Старова, Ю. М. Должанский, Л. И. Сибилева и др.]. — Москва : ОНТИ ВИАМ, 1979. — 80 с., 5 л. ил.; 22 см.<br />
* Определение поступлений прямой солнечной радиации на вертикальные поверхности различных ориентаций [Текст] / Гос. ком. по гражд. стр-ву и архитектуре при Госстрое СССР. Фонд. алгоритмов и программ по стр-ву и архитектуре. ЭВМ «Наири». — Москва : Центр. науч.-техн. информации по гражд. стр-ву и архитектуре, 1971. — 11 с.; 20 см.<br />
* Определение часовых и суточных значений прямой и диффузной солнечной радиации, проникающей внутрь помещений через двойное остекление окон при различных ориентациях помещений [Текст] / Гос. ком. по гражд. стр-ву и архитектуре при Госстрое СССР. Фонд алгоритмов и программ по стр-ву и архитектуре. ЭВМ «Наири». — Москва : Центр науч.-техн. информации по гражд. стр-ву и архитектуре, 1971. — 13 с.; 20 см.<br />
* Программа «Парная корреляция-2» для ЭВМ «Наири-К» / [М. И. Красницкий, Р. К. Маслова]. — М. : Центр. трест инж.-строит. изысканий, 1980. — 29 с.; 20 см. — (Произв. об-ние «Стройизыскания», Ведомств. фонд алгоритмов и программ по инж. изысканиям для стр-ва. I-49).<br />
* Программа расчета параметров сетевого графика. (Шифр «РС-169») [Текст] / Гос. ком. по гражд. стр-ву и архитектуре при Госстрое СССР. «НАИРИ». — Москва : Центр науч.-техн. информации по гражд. стр-ву и архитектуре, 1969. — 8 с. : ил.; 21 см.<br />
* Программа расчета трудоемкости, продолжительности и стоимости работ по сетевым графикам для проектов с установленной сметной стоимость. (Шифр «Веер») [Текст] / Гос. ком. по гражд. стр-ву и архитектуре при Госстрое СССР. «НАИРИ». — Москва : Центр науч.-техн. информации по гражд. стр-ву и архитектуре, 1969. — 10 с. : ил.; 21 см.<br />
* Программа массового расчета параметров сетевых графиков на основе типовых сетевых моделей [Текст] : (Шифр МРС-151) / Гос. ком. по гражд. стр-ву и архитектуре при Госстрое СССР. «НАИРИ». — Москва : Центр. науч.-техн. информации по гражд. стр-ву и архитектуре, 1969. — 10 с. : ил.; 22 см.<br />
* Перечень аннотаций к программам для ЭВМ «Наири» [Текст] : Сборник / М-во мелиорации и водного хоз-ва СССР. Всесоюз. науч.-исслед. ин-т механизации и техники полива. ВНИИМиТП. — Коломна : [б. и.], 1974. — 17 с.; 20 см.<br />
* Перечень программ для ЭВМ «Наири» [Текст] / ЦСУ СССР. Глав. упр. вычислит. работ. Ассоциация пользователей ЭВМ типа «Наири». — Москва : [б. и.], 1970. — 31 с.; 20 см.<br />
* Программирование для электронной вычислительной машины «Наири» [Текст] / М-во трансп. строительства. Центр. ин-т нормативных исследований и науч.-техн. информации в трансп. строительстве «Оргтрансстрой». Фонд алгоритмов и программ. — Москва : [б. и.], 1968. — 65 с., 3 л. ил.; 21 см.<br />
* Программирование для ЭВМ «НАИРИ-К» [Текст] : Учеб. пособие по дисциплинам «ЭВМ и программирование» и «Вычислительная техника в инженерных и экономических расчетах» / Разраб.: преп. Минкина Н. И., преп. Бальмин Л. Б., преп. Саевич Е. Л. [и др.] ; М-во рыбного хоз-ва СССР. Дальневост. техн. ин-т рыбной пром-сти и хоз-ва. Кафедра автоматики и вычисл. техники. — Владивосток : [б. и.], 1976. — 120 с.; 21 см.<br />
* Программирование на языке автопрограммирования для ЭВМ «Наири-2» : (Метод. пособие) / Якут. гос. ун-т; Сост. Максимова М. Н. — Якутск : ЯГУ, 1981. — 63 с.; 20 см.<br />
* Программирование и работа на ЭВМ «Наири-3-2» : Учеб. пособие / Р. В. Гуськова, Ф. Ш. Сидорова, Л. Н. Тарасова, Ш. И. Галиев. — Казань : КАИ, 1983. — 84 с. : ил.; 20 см.<br />
* Рекомендации по модернизации ЭЦВМ «Наири-К» [Текст] : ИМД-63-77/Стройизыскания / Производ. объединение «Стройизыскания». — Москва : [б. и.], 1977. — 30 с. : схем.; 20 см.<br />
* Расчет испарения по методу теплового баланса на ЭВМ «Наири» [Текст]. — Москва : [б. и.], 1968. — 23 с.; 20 см. — (Библиотека программ для ЭВМ «Наири»/ М-во мелиорации и водного хоз-ва СССР. Гипроводхоз; 5). На обороте тит. л.: сост. Ю. С. Мельником, В. С. Романенко, А. С. Коргановым, А. С. Николаевым<br />
* Расчет пологих ортотропных оболочек с учетом податливости опорного контура на ЭЦВМ «Наири» [Текст] / Минтяжстрой СССР. Главкузбасстрой. Науч.-исслед. ин-т стр-ва угольных и горнорудных предприятий КузНИИшахтострой. — Кемерово : [б. и.], 1971. — 64 с. : ил.; 22 см.<br />
* Стандартные программы ЦВМ «Наири-К» [Текст] / Казан. хим.-технол. ин-т им. С. М. Кирова; [Авт.-сост. М. А. Смирнова, М. С. Мищенко, Н. Н. Валеев]. — Казань : КХТИ, 1979. — 48 с. : ил.; 20 см.<br />
* Сборник задач по программированию для машины «Наири» [Текст] / Б. В. Пыринов, И. А. Новицкая, Е. С. Федоткина, П. М. Осипова ; СССР-МПС. Новосиб. ин-т инж.-д. транспорта. Кафедра «Вычислит. техника». НИИЖТ. — Новосибирск : [б. и.], 1973, вып. дан. 1974. — 65 с. : ил.; 20 см.<br />
* Сборник программ для ЭВМ «Наири-2» [Текст] / М-во геологии СССР. Всесоюз. науч.-исслед. ин-т минер. сырья «ВИМС». — Москва : [б. и.], 1973. — 55 с.; 20 см.<br />
* Стандартная программа расчета взаимокорреляционной функции для ЭВМ «Наири» [Текст]. — Москва : [б. и.], 1969. — 12 с.; 20 см. — (Б-ка программ для ЭВМ «Наири»/ М-во угольной пром-сти СССР. Всесоюз. центр. гос. ин-т по проектированию и техн.-экон. обоснованиям развития угольной пром-сти. «Центрогипрошахт» 2).<br />
* Стандартная программа расчета нагрузки на очистной забой для ЭВМ «Наири» [Текст]. — Москва : [б. и.], 1969. — 25 с.; 20 см. — (Б-ка программ для ЭВМ «Наири»/ М-во угольной пром-сти СССР. Всесоюз. центр. гос. ин-т по проектированию и техн.-экон. обоснованиям развития угольной пром-сти. «Центрогипрошахт» 1).<br />
* Техника работы и программирования на ЭЦВМ «НАИРИ-2» [Текст] : (Метод. разраб.) / МПС СССР. Уральск. электромех. ин-т инженеров ж.-д. транспорта. — Свердловск : [б. и.], 1973-. — 20 см.<br />
* Электронная вычислительная машина с автоматическим программированием ''НАИРИ'' : паспорт. — [Б. м.] : [Б. и.], 1966 (ПМЛ института Гипротис). — [2 с.]; 30 см.<br />
<br />
== С автором, по алфавиту ==<br />
<br />
* Абрамова Н. А. Основы программирования на алгоритмическом языке «АП-НАИРИ» [Текст] : (Метод. пособие по курсу «Вычисл. техника в инж. и экон. расчетах») / Под общ. ред. к. т. н. Савенкова И. Н. — Ашхабад : [б. и.], 1979. — 21 см.<br />
* Агапов, Леонид Федорович. Обучение и контроль знаний с помощью ЭВМ «Наири» [Текст] : (Материалы лекций, прочит. в Политехн. музее на фак. новых методов и средств обучения) / Л. Ф. Агапов, Н. Е. Бобков, В. А. Гудковский ; Всесоюз. о-во «Знание». Политехн. музей, Науч.-исслед. ин-т проблем высш. школы. М-ва высш. и сред. спец. образования СССР. — Москва : Знание, 1977-. — 19 см.<br />
* Андрианова, Н. М. Программирование на ЭЦВМ «НАИРИ-С» [Текст] : (Учеб. пособие) / Н. М. Андрианова, И. Б. Милан ; М-во сельск. хоз-ва СССР. Одес. с.-х. ин-т. — Одесса : [б. и.], 1972. — 94 с. : ил.; 19 см.<br />
* Аминев Г. А. Обработка экспериментальных материалов на ЭВМ «Наири» [Текст] : Учеб. пособие. — Уфа : УАИ, 1977. — 120 с.; 20 см.<br />
* Андреев В. Н. Использование ЭВМ «Наири» для управления физическим экспериментом [Текст] / В. Н. Андреев, В. Г. Недопекин, В. И. Рогов. — Москва : ИТЭФ, 1978. — 44 с. : ил.; 26 см. — (Институт теоретической и экспериментальной физики; ИТЭФ-53).<br />
* Ахмедов Т. Д. Решение инженерных и экономических задач на ЭЦВМ «„НАИРИ-“» : Конспект лекций / Сост. Ахмедов Т. Д. — Ташкент : Б. и., 1979. — 76 с.; 20 см.<br />
* Ахмедов Т. Д. Решение инженерных и экономических задач на ЭЦВМ «Наири-2» [Текст] : Конспект лекций / [Сост. Ахмедов Т. Д.]. — Ташкент : б. и., 1979. — 76 с.; 20 см.<br />
* Бармин, Юлий Иванович. Программирование для ЭЦВМ «Наири» [Текст] : Метод. пособие / Канд. техн. наук Ю. И. Бармин ; МПС. Хабар. ин-т инженеров ж.-д. транспорта. Кафедра «Вычислит. техника». — Хабаровск : [б. и.], 1970-. — 1 т.; 21 см.<br />
* Белявская Т. Г. Программирование и решение задач на ЭВМ «Наири» [Текст] : Учеб. пособие / Т. Г. Белявская, А. И. Солонина, А. С. Файнберг ; Ленингр. электротехн. ин-т связи им. проф. М. А. Бонч-Бруевича. — Ленинград : ЛЭИС, 1976. — 71 с.; 21 см.<br />
* Бобков Н. Е. Методическое пособие по контролю знаний обучаемых с помощью ЭВМ «Наири» [Текст] / Н. Е. Бобков, Л. Ф. Агапов. — Москва : ЦНИИ Электроника, 1976-. — 20 см.<br />
* Булюктов Б. М., Гришанов П. А. и Степанова И. С. (составители), Пособие по программированию для ЦВМ «НАИРИ-2», Рига, Рижский политехнический ин-т, 1976, 95 стр.<br />
* Веретенина, Любовь Петровна. Основы программирования на ЭВМ «Наири-К» (режим АП) : Учеб. пособие / Л. П. Веретенина. — Иркутск : Изд-во Иркут. ун-та, 1982. — 65 с. : ил.; 20 см.<br />
* Гатауллин Рашид Минуллович. Программирование на ЭВМ «НАИРИ» [Текст] / [Сост. Гатауллин Р. М., Дудина Н. Я.]. — Уфа : УНИ, 1978. — 26 с.; 20 см.<br />
* Геолецян А. Г. ЭВМ «Наири-3». Программирование и микропрограммирование. 1979. — 208 с. : ил.; 22 см. — (Пособия для работников вычислительных центров).<br />
* Гулякович М. А. и Поддубная Л. М., Методическое пособие по программированию на ЦВМ «НАИРИ» по курсу «Вычислительная техника в инженерных и экономических расчетах», М., Моск. ин-т электронной техники, 1975, 168 стр.<br />
* Дьяченко, Валерий Александрович. Программирование экономических задач на ЭВМ «Наири» : (Учеб. пособие) / В. А. Дьяченко. — Л. : ЛФЭИ, 1980. — 136 с. : ил.; 22 см.<br />
* Жарков Г. М., Рыжов А. Б. Программирование цифровой вычислительной машины «Наири» [Текст] / Г. М. Жарков, А. Б. Рыжов ; Моск. гос. ун-т им. М. В. Ломоносова. Ин-т механики. — Москва : [б. и.], 1969. — 78 с. : черт.; 30 см.<br />
* Жарков Г. М., Рыжов А. Б. Программирование для цифровой вычислительной машины «Наири» [Текст] / Г. М. Жарков, А. Б. Рыжов. — Москва : Изд-во Моск. ун-та, 1973. — 139 с. : черт.; 21 см.<br />
* Зубов, В. С. Программирование на языке «АП» для ЦВМ «Наири-2» [Текст] : [Учеб. пособие] / В. С. Зубов, В. В. Федюшин ; Редактор Э. С. Комарова ; Моск. энерг. ин-т, Кафедра вычислит. техники. — Москва : МЭИ, 1975. — 60 с.; 20 см.<br />
* Иорданский, Михаил Анатольевич. Программирование на языке АП для Наири-К : [Учеб. пособие для вузов] / М. А. Иорданский. — М. : Наука, 1983. — 111 с.; 20 см.<br />
* Ицкович И. А., Программирование для ЭВМ «Наири». М., «Статистика», 1975. 191 стр.<br />
* Ицкович И. А., Разработка микропрограмм команд ввода и обработки информации в ЦВМ «Наири». Труды ВНИИвагоностр., 1971, № 16.<br />
* Каримов Ш. С. Автопрограммирование для ЭЦВМ «Наири-2» [Текст] : Метод. указания для слушателей фак. повышения квалификации / Ш. С. Каримов, В. С. Рубин ; МПС СССР. Ташк. ин-т инженеров ж.-д. транспорта. Фак. повышения квалификации руководящих работников и специалистов ж.-д. транспорта. — Ташкент : [б. и.], 1972. — 69 с.; 20 см.<br />
* Кашкан А. А. Курс лекций по программированию для ЭВМ «Наири» [Текст] / А. А. Кашкан ; Том. ин-т автоматизир. систем управления и радиоэлектроники. — Томск : Изд-во Том. ун-та, 1975. — 84 с.; 20 см.<br />
* Комарова, Ольга Михайловна. Программирование для цифровой вычислительной машины «Наири-2» [Текст] : Учеб. пособие / М-во высш. и сред. спец. образования РСФСР. Куйбышев. политехн. ин-т им. В. В. Куйбышева. — Куйбышев : [б. и.], 1975. — 20 см.<br />
* Константинов Владимир Павлович. Программирование инженерных задач для ЦВМ «Наири-С» [Текст] : Учеб. пособие / Под ред. проф. А. К. Григорьева ; М-во высш. и сред. спец. образования РСФСР. Ленингр. политехн. ин-т им. М. И. Калинина. — Ленинград : [Ленингр. политехн. ин-т], 1975. — 203 с. : черт.; 22 см.<br />
* Корягин Ю. Д. Применение ЭВМ «Наири» для тепловых расчетов нагревательного оборудования [Текст] : Учеб. пособие по курсу «Нагреват. печи и устройства» / Корягин Ю. Д., Смирнов М. А., Шамарин А. М. — Челябинск : ЧПИ, 1979. — 21 с. : черт.; 20 см.<br />
* Красильников В. В., Пыринов Б. В. Программирование для электронной машины «Наири», ч.1 и 2, НИИЖТ, Новосибирск, 1972.<br />
* Левшиц В. М., Литвин Б. Ф. Приближенные вычисления и программирование на ЭВМ «Наири-2». Л., «Машиностроение», 1977. 240 стр.<br />
* Ломтадзе В. В. Алгоритмы и программы [Текст] / АН СССР, ВНИИ экономики минер. сырья и геол.-развед. работ (ВИЭМС), ГИВЦ АСУ-Геология, ОФАП-Геология (Отрасл. фонд алгоритмов и программ «Геология»). — Москва : [б. и.], 1974—1990. — 26 см. 1976 г., вып. 4 (12): Программы для ЭВМ «Наири-2» [Текст] / [Редкол.: Д. А. Родионов (пред.) [и др.]. — 1976. — 83 с. : ил.<br />
* Малиев Ю. Н. и Кудрявцев М. В., Программирование на ЭЦВМ «НАИРИ-К». Учебное пособие по курсу «Основы программирования», Куйбышев, Куйбышевский ун-т, 1975, 135 стр.<br />
* Мамонтов О. В. и Леонова О. Н., Программирование и решение задач на ЭВМ «НАИРИ-2», Учебное пособие для студентов инженерно-экономических вузов, М., Московский ин-т управления им. С. Орджоникидзе, 1976, 143 стр.<br />
* Митюшкина, Т. А. Задачник-практикум по программированию для ЭЦВМ «Наири-К» [Текст] / Т. А. Митюшкина, В. С. Попов, Е. Н. Соколова ; Под ред. Ю. А. Почерникова ; М-во высш. и сред. спец. образования СССР. Моск. высш. техн. училище им. Н. Э. Баумана. — Москва : [б. и.], 1975. — 87 с. : ил.; 20 см.<br />
* Миловидов, Виктор Иванович. Программа расчета на ЭВМ «НАИРИ» прогибов изгибаемых железобетонных элементов [Текст] : Программа ЖБК-8 / Под ред. проф., д. т. н. А. А. Оатула. — Челябинск : ЧПИ, 1979. — 24 с. : схем.; 21 см.<br />
* Могила В. Г. Решение инженерных задач на ЭВМ «Наири-2» [Текст] : Учеб. пособие для студентов инж.-техн. и инж.-экон. специальностей по курсу «Вычислит. техника в инж.-экон. расчетах» / В. Г. Могила ; Уральск. политехн. ин-т им. С. М. Кирова, Курган. машиностроит. ин-т. — Свердловск : УПИ, 1977. — 108 с.; 20 см.<br />
* Моисеев, Виктор Сергеевич. Программирование для ЭВМ «Наири-С» и «Наири-К» [Текст] : Учеб. пособие / В. С. Моисеев, А. Н. Козин ; Казан. авиац. ин-т им. А. Н. Туполева, Кафедра прикл. математики. — Казань : КАИ, 1976. — 96 с.; 21 см.<br />
* Митюшкина Т. А., Попов B.C. и Соколова Е. Н., Задачник-практикум по программированию для ЭЦВМ «НАИРИ-К», М., МВТУ, 1975, 88 стр.<br />
* Мищенко, М. С. Программирование на языке АП для ЦВМ «Наири» [Текст] : Учеб.-метод. пособие / М-во высш. и сред. спец. образования РСФСР. Казан. хим.-технол. ин-т им. С. М. Кирова. — Казань : [б. и.], 1974. — 80 с. : схем.; 21 см.<br />
* Невструев, В. В. Программирование и решение задач на ЦВМ «Наири» [Текст] / В. В. Невструев. — [Москва] : [б. и.], 1970. — 147 с., 3 л. ил.; 25 см.<br />
* Овсепян Г. Е., Эйлезян X.К., Оганян Г. А. Некоторые особенности микропрограммного принципа, примененного в ЭЦВМ «Наири». «Вопросы радиоэлектроники. Серия 7. Электронная вычислительная техника», 1966, в. 7.<br />
* Протасов, Н. М. Программирование для ЭВМ «НАИРИ-2» [Текст] : Учеб. пособие / Н. М. Протасов, Б. А. Денискин ; Кузбас. политехн. ин-т, Кафедра вычислит. техники и промэлектроники. — Кемерово : КузПИ, 1975. — 102 с.; 20 см.<br />
* Погодин, А. П. Методическое пособие по программированию на ЭВМ «Наири» [Текст] / А. П. Погодин, Б. А. Сапожников, А. М. Шамарин ; Челяб. политен. ин-т им. Ленинского комсомола, Кафедра «Электронные вычислит. машины». — Челябинск : ЧПИ, 1976. — 102 с.; 20 см.<br />
* Прусов В. А. Программирование на ЭВМ «Наири» [Текст] : Метод. руководство / В. А. Прусов ; Киев. ин-т инженеров гражд. авиации. — Киев : КИИГА, 1977. — 76 с.; 21 см.<br />
* Пыринов, Борис Владимирович. Программирование для электронной вычислительной машины «Наири» [Текст] : Учеб. пособие / Б. В. Пыринов, В. В. Красильников ; Новосиб. ин-т инженеров ж.-д. транспорта. — Новосибирск : [б. и.], 1969. — 2 т.<br />
* Пыринов Б. В. Программирование для машины «Наири» [Текст] : Учеб. пособие / Б. В. Пыринов, В. В. Красильников; [МПС СССР]. Новосиб. ин-т инженеров ж.-д. транспорта. — 2-е изд., перераб. — Новосибирск : [б. и.], 1972-. — 20 см.<br />
* Решетников, М. Т. ЭВМ «Наири-2» [Текст] : Инструкция по программированию. — Томск : Изд-во Том. ун-та, 1972-. — 20 см. — (Б-ка по математическому обеспечению ЭВМ/ Том. гос. ун-т им. В. В. Куйбышева. Фак. прикл. математики. Сиб. физ.-техн. ин-т им. В. Д. Кузнецова. Отд. кибернетики; Вып. 1).<br />
* Романов, Л. Г. Математическое обеспечение и программирование на ЦВМ «НАИРИ-2» [Текст] : Учеб. пособие / Канд. техн. наук, доц. Л. Г. Романов ; М-во гражд. авиации. Моск. ин-т инженеров гражд. авиации. Кафедра автоматизир. систем управления. — Москва : [б. и.], 1976-. — 21 см. Ч. 1: Руководство для работы на ЦВМ «НАИРИ-2». Ч. 1. — 1976. — 148 с. : ил.<br />
* Руткс, И. Эксплуатация и программирование малого ЭВМ Наири-4. Язык ассемблеро и язык BASIC : Материалы по мат. обеспечению / [Сост. Руткс И., Зарс В.]. — Рига : РПИ, 1981. — 185 с.; 19 см.<br />
* Сафонов, Сергей Федорович. Программирование инженерных задач для ЭВМ «Наири» [Текст] / С. Ф. Сафонов, А. К. Синельник, Г. В. Сыромятникова ; МВССО РСФСР. Куйбышев. инж.-строит. ин-т им. А. И. Микояна. — Куйбышев : [б. и.], 1973. — 169 с., 4 л. черт. : черт.; 22 см.<br />
* Соболев, Владимир Николаевич. Программирование для ЭВМ НАИРИ-3-2 : Учеб. пособие / В. Н. Соболев. — М. : ВЗЭИС, 1980 (вып. дан. 1981). — 70 с. : граф.; 20 см.<br />
* ур, Виктор Филиппович. Использование ЭЦВМ «Наири-К» для решения инженерных задач [Текст] / Канд. техн. наук доц. В. Ф. Тур ; Воен.-морская акад. — Ленинград : [б. и.], 1974. — 145 с. : ил.; 21 см.<br />
* Феоктистов В. П. Решение инженерных задач на универсальной вычислительной машине «Наири». МИИТ, М., 1969.<br />
* Черняков, Аркадий Сергеевич. Автоматическое программирование для ЭВМ «Наири-С» [Текст] : (Метод. указания по курсу «Вычислит. техника в инж. и экон. расчетах») / Белорус. ин-т инженеров ж.-д. транспорта. Кафедра вычислит. техники. — Гомель : [б. и.], 1973. — 36 с.; 20 см.<br />
<br />
== Без «Наири» в названии ==<br />
<br />
* Грубов, Владимир Иванович. Справочник по ЭВМ и аналоговым устройствам [Текст] / В. И. Грубов, В. С. Кирдан ; Под ред. акад. АН УССР Г. Е. Пухова. — 2-е изд., испр. и доп. — Киев : Наук. думка, 1977. — 463 с. : ил.; 21 см.<br />
* Шелихов А. А. и Селиванов Ю. П., Вычислительные машины. Справочник. Изд. 2-е, перераб. и доп. Под ред. В. В. Пржиялковского. М., «Энергия», 1978. 224 стр.<br />— см. страницы 106—127.<br />
<br />
== Есть в электронном виде ==<br />
<br />
* «Наири» Краткое техническое описание. 1964. 35 стр. // pdf<br />
* Техническое описание. ЩК 1.700.003 ТО. Книга 2. Малая универсальная вычислительная машина «Наири-С». Инструкция. Книга 2. 146 стр. // djvu<br />
<br />
* Шелихов А. А. и Селиванов Ю. П., Вычислительные машины. Справочник. Изд. 2-е, перераб. и доп. Под ред. В. В. Пржиялковского. М., «Энергия», 1978. 224 стр. // djvu<br />— см. страницы 106—127.<br />
* Методические указания к программированию математических задач на ЭЦВМ Наири. М., ВЗИИТ, 1976. // djvu<br />
* Ицкович И. А., Программирование для ЭВМ «Наири». М., «Статистика», 1975. 191 стр. // djvu<br />
* Левшиц В. М., Литвин Б. Ф. Приближенные вычисления и программирование на ЭВМ «Наири-2». Л., «Машиностроение», 1977. 240 стр. // djvu<br />
* Система обработки информации на основе ЭВМ БЭСМ-3М и НАИРИ-2 [Текст] / Л. И. Демидов, В. А. Качалин, В. Л. Лебедев [и др.]. — Димитровград : [б. и.], 1974. — 9 с. : ил.; 20 см. — (Препринт/ Науч.-исслед. ин-т атомных реакторов им. В. И. Ленина. НИИАР; П-237). // pdf<br />
* Аксенова Е. К., Кольга В. В., Полумордвинова Н. И. Программное обеспечение магнитофона и графического дисплея для обработки информации на базе ЭВМ «Наири-2». — Дубна, 1977. — 24 с. — (Сообщения Объединенного института ядерных исследований; 11-10721). Тираж 370. // pdf<br />
* Аксенова Е. К., Кольга В. В., Трейбал З. Программное обеспечение графопостроителя ЭВМ «Наири-2». — Дубна, 1977. — 21 с. : схем.; 22 см. — (Сообщения Объединенного института ядерных исследований; 11-10818). Тираж 370. // pdf<br />
* Использование ЭВМ «Наири-2» в эксперименте с космическими лучами [Текст] / В. В.,Авакян, А. Т. Авунджян, К. Т. Антонян [и др.]. — Ереван : ЕФИ, 1977. — 26 с. : ил.; 20 см. — (Ереванский физический институт. Научное сообщение; ЕФИ. 11 (219). // pdf<br />
* Автоматизация экспериментальных исследований на критической сборке с использованием системы «Временной анализатор — ЭВМ НАИРИ-2» [Текст] / Л. И. Демидов, В. А. Качалин, А. М. Шиманский, А. А. Шкурпелов. — Димитровград : [б. и.], 1973. — 10 с. : ил.; 20 см. — (Ядерная электроника/ Науч.-исслед. ин-т атомных реакторов им. В. И. Ленина; НИИАР П-220). // pdf<br />
<br />
[[Категория:Литература]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%9C-20/%D0%9B%D0%B8%D1%82%D0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D0%B0&diff=3771М-20/Литература2024-03-26T07:58:42Z<p>Panther: категория</p>
<hr />
<div>{{Emuverse}}<br />
<br />
Список литературы, имеющей отношение к '''ЭВМ «М-20»'''.<br />
<br />
== Без автора в начале ==<br />
<br />
* Библиотека стандартных программ для ЭВМ '''М-20''' и М-220 (обращения к СП) [Текст] : Учеб. пособие / А. В. Соллогуб, Э. И. Логвинова, С. Ф. Момсенко, Г. И. Мирошниченко ; Под ред. Д. И. Козлова и А. В. Соллогуба ; М-во высш. и сред. спец. образования РСФСР. Куйбышевский авиац. ин-т им. С. П. Королева. — Куйбышев : [б. и.], 1969-. — 1 т.; 20 см.<br />
* Программа анализа сетевых графиков на ЭВМ '''М-20''' (Н-1) [Текст] / науч. ред. К. А. Багриновский. — Новосибирск : Наука. Сибирское отд-ние, 1966. — 199 с., 11 л. схем. : схем.; 20 см. — (Научные труды. Экономическая серия / Сибирское отд-ние АН СССР. Лаборатория по применению стат. и матем. методов в экономике. Новосиб. гос. ун-т. Лаборатория экон.-матем. исследований. М-во приборостроения, средств автоматизации и систем управления СССР. Новосиб. производ.-техн. объединение Главсистемпрома).<br />
* Программа расчета заработной платы на ЭВМ типа «'''М-20'''» [Текст] / АН СССР. Сиб. отд-ние. Вычислит. центр ; И. М. Бобко, М. И. Деева, В. В. Колмогоров и др. ; Отв. ред. чл.-кор. АН СССР Марчук Г. И. — Новосибирск : Наука. Сиб. отд-ние, 1967. — [1], 364 с. : схем.; 21 см.<br />
* Система на ЭВМ «Минск-2» и двух '''М-20''' для обработки экспериментальных данных [Текст] / А. Я. Астахов, Н. Н. Говорун, Н. Д. Дикусар и др. — [Дубна] : [б. и.], [1967]. — 29 с. : схем.; 22 см.<br />
* Справочный материал по транслятору ТА-1М [Текст] : (Материалы по мат. обеспечению ЭВМ с системой команд типа '''М-20'''). — [Б. м.] : [б. и.], 1974. — 403 с.; 25 см.<br />
* Типовая программа на ЭВМ '''М-20''' для статистического анализа экономической информации [Текст] / Науч.-исслед. ин-т экономики и организации производства. — Свердловск : [б. и.], 1968. — 46 с.; 21 см.<br />
* Фортран для ЭВМ типа '''М-20''' [Текст] / Ю. М. Баяковский, Ю. В. Куракин, С. П. Лузан, З. В. Лунькова ; Ин-т прикл. математики АН СССР. — Москва : [б. и.], 1973. — 68 с.; 20 см.<br />
* Центральный экономико-математический институт (Москва). Программы и алгоритмы [Текст] / Акад. наук СССР. Науч. совет по комплексной проблеме «Оптимальное планирование и управление нар. хоз-вом». Центр. экон.-матем. ин-т. — Москва : [ЦЭМИ], 1967-. — 22 см. [Вып. 3]: Две программы составления расписаний (ЭВМ '''М-20''') / Теплицкий Э. Д. — 1967. — 30, [2] с.<br />
<br />
== С автором, по алфавиту ==<br />
<br />
* Баяковский, Юрий Матвеевич. Автокод для ЭВМ типа '''М-20''' [Текст] : Описание языка / Ю. М. Баяковский, Т. Н. Михайлова ; Ин-т прикл. математики АН СССР. — Москва : [б. и.], 1974. — 80 с. : ил.; 20 см.<br />
* Зубова, Е. А. Программа обработки экспериментальных данных с помощью ЭВМ '''М-20''' [Текст] / Е. А. Зубова, В. И. Яковлев ; Ордена Ленина физ. ин-т им. П. Н. Лебедева. АН СССР. Лаборатория ускорителей. — Москва : [б. и.], 1968. — 9 с., 2 л. ил. : ил.; 22 см.<br />
* Инчин, А. С. Стандартные программы для ЭВМ типа '''М-20''' [Текст] : (Система ИС-2) : Инструкция / Ин-т прикл. математики АН СССР. Комис. по эксплуатации вычислит. машин. — Москва : [б. и.], 1971. — 99 с.; 21 см.<br />
* Наталуха, Р. Г. Сборник стандартных подпрограмм и блоков, используемых при решении задач на ЭВМ «Урал-1» и «'''М-20'''» [Текст] / Р. Г. Наталуха ; Под ред. И. П. Мартынюк ; Киевское высш. инж. радиотехн. училище войск противовоздуш. обороны страны. — Киев : [б. и.], 1962. — 42 л.; 29 см.<br />
* Павлов, Борис Михайлович. Математическое обеспечение ЭВМ типа '''М-20''' [Текст] / Б. М. Павлов, И. Н. Посохов. — Москва : Наука, 1975. — 191 с. : ил.; 20 см. — (Б-чка программиста).<br />
* Садовский, В. И. Расчет оперативного графика работ с учетом ограничений в расходе основных ресурсов [Текст] : Программа «Калибровка» для ЭВМ '''М-20''' и БЭСМ-3М / Госстрой УССР. Науч.-исслед. ин-т строит. производства. Отд. строит. кибернетики. — Киев : [б. и.], 1965. — 113 с., 5 л. табл.; 20 см.<br />
* Смирнова, Тамара Никифоровна. Проведение на ЭВМ типа '''М-20''' полиноминальных выкладок с помощью прорабов [Текст] / АН СССР. Матем. ин-т им. В. А. Стеклова. Ленингр. отд-ние. — Ленинград : Наука. Ленингр. отд-ние, 1967. — 143 с.; 20 см.<br />
* Ярмош, В. Д. Программа решения задач линейного программирования с двухсторонними ограничениями [Текст] : (Для ЭВМ '''М-20''') / В. Д. Ярмош, Н. С. Левчук ; Госстрой УССР. Науч.-исслед. ин-т строит. производства. Отд. строит. кибернетики. — Киев : [б. и.], 1966. — 54 с., 1 л. блок-схем.; 20 см.<br />
* Шура-Бура М. Р., Штаркман В. С. Вычислительная машина '''М-20'''. Инструкция по математической эксплуатации. — Москва, 1962.<br />
<br />
[[Категория:Литература]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%98%D1%81%D0%BA%D1%80%D0%B0-1256/%D0%9E%D1%81%D1%82%D1%80%D0%BE%D0%B2_%D1%81%D0%BE%D0%BA%D1%80%D0%BE%D0%B2%D0%B8%D1%89&diff=3770Искра-1256/Остров сокровищ2024-03-26T07:57:38Z<p>Panther: категория</p>
<hr />
<div>Текст из журнала "ВТ и ее применение", 3/1988. Не вычитан.<br />
<br />
На экране 16x64 расставлены мины, пять пиратов, клад и игрок. Игрок находится в левом верхнем углу, клад - в правом нижнем. Доступ за пределы экрана невозможен - мины.<br />
<br />
Движение игрока осуществляется цифровыми клавишами в правой части клавиатуры. <...><br />
<br />
Цель - дойти до клада. Совпадение игрока с миной или пиратом - поражение. При удаче увеличивается количество мин и скорость передвижения пиратов. И наоборот, если пираты вас поймали. Если вы попали на мину - уменьшается количество мин. И - вне зависимости от успеха - игра начинается заново. Таким образом, сложность игровой ситуации зависит от вашего уровня игры. Окончание игры устанавливается самим игроком, логического конца игры нет.<br />
<br />
<pre><br />
1 СЕЛЕКТ(0,0,0)<br />
2 СЕЛЕКТ(1,64,20)<br />
3 СЕЛЕКТ(2,12,20)<br />
4 СЕЛЕКТ(3,5,255)<br />
5 HEX(000909090909090909090909090909090909090909009090909090909090909090909090909090909090909090909090909090909090909090909090090909)=>CA19<br />
6 HEX(010A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A)=>CA18<br />
7 1=>A00<br />
8 ПЕЧАТЬ(HEX(030A0A0A), F09(20), "ОСТРОВ СОКРОВИЩ",)<br />
9 ПЕЧАТЬ(HEX(0A),)<br />
10 ПЕЧАТЬ(F09(17),"АВТОР ИГРЫ - ПЕТР ГАНГНУС",)<br />
11 ПЕЧАТЬ(HEX(0A0A0A),)<br />
12 ПЕЧАТЬ(F09(10)," НАБЕРИТЕ ЧТО-НИБУДЬ и НАЖМИТЕ 'ПУСК'")<br />
13 20=>A02<br />
14 0.3=A04<br />
15 ПЕЧАТЬ(F09(31),,)<br />
16 ПЕРЕХ П11<br />
17 HEX(00090A090A000A0800080C080C000C090000)=>STR(CA16,1,18)<br />
18 HEX(010202020201020001000000000100020101)=>STR(CA16,19,18)<br />
19 HEX(040302050901060708)=>STR(CA16,37,9)<br />
20 M00<br />
21 ПЕЧАТЬ(HEX(030E0A),)<br />
22 ПЕЧАТЬ("НА ПОЛЕ МИН :", A02(3.0),)<br />
23 A02>20ПЕРЕХ M03<br />
24 СЕЛЕКТ(0,2,0)<br />
25 M03<br />
26 ПЕЧАТЬ("СКОРОСТЬ ПИРАТОВ :",A04(1.2),)<br />
27 СЕЛЕКТ(0,0,0)<br />
28 ПЕРЕХ П12<br />
29 "ЖЖЖЖЖЖЖЖ"=>STR(CA13,57,8)<br />
30 "Ж КЛАД Ж"=>STR(CA14,57,8)<br />
31 "ЖЖЖЖЖЖЖЖ"=>STR(CA15,57,8)<br />
32 " "=>STR(CA00,1,10)<br />
33 ПЕЧАТЬ(HEX(030F),)<br />
34 0=>A05<br />
35 55=>A06<br />
36 15=>A07<br />
37 64=>A08<br />
38 5=>A12<br />
39 5=>A13<br />
40 15=>A14<br />
41 33=>A15<br />
42 15=>A16<br />
43 57=>A17<br />
44 0=>И08<br />
45 ПЕРЕХ П16<br />
46 5=>И09<br />
47 ПЕРЕХ П20<br />
48 7=>И09<br />
49 ПЕРЕХ П20<br />
50 12=>И09<br />
51 ПЕРЕХ П20<br />
52 14=>И09<br />
53 ПЕРЕХ П20<br />
54 16=>И09<br />
55 ПЕРЕХ П20<br />
56 ПЕЧАТЬ(HEX(01),"*",HEX(08),,)<br />
57 0=>A03<br />
58 ПЕРЕХ П13<br />
59 ПЕРЕХ М00<br />
60 П13<br />
61 СЕЛЕКТ(15,5,1)<br />
62 1=>И12<br />
63 1=>И14<br />
64 F07<br />
65 13=>И14<br />
66 F08<br />
67 9=>И00<br />
68 1=>И05<br />
69 1=>И06<br />
70 M00<br />
71 И00*2-1=>И01<br />
72 И01=0ПЕРЕХ М15<br />
73 И00*2+17=>И02<br />
74 И02+1=>И03<br />
75 ПЕЧАТЬ(HEX(2E08),STR(CA16,И01,2),"*",HEX(08),,)<br />
76 STR(CA16,И02,1)=>СИ02<br />
77 STR(CA16,И03,1)=>СИ03<br />
78 И02+И05-1=>И05<br />
79 И03+И06-1=>И06<br />
80 И05=0ПЕРЕХ М15<br />
81 И05>16ПЕРЕХ М15<br />
82 И06=0ПЕРЕХ М15<br />
83 И06>64ПЕРЕХ М15<br />
84 И05-1=>И07<br />
85 STR(CAИ07,И06,1)="M"ПЕРЕХ М15<br />
86 ПЕРЕХ П18<br />
87 И05-1=>И07<br />
88 ((A09-A05)ABS+(A10-A06)ABS)*((A09-A07)ABS+(A10-A08)ABS)*((A09-A12)ABS+(A10-A13)ABS)*((A09-A14)ABS+(A10-A15)ABS)*((A09-A16)ABS+(A10-A17)ABS)=0ПЕРЕХ М12<br />
89 STR(CAИ07,И06,1)="Ж"ПЕРЕХ М14<br />
90 4=>И14<br />
91 F08<br />
92 (И15-2)ABS>0ПЕРЕХ М01<br />
93 ПЕРЕХ П14<br />
94 М01<br />
95 ПЕРЕХ М00<br />
96 М12<br />
97 СЕЛЕКТ(15,1,1)<br />
98 СЕЛЕКТ(0,1,0)<br />
99 ПЕЧАТЬ(HEX(030E0A)," ПОЙМАЛИ!",)<br />
100 ПЕЧАТЬ(HEX(030E0A0A),"УБИЛИ!",)<br />
101 A04/(1.15-(A04+0.2)^2/10)=>A04<br />
102 ПЕЧАТЬ(HEX(030A0A0A)," ЗАРЕЗАЛИ!",)<br />
103 ПЕРЕХ М13<br />
104 М15<br />
105 СЕЛЕКТ(15,1,1)<br />
106 СЕЛЕКТ(0,2,0)<br />
107 ПЕЧАТЬ(HEX(030E0A0A)," ТРАХ-ТАРАРАХ-ТАХ-ТАХ!",)<br />
108 A02-10=>A02<br />
109 A02>0ПЕРЕХ М13<br />
110 1=>A02<br />
111 A04/(1.15-(A04+0.2)^2/10)=>A04<br />
112 ПЕРЕХ М13<br />
113 М14<br />
114 СЕЛЕКТ(15,1,1)<br />
115 СЕЛЕКТ(0,3,0)<br />
116 ПЕЧАТЬ(HEX(030E0A0A0A)," КЛАД ВЗЯТ !!!",HEX(0808080808080808),,)<br />
117 A04*(1.2-(A04+0.2)^2/10)=>A04<br />
118 A02+20=>A02<br />
119 A04<0.801ПЕРЕХ М13<br />
120 0.8=>A04<br />
121 A02+20=>A02<br />
122 М13<br />
123 СЕЛЕКТ(0,0,0)<br />
124 ПЕЧАТЬ(HEX(030F),,)<br />
125 П14<br />
126 И13=0ПЕРЕХ М00<br />
127 И13>9ПЕРЕХ М00<br />
128 И13+36=>И13<br />
129 STR(CA16,И13,1)=>СИ00<br />
130 М00<br />
131 13=>И14<br />
132 F07<br />
133 П12<br />
134 0=>И00<br />
135 ЦИКЛ(И00,1,15)<br />
136 " "=САИ00<br />
137 ЦИКЛ*<br />
138 1=>A03<br />
139 ЦИКЛ(А03,1,А02)<br />
140 ПЕРЕХ П10<br />
141 A01+1=>A01<br />
142 (A01-1)/64=>И01<br />
143 A01-И01*64=>И02<br />
144 "M"=>STR(CAИ01,И02,1)<br />
145 ЦИКЛ*<br />
146 П16<br />
147 0=>И00<br />
148 ЦИКЛ(И00,1,15)<br />
149 ПЕЧАТЬ(HEX(0A0D),,)<br />
150 ПЕЧАТЬ(CAИ00,,)<br />
151 ЦИКЛ*<br />
152 ПЕЧАТЬ(HEX(01),,)<br />
153 П11<br />
154 НС=>CA00<br />
155 1=>И00<br />
156 0=>A00<br />
157 ЦИКЛ(И00,1,64)<br />
158 STR(CA00,И00,1)=>СИ01<br />
159 И01+А00=>А00<br />
160 ЦИКЛ*<br />
161 A00/1024=>А00<br />
162 ((A00-A00INT)*1024+0.5)INT=>A00<br />
163 A00*4+1=>A00<br />
164 П10<br />
165 A00*125/4096=>A00<br />
166 ((A00-A00INT)*4096+0.5)INT=>A00<br />
167 (A00-1)/4=>A01<br />
168 П9<br />
169 1=>И11<br />
170 A03+A04=>A03<br />
171 A03>1ПЕРЕХ М01<br />
172 ЦИКЛ(И11,1,48)<br />
173 ПЕЧАТЬ(,)<br />
174 ЦИКЛ*<br />
175 ПЕРЕХ М00<br />
176 М01<br />
177 A03-A03INT=>A03<br />
178 5=>И09<br />
179 ПЕРЕХ П17<br />
180 7=>И09<br />
181 ПЕРЕХ П17<br />
182 12=>И09<br />
183 ПЕРЕХ П17<br />
184 14=>И09<br />
185 ПЕРЕХ П17<br />
186 16=>И09<br />
187 ПЕРЕХ П17<br />
188 5=>И09<br />
189 ПЕРЕХ П19<br />
190 7=>И09<br />
191 ПЕРЕХ П19<br />
192 12=>И09<br />
193 ПЕРЕХ П19<br />
194 14=>И09<br />
195 ПЕРЕХ П19<br />
196 16=>И09<br />
197 ПЕРЕХ П19<br />
198 ПЕЧАТЬ(STR(CA18,1,И05),STR(CA19,1,И06),,)<br />
199 М00<br />
200 П17<br />
201 АИ09+1=>А11<br />
202 АИ09=>И07<br />
203 И09+1=>И10<br />
204 ПЕЧАТЬ(STR(CA18,1,A11),STR(CA19,1,АИ10),STR(САИ07,АИ10,1),,)<br />
205 П19<br />
206 И09<16ПЕРЕХ М00<br />
207 И06<44ПЕРЕХ М01<br />
208 М00<br />
209 И09+1=>И10<br />
210 ((A09-АИ09)/((А09-АИ09)ABS-0.001))INT+АИ09=>АИ09<br />
211 ((A10-АИ10)/((А10-АИ10)ABS-0.001))INT+АИ10=>АИ10<br />
212 М01<br />
213 ПЕРЕХ П20<br />
214 П20<br />
215 И09+1=>И10<br />
216 АИ09=>И07<br />
217 И07+1=>А11<br />
218 ПЕЧАТЬ(STR(CA18,1,A11),STR(CA19,1,АИ10),HEX(19),,)<br />
219 П18<br />
220 И05-1=>А09<br />
221 И06=>А10<br />
222 ПЕРЕХ П9<br />
</pre><br />
<br />
<br />
[[Категория:Искра-1256]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%91%D0%B5%D0%B9%D1%81%D0%B8%D0%BA_%D0%92%D0%B8%D0%BB%D1%8C%D0%BD%D1%8E%D1%81_%D1%82%D0%B5%D0%B7%D0%B8%D1%81%D1%8B_%D0%B4%D0%BE%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0_1986&diff=3769Бейсик Вильнюс тезисы доклада 19862024-03-26T07:56:29Z<p>Panther: категория</p>
<hr />
<div>{{ДИ|Источник=XXVII Конференция Литовского математического общества. Каунас, 26-27 июня 1986 г.: тезисы докладов. Том 2. с.155}}<br />
<br />
БЕЙСИК-СИСТЕМА ДЛЯ МИКРО-ЭВМ "ЭЛЕКТРОНИКА БК 0010"<br />
<br />
Р. АЛИШАУСКАС , Г. ЗЛАТКУС (ВГУ)<br />
<br />
Среди вычислительной техники, используемой для поддержки курса основ информатики, в средних школах страны используются как отдельные микро-ЭВМ "Электроника БК 0010" (БК) [1], так и учебные классы, созданные на их основе. Особенность машины состоит в том, что она ориентирована на подключение бытовых приборов в качестве внешних устройств. Из-за особенностей организации оперативной и постоянной памяти БК невозможно адаптировать существующее на машинах, программное обеспечение. Таким образом возникает проблема создания системного программного обеспечения, удовлетворяющего потребности как начинающих, так и квалифицированных пользователей.<br />
<br />
Частично решить проблему позволяет система программирования БЕЙСИК, разработана для начинающих, но получившая широкое распространение и среди профессионалов. За основу системы БЕЙСИК для БК была взята система MSX - Basic разработанная фирмой Microsoft для персональных ЭВМ на основе процессора Z80 [3]. Созданная Бейсик-система предназначена для размещения в постоянной памяти БК. В 1986 году начнется выпуск БК с Бейсик-системой.<br />
<br />
Отличительной чертой созданной Бейсик-системы является тот факт, что она перед выполнением программу транслирует в один из видов так называемого сшитого кода [2] что позволяет значительно увеличить скорость выполнения программ. Система поддерживает четыре режима работы: калькуляторный, программный, шаговый и режим трассировки. Последние два режима существенно облегчают отладку, что очень важно для новичков, том числе и для школьников.<br />
<br />
В системе возможно использование символьных и трех типов числовых данных (в формате плавающей запятой одинарной и двойной точности и в формате фиксированной запятой — целых чисел). Причем с последними можно работать как в десятичной, так и восьмеричной, двоичной или шестнадцатеричной системе счисления. Кроме операторов, входящих в ядро языка БЕЙСИК, в систему включены операторы графики, позволяющие поставить на экране точку, провести линию, начертить прямоугольник и окружность или закрасить область. Созданная система позволяет работать с регистрами внешних устройств и памятью машины, использовать подпрограммы, написанные на машинном языке, работать с данными на кассетной магнитной ленте.<br />
<br />
Литература<br />
<br />
1. Косенков С.М., Полосин А.Н., Счепицкий З.А., Дябин М.И., Половянюк А.И. Бытовая персональная микро-ЭВМ "Электроника БК 0010". — В кн.: Микропроцессорные средства и системы, М., 1985, No 1, с. 22-25.<br />
<br />
2. Брусенцов Н.П. Микрокомпьютеры . — М .: Наука, 1985 .<br />
<br />
3. MSX Technical Data Book. Hardware / Software Specifications. Microsoft Corporation, 1984.<br />
<br />
[[Категория:БК-0010/11]]</div>Pantherhttps://emuverse.ru/w/index.php?title=15%D0%98%D0%AD-00-013/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5&diff=376815ИЭ-00-013/Техническое описание2024-03-26T07:45:38Z<p>Panther: категория</p>
<hr />
<div>5.2. [...]<br />
<br />
Скорость работы МПУ выбрана из расчета того, что за время обращения к ЗУ, МПУ должно исполнить две команды. Только такое быстродействие позволяет правильно производить индикацию изображения. Таким образом, частота работы МПУ=3.08 МГц и время цикла (исполнение команды) 1/3.08 МГц = 324.6 нс.<br />
<br />
<...><br />
<br />
6. Устройство и работа составных частей дисплея.<br />
<br />
6.1. Устройство и работа плат блока логики дисплея.<br />
<br />
6.1.1. Плата микропрограммного устройства МПУ.<br />
<br />
6.1.1.1. Электрическая схема МПУ ЩЦМ3.662.752 ЭЗ (лист 2,3) см. ЩЦМ3.778.012 ОП Альбом. Функционально состоит из следующих основных частей:<br />
<br />
* синхрогенератора;<br />
* счетчика команд;<br />
* 32-х 12-ти разрядных регистров общего назначения;<br />
* 8-битового аккумулятора;<br />
* 8-битового АЛУ с дополнительным триггером переноса;<br />
* 8-битового буфера АЛУ с дополнительным триггером A=B;<br />
* 8-разрядного селектора для проверки условий на пропуск следующей команды;<br />
* 6 управляющих флагов;<br />
* 2-х 4-битовых регистров - фиксаторов кода и адреса команды;<br />
* микропрограммного ППЗУ емкости 32 слова х 16 разрядов;<br />
* дешифраторов команд ввода вывода;<br />
<br />
6.1.1.2. Стабилизированный кварцем генератор на вентилях D37 вырабатывает сигнал частоты 30,8 МГц, который триггером D48.2 делится на 2 и поступает в ГС для формирования видеосигнала и в ЗУ для формирования диаграммы цикла считывания и записи.<br />
<br />
Этот же сигнал частоты 30,8 МГц делится на 10 счетчиком, организованным на D47.1, D48.1, D47.2 и D39.2. Диаграмма состояний счетчика и полученных из них необходимых комбинаций сигналов на D49 приведена на рис. 9.<br />
<br />
Счетчик команд - 12-разрядный, организован на D53, D44, D32. Управление им производится двумя путями: наращиванием содержимого, сигналом +1 СК В и загрузкой адреса ветвления программы сигналом З СК Н.<br />
<br />
32 РОН организованы в 2 страницы по 16 регистров. Страница выбирается триггером D30, который управляется сигналами - установить 0 (1) страницу. Старшие четыре разряда РОН используются для хранения адреса возврата из одной страницы в другую в программном ППЗУ.<br />
<br />
Содержимое 8 младших разрядов РОН через передатчик D22, D23 может подключаться к каналу данных.<br />
<br />
Аккумулятор представляет собой 8-разрядный универсальный регистр. Режим функционирования его определяется сигналами S0 и S1 D28. Если S0=1 и S1=1, то в аккумулятор производится загрузка данных с канала. Если S0=1, S1=0, производится сдвиг содержимого влево, а S0=0, S1=1, сдвиг вправо.<br />
<br />
АЛУ производит логические и арифметические операции над двумя операндами - содержимым аккумулятора и данными канала. Результат переноса запоминается в триггере "Перенос" D2.1 и может быть использован для последующего анализа. Результат исполненной на АЛУ операции запоминается в буфере АЛУ D41, D50. Содержимое буфера АЛУ может выставляться на канал данных.<br />
<br />
Если в результате исполнения операции на АЛУ все его выходы будут установлены в единичное состояние, оно будет зафиксировано в триггере D2.2 - A=B.<br />
<br />
Селектор D48 сигналами PA0B + PA2B выбирает один из 8 сигналов на его входе (прямое или инверсное значение в зависимости от сигнала PA3B). В зависимости от состояний анализируемых сигналов может быть установлен триггер D8.2, который запрещает исполнение следующей за текущей команды.<br />
<br />
6 управляющих флагов D16, D24, D34 применяются в дисплее для установки различных режимов работы, управление флагами производится дешифратором D1.<br />
<br />
Считанный из программного ППЗУ 8 разрядный код фиксируется в двух регистрах: D42 - старшие 4 разряда, которые определяют одну из 16 команд; D43 - младшие 4 разряда, определяющие адрес регистра, номер флага и т.д.<br />
<br />
Выходы регистра кода команды поступают на микрокомандное ППЗУ D45 и D35, которе вырабатывает необходимые сигналы (табл. 6) для исполнения данной команды.<br />
<br />
6.1.1.3. В общих чертах МПУ работает следующим образом. По адресу в СК выбирается содержимое программного ППЗУ - разряды 00B--07B и фиксируются в РК - D42 и РА - D43. Далее к содержимому СК прибавляется единица, т.е. выставляется следующий адрес.<br />
<br />
Принятый код команды поступает на вход ППЗУ D35, D46, которое выполняет роль дешифратора управляющих сигналов. На младший разряд его подается синхронизирующий сигнал СИН2Н, два состояния которого и определяют 1 и 2 фазу исполнения команды. 16 сигналов с выходов D35 и D45 управляют вышеприведенными основными частями МПУ.<br />
<br />
Сигналы ЗБАЛУ, ЗРОН, САК, ЗСК, ВБ и УСФ, производящие запись в соответствующие регистры стробируются сигналом СИН1Н, СИН1аН с целью устранения помехи в полувыбранном состоянии ППЗУ D35, D45.<br />
<br />
Дополнительные необходимые сигналы для обработки некоторых команд, с целью уменьшения объема ППЗУ D35, D45 вырабатываются дешифратором D25.<br />
<br />
6.1.1.4. Система команд МПУ.<br />
<br />
МПУ оперирует 8 разрядными двоичными числами - байтами и выполняет всего 16 основных команд. Команды одно- и двухбайтовые. Форматы команд, хранящихся в программном ППЗУ имеют следующее содержание (рис. 10, 11)<br />
<br />
[рис. 10]<br />
[рис. 11]<br />
<br />
Код команды - 4 старшие разряда байта однозначно определяют тип команды.<br />
<br />
Адрес команды - определяет один из 16-ти РОН для адресных команд, для безадресных команд расширяет функции команды, указывает адрес внешнего устройства и т.д.<br />
<br />
Байты двухбайтовой команды расположены в ППЗУ непосредственно друг за другом, в порядке возрастания адресов ППЗУ. Первый байт есть собственно команда, второй байт выполняет функции константы или адреса ветвления.<br />
<br />
Для упрощения программирования по приведенной ниже системе команд МПУ, в соответствии и выше приведенным на рис. 10 форматом байта команды, приведено мнемоническое обозначение (сокращенные, часто встречающиеся наименования соответствующих команд МПУ на английском языке). После установки такого соответствия можно писать программы, не привязываясь к кодам системы команд, что значительно упрощает процесс программирования и позволяет осуществить машинную трансляцию.<br />
<br />
СПИСОК КОМАНД ПЗУ (таблица 7)<br />
<pre><br />
Мнемоническое Функция команды Код команды<br />
обозначение<br />
<br />
ADD XX Сложить содержимое РОН XX и аккумулятора 0000XXXX<br />
Результат поместить в аккумулятор (000--017)<br />
Перенос заносится в триггер "Перенос"<br />
<br />
JMP XX 2-х байтовая команда 0001XXXX<br />
Передача управления ячейке ПЗУ, YYYYYYYY<br />
находящейся на странице XX по адресу (020--037)<br />
ADDRESS плюс 1 (000--377)<br />
<br />
LDC XX 2-х байтовая команда 0010XXXX<br />
CONSTANT Загрузить РОН XX константой YYYYYYYY<br />
(040--057)<br />
(000--377)<br />
<br />
LCA 2-х байтовая команда 00110000<br />
Загрузить аккумулятор константой YYYYYYYY<br />
(060)<br />
(000--377)<br />
<br />
RAL Вращение содержимого аккумулятора влево 00110011<br />
(063)<br />
<br />
RAR Вращение содержимого аккумулятора вправо 00110101<br />
(065)<br />
<br />
DSR XX Содержимое РОН XX уменьшается на единицу и 0100XXXX<br />
результат помещается в тот же регистр (100--117)<br />
Если результат становится равным минус 1<br />
(377), следующая команда пропускается<br />
<br />
ISN Содержимое аккумулятора увеличивается на 01010000<br />
единицу. (120)<br />
Пропуск следующей команды, если результат<br />
равен минус 1 (377)<br />
<br />
INC Содержимое аккумулятора увеличивается на 01010001<br />
единицу. (121)<br />
<br />
DSN Содержимое аккумулятора уменьшается на 01010010<br />
единицу. (122)<br />
Пропуск следующей команды, если результат<br />
равен минус 1 (377)<br />
<br />
ISE Содержимое аккумулятора увеличивается на 01011000<br />
единицу. (130)<br />
Пропуск следующей команды, если результат<br />
не равен минус 1 (377)<br />
<br />
DSE Содержимое аккумулятора уменьшается на 01011010<br />
единицу. (132)<br />
Пропуск следующей команды, если результат<br />
не равен минус 1 (377)<br />
<br />
DEC Содержимое аккумулятора уменьшается на 01011011<br />
единицу. (133)<br />
<br />
COM Инверсия содержимого аккумулятора 01011101<br />
(135)<br />
<br />
CLR Очистка аккумулятора 01011111<br />
(137)<br />
<br />
LLA XX Загрузка аккумулятора содержимым указанного 0110XXXX<br />
регистра XX ввода (140--157)<br />
<br />
JMI XX Передача управления ячейке ПЗУ, находящейся 0111XXXX<br />
по адресу, соответствующем содержимому РОН XX (160--177)<br />
<br />
SFC X Если указанный флаг X сброшен, следующая 10000XXX<br />
команда пропускается (200--206)<br />
<br />
SKP Следующая команда пропускается 10000111<br />
(207)<br />
<br />
SFS X Если указанный флаг X установлен, следующая 10001XXX<br />
команда пропускается (210--216)<br />
<br />
NOP Нет операции 10001111<br />
(217)<br />
<br />
AND XX Логическое "И" содержимого РОН XX и акк. 1001XXXX<br />
Результат помещается в аккумулятор (220--237)<br />
<br />
XOR XX Логическое "Исключающее ИЛИ" содержимого РОН XX 1010XXXX<br />
и аккумулятора (240--257)<br />
Результат помещается в аккумулятор<br />
<br />
CS XX Содержимое аккумулятора сравнивается с 1011XXXX<br />
содержимым РОН XX (260--277)<br />
Пропуск следющей команды, если они равны<br />
<br />
CFL X Сброс управляющего флага X 11000XXX<br />
(300--307)<br />
<br />
SFL X Установка управляющего флага X 11001XXX<br />
(310--317)<br />
<br />
LDA XX Загрузка аккумулятора содержимым РОН XX 1101XXXX<br />
(320--337)<br />
<br />
STA XX Загрузка РОН XX содержимым аккумулятора 1110XXXX<br />
(340--357)<br />
<br />
OTA XX Загрузка регистра вывода XX содержимым 1111XXXX<br />
аккумулятора (360--377)<br />
</pre><br />
<br />
<...><br />
<br />
6.1.2.2. При однократном обращении к ЗУ сигналами ВЫВ 02 В и ВЫВ 03 Н, загружается в регистр адреса ЗУ абсолютный адрес ячейки памяти и сигналом ВЫВ 00H производится пуск ЗУ. Ниже приведен пример программ записи в ЗУ и считывания из ЗУ.<br />
[...]<br />
При любом обращении к ЗУ, в конце цикла обращения производится наращивание адреса ЗУ на 1. Следовательно, если производится обращение к массиву ячеек ЗУ, нет необходимости каждый раз загружать абсолютный адрес ячейки памяти.<br />
<br />
Для удобства составления программ обращения к ЗУ счетчик-регистр адреса ЗУ имеет еще управляющие сигналы ВЫВ 04H - нарастить содержимое адреса и ВЫВ 05H - вычесть 1 из содержимого адреса ЗУ.<br />
<br />
При однократном обращении к ЗУ сигнал ВЫВ 00H устанавливает триггер D3 и разрешает работать счетчикам D4 и D5, которые формируют диаграмму обращения к ЗУ рис. 12. Цикл обращения заканчивается сбросом триггера D3 сигналом переноса с D4/12. При многократном обращении к ЗУ сигнал разрешения индикации РИН постоянно удерживает схему формирования диаграммы обращения к ЗУ в рабочем состоянии. Запись в ЗУ может производится только при запрещении многократного обращения к ЗУ.<br />
<br />
Микросхема D23 служит усилителем выходного сигнала счетчика D5/7 и коммутатором сигналов ЗУ05 и ЗУ07 для обеспечения работы дисплея с семибитными кодами.<br />
<br />
Управление коммутацией цепей ЗУ05 и ЗУ07 осуществляется сигналом ФЛ7В, который подается от платы МПУ на плату ОЗУ через контакт АА10.<br />
<br />
Переход на формирование семибитных кодов осуществляется при установке "1" в 3 разряде второй группы цифр служебной строки. При этом на контакт АА10 платы ОЗУ подается уровень логической "1".<br />
<br />
6.1.3. Генератор символов.<br />
<br />
6.1.3.1. Электрическая схема ГС ЩЦМ3.662.868 ЭЗ (лист 2), см. ЩЦМ3.778.012 ОН Альбом, функционально состоит из следующих составных частей: генератора символов; генератора скорости обмена; схем синхронизации развертки.<br />
<br />
Данные из ЗУ ЗУ0--ЗУ7 поступают в ГС с буферного регистра ЗУ. Старшие три разряда ЗУ5--ЗУ7 выбирают необходимую ППЗУ D18--D20 [КР556РТ5, 512x8 бит], в которой запрограммированы в точечной матрице 7x8 (7 - по горизонтали, 8 - по вертикали), буквы латинского алфавита (большие и малые), буквы русского алфавита (большие и малые), цифры и служебные символы. Остальные 5 разрядов ЗУ выбирают соответствующий символ. 8 горизонтальных строк в изображении символа выбираются из ППЗУ адресами А00, А01 и А02. Они формируются двоичным счетчиком строк D7. Выбранная из ППЗУ информация о данной строке символа загружается сигналом ЗСРВ (этот сигнал формируется на плате ЗУ) в регистр сдвига D13, D14, откуда она выдвигается с частотой 15,4 МГц и через микросхему D11 поступает в видеоусилитель монитора. Служебные символы, если они были записаны в ЗУ (т.е. в режиме "Редактирование") отображаются большими латинскими буквами с мерцанием 5 Гц в режиме не "Редактирование" и не отображаются (даже если они и записаны в ЗУ) в режиме "Редактирование". Необходимые 8 скоростей обмена формируются следующим образом. Сигнал +1СКВ с частотой работы МПУ 3,08 МГц делится счетчиком D1 на 10 и далее с выходов двоичных счетчиков D2 и D3 селектором D12 можно последовательно выбрать необходимую скорость обмена: 9600x16, 4800x16, 2400x16, 1200x16, 600x16, 300x16, 150x16, 75x16.<br />
<br />
Управление селектором D12 производится регистром D16 управляющим сигналом ВЫВ 14Н по программе.<br />
<br />
Сигнал с частотой 77 кГц с выхода D2/9 делится счетчиком D4 на 5 и сигнал ССИВ с частотой 15400 Гц используется как строчный синхронизирующий импульс для монитора. Этот же сигнал поступает на двоичный счетчик D7, с коэффициентом деления 11. Выходы этого счетчика А00, А01 и А02 используются как адреса для ППЗУ символов, т.е. выбирают одну из 8 строк матрицы символа. Остальные 3 состояния счетчика - сигнал МСВ, соответствующий 3 строкам, является запретом индикации между знаковыми строками, или если под данной строкой находится маркер (по программе сбрасывается управляющий флаг 1), тогда производится мерцающая с частотой 5 Гц индикация маркера. Сигнал МСВ поступает на счетчик-делитель на 28, организованный на D4 и D6. Этот счетчик подсчитывает число знаковых строк, из которых 25 могут быть активными, т.е. высвечиваются на экране и 3 соответствуют обратному ходу кадровой развертки.<br />
<br />
Управление кадровой разверткой и числом индицируемых строк производится сигналами: КСИВ, поступающим в монитор, равным по длительности индикации двум знаковым строкам и ОКРН, поступающим в МПУ, равным по длительности индикации 3-м знаковым строкам. По окончании сигнала ОКРН в зависимости от состояния сигнала ФЛ3Н может высвечиваться 25 служебная строка. Микросхема D28 запрещает загрузку в сдвиговый регистр D13, D14, т.е. запрещает индикацию в случае:<br />
* служебных символов в режиме "Редактирование";<br />
* маркерной строки;<br />
* обратного хода кадровой развертки.<br />
<br />
<...><br />
<br />
[[Категория:Терминалы]]</div>Pantherhttps://emuverse.ru/w/index.php?title=PDP11_%D0%BF%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81_Z80&diff=3767PDP11 портирование с Z802024-03-26T07:44:48Z<p>Panther: категория</p>
<hr />
<div>{{Emuverse}}<br />
<br />
Маппинг регистров и команд при портировании с процессора Z80 на PDP-11.<br />
<br />
Маппинг регистров:<br />
<pre><br />
A R0<br />
BC R1<br />
DE R2<br />
HL R3<br />
IX R4<br />
IY R5<br />
</pre><br />
<br />
Типичные команды:<br />
<pre><br />
JR addr BR addr / JMP addr<br />
JR C, addr BLO addr<br />
JR NC, addr BHIS addr<br />
JR Z, addr BEQ addr<br />
JR NZ, addr BNE addr<br />
<br />
CP $xx CMP R0, #xx / CMPB R0, #xx<br />
<br />
SRL xx ASR xx<br />
<br />
PUSH rr MOV rr,-(SP)<br />
POP rr MOV (SP)+,rr<br />
</pre><br />
<br />
LDIR:<br />
<pre><br />
MOV #LDB05, R3 ; 97DF LD HL,$DB05 <br />
MOV #LEB00, R2 ; 97E2 LD DE,$EB00 <br />
MOV #4096., R1 ; 97E5 LD BC,$1000 <br />
1$: MOVB (R3)+, (R2)+ ; 97E8 LDIR<br />
SOB R1, 1$<br />
</pre><br />
EX DE,HL -- через регистр R5, который обычно не занят:<br />
<pre><br />
MOV R3, R5 ; A1A9 EX DE,HL <br />
MOV R2, R3<br />
MOV R5, R2<br />
</pre><br />
<br />
[[Категория:PDP-11 совместимые]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%A1_6313/%D0%9D%D0%B0%D1%87%D0%B0%D0%BB%D0%BE&diff=3766Электроника МС 6313/Начало2024-03-26T07:43:43Z<p>Panther: категория</p>
<hr />
<div>Трасса работы МС 6313 от включения на прошивке 010391/LX800/FX800:<br />
<pre><br />
0000 LXI B,0402<br />
0003 DB 08<br />
0004 DB 10<br />
0005 DB 20<br />
0006 MOV B,B<br />
0007 ADD B<br />
0008 DI <br />
0009 MVI A,82<br />
000b OUT C3 ; Настройка D33<br />
000d MVI A,FF<br />
000f OUT C0 ; Установка бит печатной головки<br />
0011 MVI A,93<br />
0013 OUT EB ; Настройка D5<br />
0015 MVI A,90<br />
0017 OUT C2 ; D33 канал C: ИЧП=1, ПГО=1, остальные 0<br />
0019 MVI A,0B<br />
001b OUT EB ; Настройка D5<br />
001d JMP 012F<br />
012f MVI A,96<br />
0131 OUT E3 ; Настройка D28<br />
0133 MVI A,09<br />
0135 OUT E3 ; Настройка D28<br />
0137 MVI A,74<br />
0139 OUT D3 ; Настройка D30 таймер<br />
013b MVI A,32<br />
013d OUT D3 ; Настройка D30 таймер<br />
013f MVI A,01<br />
0141 OUT D0 ; D30 счётчик 0<br />
0143 XRA A<br />
0144 OUT D0 ; D30 счётчик 0<br />
0146 MVI A,94<br />
0148 OUT D3 ; Настройка D30 таймер<br />
014a MVI A,18<br />
014c OUT D2 ; D30 счётчик 2<br />
014e MVI A,36<br />
0150 OUT CB ; Настройка D27 таймер<br />
0152 MVI A,76<br />
0154 OUT CB ; Настройка D27 таймер<br />
0156 MVI A,94<br />
0158 OUT CB ; Настройка D27 таймер<br />
015a MVI A,F6<br />
015c OUT D8 ; D18<br />
015e MVI A,DD<br />
0160 OUT D9 ; D18<br />
0162 MVI A,FF<br />
0164 OUT D9 ; D18<br />
0166 IN C1<br />
0168 ANI 40 ; ТЕСТН ?<br />
016a JNZ 0199 ; да => переходим<br />
016d MVI A,3A<br />
016f OUT CA ; D27 счётчик 2<br />
0171 MVI A,92<br />
0173 OUT E3 ; Настройка D28<br />
0175 MVI A,04<br />
0177 OUT E2 ; D28 канал C<br />
0179 MVI A,FE<br />
017b LXI H,000D<br />
017e LXI SP,0184<br />
0181 JMP 00B3<br />
00b3 MOV B,A<br />
00b4 MVI A,76<br />
00b6 OUT CB ; Настройка D27 таймер<br />
00b8 MOV A,B<br />
00b9 OUT F1 ; Настройка D34 посл.порт<br />
00bb MOV A,L<br />
00bc OUT C9 ; D27 счётчик 1<br />
00be MOV A,H<br />
00bf OUT C9 ; D27 счётчик 1<br />
00c1 RET <br />
0186 MVI A,23<br />
0188 OUT F1 ; Настройка D34 посл.порт<br />
018a MVI A,18<br />
018c OUT D1 ; D30 счётчик 1<br />
018e XRA A<br />
018f OUT D1 ; D30 счётчик 1<br />
0191 MVI A,FF<br />
0193 OUT D0 ; D30 счётчик 0<br />
0195 MVI A,00<br />
0197 OUT D0 ; D30 счётчик 0<br />
0199 LXI SP,019F<br />
019c JMP 1908<br />
1908 LXI H,18E0<br />
190b JMP 1940<br />
1940 MVI A,36<br />
1942 OUT CB ; Настройка D27 таймер<br />
1944 MOV B,M<br />
1945 INX H<br />
1946 MOV A,M<br />
1947 ORA B<br />
1948 MVI A,0C<br />
194a JZ 1955<br />
194d MOV A,B<br />
194e OUT C8 ; <br />
1950 MOV A,M<br />
1951 OUT C8 ; <br />
1953 MVI A,0D<br />
1955 OUT EB ; <br />
1957 INX H<br />
1958 MOV A,M<br />
1959 INX H<br />
195a ORA A<br />
195b JZ 196F<br />
195e MOV B,A<br />
195f LXI D,FEA0<br />
1962 INX D<br />
1963 MOV A,E<br />
1964 ORA D<br />
1965 JNZ 1962<br />
...<br />
1968 DCR B<br />
1969 JNZ 195F<br />
...<br />
196c JMP 1944<br />
1944 MOV B,M<br />
1945 INX H<br />
1946 MOV A,M<br />
1947 ORA B<br />
1948 MVI A,0C<br />
194a JZ 1955<br />
1955 OUT EB ; <br />
1957 INX H<br />
1958 MOV A,M<br />
1959 INX H<br />
195a ORA A<br />
195b JZ 196F<br />
196f IN C1 ; <br />
1971 ANI 40<br />
1973 RET <br />
01a1 MVI A,70<br />
01a3 OUT C2 ; <br />
01a5 MVI A,0A<br />
01a7 OUT EB ; <br />
01a9 IN C1 ; <br />
01ab ANI 40<br />
01ad JNZ 01C9<br />
01b0 IN EA ; D5 канал C<br />
01b2 ANI 08 ; SA3.4 on? Плотность графики; on=180, off=144 точек/дюйм<br />
01b4 JNZ 01C9<br />
01b7 MVI A,0D<br />
01b9 OUT EB ; Настройка D5<br />
01bb IN EA ; D5 канал C<br />
01bd ANI 07 ; SA3.1..3.3 Горизонтальная плотность печати<br />
01bf JNZ 01BB<br />
01c2 MVI A,0C<br />
01c4 OUT EB ; Настройка D5<br />
01c6 JMP 0417<br />
0417 IN C2 ; <br />
0419 ORI 0F<br />
041b OUT C2 ; <br />
041d MVI A,0C<br />
041f OUT D2 ; D30 счётчик 2<br />
0421 EI <br />
</pre><br />
<br />
[[Категория:Принтеры]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%8B&diff=3765Категория:Принтеры2024-03-26T07:43:20Z<p>Panther: Новая страница: «Категория:Периферийные устройства»</p>
<hr />
<div>[[Категория:Периферийные устройства]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_%D0%9C%D0%A1_6313&diff=3764Электроника МС 63132024-03-26T07:43:06Z<p>Panther: категория</p>
<hr />
<div>{{Emuverse}}<br />
'''«Электроника МС 6313»''' — [[матричный принтер]].<br />
<br />
* ЦП: [[КР580ВМ80А]], 2? МГц<br />
* ПЗУ: 48К — нижние адреса<br />
* ОЗУ: 16К — верхние адреса<br />
<br />
== Версии прошивки ПЗУ ==<br />
Известно несколько версий прошивок ПЗУ. Версия прошивки выводится при само-тестировании, есть в самой прошивке, почти в самом начале файла.<br />
* 081289/МС6307 — упоминается в Руководстве по эксплуатации<br />
* 080791/LX800/FX800 — выложил KALDYN [http://zx-pk.ru/showthread.php?p=345907#post345907], 32 КБ неполная<br />
* 010391/LX800/FX800 — выложил BYTEMAN [http://zx-pk.ru/showthread.php?p=359390#post359390], 48 КБ полная<br />
<br />
== Сигналы ==<br />
* ВК0Н..ВК7Н — выбор микросхемы для ввода/вывода, формируются на D4.<br />
Управление головкой и бумагой:<br />
* ПГ0Н..ПГ8Н (W) — 9 сигналов использования иголок печатающей головки при ударе.<br />
* ЛЕВК/ПРК (W) — управление шаговым двигателем головки, влево/вправо.<br />
* ВЕРХВ/НИЗВ (W) — управление шаговым двигателем бумаги, вверх/вниз.<br />
* УПН (R) — инверсия сигнала УП, поступающего с ХР3, идёт на вход B0 D33<br />
* ОБРБ (R) — «обрыв бумаги», датчик конца бумаги, поступает с ХР3, идёт на вход B1 D33.<br />
* ОСТН (R) — ??, поступает с ХР2, B2 D33<br />
* ПСН (R) — ??, поступает с ХР2, B3 D33<br />
* ПФН (R) — ??, поступает с ХР2, B4 D33<br />
* ЧПН (R) — ??, поступает с ХР2, B5 D33<br />
* ТЕСТН (R) — ?? тестовый режим.<br />
* ОШН (R) — ??<br />
* ИГОТН (W) — ??, поступает с ХР2, C5 D33<br />
* ИОШН (W) — ??, поступает с ХР2, C6 D33<br />
* ИЧП (W) — ??, поступает с ХР2, C7 D33<br />
Частоты, тайминг:<br />
* F2 — частота 2? МГц, получается из D3.<br />
* F4 — частота 4? МГц, получается из триггера D6.4.<br />
* ТАЙМ (W) — ??, получается на выходе C4 D5.<br />
* ТОКН — выход OUT0 таймера D27, задаёт частоту звукового сигнала на триггере D6.2.<br />
* СС2 — выход OUT1 таймера D27, идёт на входы CT/CR D34.<br />
* СТРПГН — конец строки, получается на выходе OUT0 D30, вызывает прерывание.<br />
* УДАРН — выход OUT1 таймера D30, вызывает прерывание.<br />
* ШАГ — получается инверсией OUT2 таймера D30.<br />
Параллельный интерфейс (ХР1):<br />
* ВП0..ВП7 (R) — данные с параллельного интерфейса.<br />
* ~ERROR (W) — выход «ошибка» на параллельный интерфейс, получается из сигнала СП4 на выходе C4 D28.<br />
* ~BUSY (W) — выход «занят» на палаллельный интерфейс, получается из выхода C1 на D28.<br />
* ~ACKNLG — получается из сигнала СС2.<br />
* STROBE (R) — вход с параллельного интерфейса, сигнал СП2, идёт на С2 D28.<br />
* ~INIT (R) — может быть отключен SA3.5, сигнал INIT.<br />
* ИПАР1 — получается на выходе C0 D28, вызывает прерывание.<br />
* ИПАР2 — выход триггера D19.1, на входе которого ~АВАР, вызывает прерывание.<br />
Последовательный интерфейс (D34, ХР4):<br />
* 104И — поступает с ХР4, идёт на вход RDX D34.<br />
* 107И — поступает с ХР4, идёт на вход DSR D34.<br />
* 106И — поступает с ХР4, идёт на вход CTS D34.<br />
* ИПОСЛ1 — выход TRDY D34, вызывает прерывание.<br />
* ИПОСЛ2 — выход RRD D34, вызывает прерывание.<br />
Прочее:<br />
* AUTOFEED (R) — может быть отключен SA3.7, сигнал АП0 идёт на A0 D28.<br />
* SELIN (R) — может быть отключен SA3.6, сигнал АП1 идёт на A1 D28.<br />
* ~АВАР (R) — ??, вход A2 D28, сохраняется в триггере D19.1, на выходе сигнал ИПАР2, вызывающий прерывание.<br />
* ОСТН — кнопка «ГОТ»??<br />
* ЧПН — кнопка «КАЧ»??<br />
* КЛАВ — логическое ИЛИ между ЧПН и ОСТН; КЛАВ1 — получается на триггере D19.2 из сигнала КЛАВ, вызывает прерывание.<br />
<br />
== Порты ==<br />
D33 — ВК0Н — [[КР580ВВ55А]] — порт ввода/вывода:<br />
* #C0: (W) — канал A — печатающая головка: ПГ1Н(2)..ПГ8Н(2)<br />
* #C1: (R) — канал B — УЛН/ОБРБ/ОСТН/ПСН/ПФН/ЧПН/ТЕСТН/ОШН<br />
* #C2: (W) — канал C — ЛЕВК/ПРК/ВЕРХВ/НИЗВ / ПГ0Н(2)/ИГОТН/ИОШН/ИЧП<br />
* #C3: (W) — настройка #82 (канал A вывод, канал B вывод, канал C вывод; группа A режим 0, группа B режим 1)<br />
<br />
D27 — ВК1Н — [[КР580ВИ53]] — таймер:<br />
* #C8 (R/W) — счётчик 0 (вх.частота F4, гейт УДАРН), выход ТОКН<br />
* #C9 (R/W) — счётчик 1 (вх.частота F2, гейт ~BUSY), выход СС2<br />
* #CA (R/W) — счётчик 2 (вх.частота F4, гейт ТАЙМ), выход используется как входная частота счётчиков 1 и 2 таймера D30<br />
* #CB (W) — настройка #36 #76 #94<br />
<br />
D30 — ВК2Н — КР580ВИ53 — таймер:<br />
* #D0 (R/W) — счётчик 0 (вх.частота F4, гейт УДАРН), выход СТРПГН(1,2) — счётчик длины строки<br />
* #D1 (R/W) — счётчик 1 (вх.частота сч.2 D27, гейт ТАЙМ), выход УДАРН<br />
* #D2 (R/W) — счётчик 2 (вх.частота сч.2 D27, гейт ТАЙМ), выход ~ШАГ — задаёт скорость перемещения каретки<br />
* #D3 (W) — настройка #74 #32 #94<br />
<br />
D18 — ВК3Н — [[КР580ВН59]] — контроллер прерываний:<br />
* #D8 (W)<br />
* #D9 (R/W)<br />
<br />
D28 — ВК4Н — КР580ВВ55А — порт ввода/вывода:<br />
* #E0: канал A — АП0/АП1/~АВАД, A3..A7=0<br />
* #E1: канал B — ВП0..ВП7<br />
* #E2: (W) — канал C — C0=ИПАР1, С1=BUSY?, C2=СП2, C4=СП4=ERROR?<br />
* #E3: (W) — настройка #96 (канал A вывод, канал B ввод, канал Cст ввод, Cмл вывод), #09 (C4=1)<br />
<br />
D5 — ВК5Н — КР580ВВ55А — порт ввода/вывода:<br />
* #E8: (R) — канал A — SA1 4/3/2/1/5/6/7/8<br />
* #E9: (R) — канал B — SA2 6/7/8/5/4/3/2/1<br />
* #EA: (R) — канал C — SA3 1/2/3/4, C4=ТАЙМ, C6=ЗВонок?<br />
* #EB: (W) — настройка #93, #0B<br />
<br />
D34 — ВК6Н — [[КР580ВВ51А]] — последовательный ввод/вывод:<br />
* #F0 (W)<br />
* #F1 (W) — настройка #FE #23<br />
<br />
== Порты детально ==<br />
<br />
<pre><br />
#C0 (W) D33 канал A #C1 (R) D33 канал B #C2 (W) D33 канал C<br />
┌──┬──┬──┬──┬──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐<br />
│ 7 6 5 4│ 3 2 1 0│ │ 7 6 5 4│ 3 2 1 0│ │ 7 6 5 4│ 3 2 1 0│<br />
└─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┘ └─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┘ └─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┘<br />
ПГ8 . . . . . . ПГ1 ОШН │ ЧПН │ ПСН │ОБРБ │ ИЧП │ │ ПГ0 │ │ ПРК ЛЕВК — головка<br />
ТЕСТН ПФН ОСТН УЛН ИОШН─┘ИГОТН НИЗВ ВЕРХВ — бумага<br />
<br />
#E0 (R) D28 канал A #E1 (R) D28 канал B #E2 (RW) D28 канал C<br />
┌──┬──┬──┬──┬──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐<br />
│ 7 6 5 4│ 3 2 1 0│ │ 7 6 5 4│ 3 2 1 0│ │ 7 6 5 4│ 3 2 1 0│<br />
└─┬┴─┬┴─┬┴─0┴─0┴─0┴─0┴─0┘ └─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┘ └─┬┴─┬┴─?┴─┬┴─?┴─┬┴─┬┴─┬┘<br />
АП0 АП1 └─~АВАД ВП7 . . . . . . ВП0 С7 С6 │ │ BUSY│<br />
AUTO SELIN ERROR STROBE ИПАР1<br />
FEED<br />
#E8 (R) D5 канал A #E9 (R) D5 канал B #EA (RW) D5 канал C<br />
┌──┬──┬──┬──┬──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐<br />
│ 7 6 5 4│ 3 2 1 0│ │ 7 6 5 4│ 3 2 1 0│ │ 7 6 5 4│ 3 2 1 0│<br />
└─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┘ └─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┘ └─┬┴─?┴─?┴─┬┴─┬┴─┬┴─┬┴─┬┘<br />
SA1.8 .7 .6 .5 .1 .2 .3 .4 SA2.1 .2 .3 .4 .5 .6 .7 .8 ЗВ │ .4 .3 .2 .1 SA3<br />
ТАЙМ<br />
</pre><br />
<br />
== Прерывания ==<br />
{| class=standard<br />
! № !! Названи !! Примечание<br />
|-<br />
| 1 || УДАРН || Выход со сч.1 таймера D30<br />
|-<br />
| 2 || СТРПГН(1,2) || Выход со сч.0 таймера D30 — конец строки?<br />
|-<br />
| 3 || ШАГН ||<br />
|-<br />
| 4 || ИПОСЛ2 || Выход с D34<br />
|-<br />
| 5 || ИПОСЛ1 || Выход с D34<br />
|-<br />
| 6 || ИПАР1 || Выход C0 D28<br />
|-<br />
| 7 || ИПАР2 ||<br />
|-<br />
| 8 || КЛАВ1 || Выход триггера D19.2, на входе которого сигнал КЛАВ<br />
|}<br />
<br />
[[Категория:Принтеры]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%9A588%D0%92%D0%981/%D0%9C%D0%9F%D0%A1%D0%B8%D0%A1-1987-01&diff=3763К588ВИ1/МПСиС-1987-012024-03-26T07:41:01Z<p>Panther: категория</p>
<hr />
<div>{{ДИ|Автор=Кушарев В.Н., Свиридович В.С., Чернуха Б.И., Бобков В.А., Ключников В.П., Нижникова H.В. |Источник=Микропроцессорные средства и системы. 1987, №1}}<br />
<gallery><br />
MPSS-1987-01-p12r.jpg<br />
MPSS-1987-01-p13.jpg<br />
MPSS-1987-01-p14.jpg<br />
</gallery><br />
<br />
УДК 621.3.049<br />
<br />
В. Н. Кушарев, В. С. Свиридович, Б. Н. Чернуха, В. А. Бобков, В. П. Ключников, Н. В. Нижникова<br />
<br />
'''ТАЙМЕР К588ВИ1'''<br />
<br />
Двухканальный таймер К588ВИ1 применяется в составе микропроцессорного комплекта совместно с селектором адреса (СА) К588ВТ1 и контроллером прерываний К588ВН1.<br />
<br />
: Рис 1. Структурная схема таймера К588ВИ1<br />
<br />
В состав таймера входят (рис 1): два 16-разрядных суммирующих счетчика СТ1 и СТ2, каждый из которых образует свой канал; блок управления (БУ), организующий по заданным условиям управление таймером; входной регистр (ВР), осуществляющий электрическое согласование таймера с информационным каналом МПИ D0…D15. входной промежуточный регистр (ВПР) счетчика СТ1, служащий для хранения кода коэффициента деления при работе таймера в режиме программируемого делителя частоты, независимый делитель частоты (ДЧ), выполненный на основе 7-разрядного суммирующего счетчика, выходы которого по<br />
<br />
сигналу «начальная установка» ({{overline|R}}) устанавливаются в «1», коэффициенты деления 2, 4, 16, 32, 64, 128; 10-разрядный регистр состояния (PC), определяющий режим и условия работы таймера, разряды которого по сигналу {{overline|R}} устанавливаются в «0» и имеют следующее назначение:<br />
<br />
РС0 используется в прикладных программах;<br />
<br />
PC1 определяет режим работы СТ1. При РС1=1 канал СТ1 работает в режиме программируемого интервального таймера, а при РС1=0 — в режиме программируемого делителя частоты;<br />
<br />
РС2, РС3 определяют условия запуска СТ1 в режиме программируемого интервального таймера. При РС2=0 РС3=1 запуск СТ1 осуществляется под действием сигнала, поступающего на управляющий вход {{overline|СО1}}. При РС2=РС3=0 запуск СТ1 происходит под действием сигнала, поступающего на тактирующий вход С1. При РС2=1. РСЗ=0 происходит блокировка СТ1;<br />
<br />
РС4, РС5 определяют условия запуска СТ2. При РС4=0, РС5=1 запуск СТ2 осуществляется под действием сигнала, поступающего на управляющий вход {{overline|СО2}}. При РС4=РС5=0 запуск СТ2 происходит под действием сигнала, поступающего на тактирующий вход С2. Состояние РС4=1, РС5=0 соответствует блокировке СТ2;<br />
<br />
: Рис. 2. Условное графическое обозначение микросхемы К588ВИ1: а — по порядку расположения выводов, б — по функциональному назначению выводов<br />
<br />
{| class=standard<br />
|+ Назначение выводов таймера К588ВИ1<br />
! Вывод !! Назначение, наименование<br />
|-<br />
| 1 || Тактирующий вход делителя частоты FIN<br />
|-<br />
| 2,3 || Требование прерывания СТ1 и СТ2 {{overline|IRQ1}}, {{overline|IRQ2}}<br />
|-<br />
| 4 || Сброс сигнала {{overline|ISR1}}<br />
|-<br />
| 5 || Сброс сигнала {{overline|ISR2}}<br />
|-<br />
| 6…13, 27, 28 || Входы (выходы) информационного канала D0…D9<br />
|-<br />
| 29…34 || Входы информационного капала D10…D15<br />
|-<br />
| 14 || Объединение счетчиков (инверсный выход 16 триггера СТ1) {{overline|СО3}}<br />
|-<br />
| 15, 16 || Управляющие входы СИ и CТ2 {{overline|CO1}} и {{overline|СО2}}<br />
|-<br />
| 17 || Тактирующий вход СТ1 {{overline|С1}}<br />
|-<br />
| 18 || Тактирующий вход СТ2 {{overline|С2}}<br />
|-<br />
| 19 || Запись {{overline|RD}}<br />
|-<br />
| 20 || Чтение {{overline|WR}}<br />
|-<br />
| 21 || Общий OV<br />
|-<br />
| 22 || Ответ AN<br />
|-<br />
| 23 || Выбор PC {{overline|CS3}}<br />
|-<br />
| 24 || Выбор СТ1 {{overline|CS2}}<br />
|-<br />
| 25 || Выбор СТ2 {{overline|CS1}}<br />
|-<br />
| 26 || Начальная установка {{overline|R}}<br />
|-<br />
| 35…41 || Выходы делителя FD1…FD7<br />
|-<br />
| 42 || Питание Ucc<br />
|}<br />
<br />
PC6, PC7 — разряды маски прерывания СТ1, СТ2. При РС6=0 блокируется выдача сигнала {{overline|IRQ1}} СТ1, а при РС7=0 — выдача сигнала {{overline|IRQ2}} СТ2;<br />
<br />
РС8, РС9 — разряды фиксации прерывания СТ1 и СТ2. При переходе разрядов СТ1, СТ2 из «1» в «О» возникает условие появления сигналов {{overline|IRQ1}} и {{overline|IRQ2}}, по которому в разряды РС8, РС9 записываются «1», независимо от содержания разрядов РС6, РС7.<br />
Условное графическое обозначение микросхемы К588ВИ1 приведено на рис. 2, Назначение выводов — в таблице.<br />
<br />
Наличие выхода {{overline|СО3}} позволяет объединять СТ1 и СТ2, для чего выход {{overline|СО3}} соединяется со входом {{overline|С2}}, Оба канала таймера независимы и могут работать в режиме программируемого интервального таймера, а канал СТ1 — в режиме программируемого делителя частоты с коэффициентом деления 1…2^12. При включении напряжения питания проводится начальная установка таймера подачей на вход {{overline|R}} импульса длительностью не менее 500 нс, по которому разряды PC и выходы ДЧ устанавливаются в исходное состояние, а выходы {{overline|IRQ1}}, {{overline|IRQ2}} — в «1». Основные технические характеристики таймера приведены ниже.<br />
<br />
<small><br />
'''Основные характеристики таймера К588ВИ1.'''<br /><br />
Т=-60…+85°С<br /><br />
Напряжение питания Ucc, В . . . . 5±10 %<br /><br />
Ток потребления в статическом режиме, мА, не более . . 0,2<br /><br />
Ток утечки но входам, мкА, не более . . 20<br /><br />
Выходным ток низкого уровня при выходном напряжении 0,4 В, мА, не менее . . . 0,8<br /><br />
Выходной ток высокого уровня при выходном напряжении источника питания 0,4 В, мА, не менее . . . 0,4<br /><br />
Время задержки сигнала AN относительно сигналов {{overline|WR}}, {{overline|RD}}, нс, не более . . . 250<br />
</small><br />
<br />
Конструктивно микросхема К588ВИ1 выполнена в плоском 42-выводном металлокерамическом корпусе 429.42-3.<br />
<br />
: Рис. 3. Режим записи данных<br />
<br />
: Рис. 4. Режим чтения данных<br />
<br />
Временная диаграмма записи данных в PC, СТ1, СТ2 приведена на рис. 3. Селектор адреса, дешифровав адрес, поступающий из ЦП, устанавливает сигнал CSi в «0», где i=1,2,3, по которому происходит выбор соответствующего регистра (PC, СТ1, СТ2). Центральный процессор устанавливает данные на шинах D0…D15, которые записываются в таймер по приходу с селектора сигнала {{overline|RD}}=0, после чего таймер информирует селектор адреса об окончании записи данных установкой сигнала {{overline|AN}} в «0». Селектор, получив сигнал {{overline|AN}}=0, информирует ЦП об окончании записи данных и устанавливает сигнал в «1», по которому таймер устанавливает сигнал {{overline|AN}} в «1». На этом запись данных в таймер заканчивается.<br />
<br />
Чтение информации, записанной в таймер, возможно лишь из PC, причем информация из разрядов РС0…РС7 считывается инверсно (рис. 4).<br />
<br />
: Рис. 5. Режим программируемого интервального таймера<br />
<br />
: Рис. 6. Режим программируемого делителя частоты<br />
<br />
: Рис. 7. Пример включения таймера<br />
<br />
Временная диаграмма работы каналов таймера в режиме программируемого интервального таймера приведена на рис 5. После записи кодов временных интервалов в СТ1, СТ2, установки условий работы и режима в PC в соответствии с рис. 3 с внешнего устройства поступают сигналы {{overline|СО1}}=0, {{overline|СО2}}=0. Они разрешают счет импульсов СТ1 и СТ2, поступающих на тактирующие входы {{overline|Cl}}, {{overline|С2}}. При установлении триггера СТ1 в «1» на выходе {{overline|СО3}} формируется «0», а при переходе всех триггеров СТ1, СТ2 из «1» в «0» таймер формирует сигналы {{overline|СО3}}=1, {{overline|IRQ1}}=0, {{overline|IRQ2}}=0 при РС6, РС7=1. Установка сигналов {{overline|IRQ1}}, {{overline|IRQ2}} в «1» происходит под действием сигналов {{overline|ISR1}}=0, {{overline|ISR2}}=0, поступающих с внешнего устройства, либо при записи в РС8…РС9.<br />
<br />
Временная диаграмма работы канала СТ1 таймера в режиме программируемого делителя частоты приведена на рис. 6. В счетчик СТ1 записывается код деления частоты исходя из того, что Т=Т1 (2^12—К), где Т — период следования импульсов на выходе СТ0, ТПР1; T1 — период следования импульсов, поступающих на тактирующий вход С1; К — десятичное число, записанное в двоичном коде с D4…D15 в ВПР.<br />
<br />
В PC записываются режимы и условия работы, после чего канал СТ1 таймера начинает работать в данном режиме. На выходах {{overline|IRQ1}}, {{overline|СО3}} микросхемы формируются импульсы с заданным периодом следования.<br />
<br />
Возможная схема включения таймера приведена на рис. 7. Селектор адреса осуществляет согласование таймера с системной магистралью межмодульного параллельного интерфейса и контроллером прерываний, организующим запрос на прерывания центрального процессора по сигналам «требование прерывания» ({{overline|IRQl}}, {{overline|IRQ2}}).<br />
<br />
''Статья поступила 11 сентября 1986 г.''<br />
<br />
«Микропроцессорные средства и системы», № 1, 1987<br />
<br />
[[Категория:Микропроцессорные комплекты]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%9A588/%D0%93%D1%80%D0%B8%D1%88%D0%B8%D0%BD&diff=3762К588/Гришин2024-03-26T07:40:48Z<p>Panther: категория</p>
<hr />
<div>{{ДИ|Автор=Г.Г.Гришин, А.А.Мошков, О.В.Ольшанский, Ю.А.Овечкин |Источник=Микропроцессоры: Справочное пособие для разработчиков судовой РЭА. Л.: Судостроение, 1987.}}<br />
'''Глава 6'''<br />
<br />
'''МИКРОПРОЦЕССОРНЫЙ КОМПЛЕКТ СЕРИИ К588 (КР588)'''<br />
<br />
== 6.1. ОБЩИЕ СВЕДЕНИЯ ==<br />
<br />
Микропроцессорный комплект серии К588 создан на базе КМОП-технологии и предназначен для построения аппаратуры средней производительности. Отличительными особенностями микросхем комплекта являются малое потребление мощности от источника питания, асинхронный принцип обмена информацией, а также широкий набор периферийных БИС комплекта. В состав БИС комплекта входят, в частности, БИС управляющей памяти, кодировки которых полностью реализуют систему команд микроЭВМ «Электроника-60» и операции расширенной арифметики. Однако комплект серии К588 может реализовывать устройства не только с этой системой команд. Пользователь строит собственную микропрограммную память, реализующую практически любую систему команд [9, 34, 45, 46].<br />
<br />
Микросхемы комплекта обеспечивают выходные сигналы, соответствующие уровням сигналов ТТЛ-микросхем. Однако ввиду того, что входные напряжения сигналов «1» микросхем комплекта превышают нижнюю границу ТТЛ-сигналов, стыковку по входам можно обеспечить ТТЛ-микросхемами с открытым коллектором и нагрузочными резисторами.<br />
<br />
В состав комплекта входят БИС системного контроллера для сопряжения устройства на базе микросхем комплекта с каналом типа Q-шина, БИС аппаратного умножителя, магистрального приемопередатчика, буферного регистра, контроллера ЗУ и селектора адреса. Состав комплекта приведен в табл. 6.1.<br />
<br />
{| class=standard style="text-align: center"<br />
|+ Таблица 6.1. Состав серии К588 (КР588)<br />
! Тип микросхемы !! Назначение !! Краткая характеристика !! Тип корпуса<br />
|-<br />
| К588ВУ2 (КР588ВУ2) || Управляющая память || Время цикла ≤ 0,8 мкс;<br />Pccs ≤ 0,5 мВт;<br />Pcc ≤ 20 мВт;<br />12-разрядная микрокоманда; число БИС — 7<br />
|rowspan=3| 429.42-3 (2206.42-2)<br />
|-<br />
| К588ВС2 (КР588ВС2) || Арифметическое устройство || Время цикла (среднее) ≤ 1,82 мкс;<br />Pccs ≤ 1 мВт;<br />Pcc ≤ 30 мВт;<br />16-разрядное<br />
|-<br />
| К588ВГ1 (КР588ВГ1) || Системный контроллер || Время выдачи адреса ≤ 150 нс;<br />Pccs ≤ 0,5 мВт;<br />Pcc ≤ 15,0 мВт<br />
|-<br />
| К588ВР2 || Умножитель || Время умножения ≤ 2,0 мкс;<br />Pccs ≤ 5,0 мВт;<br />Pcc ≤ 35,0 мВт<br />16-разрядный || 4118.24-2<br />
|-<br />
| К588ВА1 (КР588ВА1) || Магистральный приемо-передатчик || Время передачи ≤ 150 нс;<br />Pccs ≤ 0,50 мВт;<br />Pcc ≤ 25,0 мВт<br />8-разрядный ||rowspan=2| 4119.28-4 (2121.28-4)<br />
|-<br />
| К588ИР1 (КР588ИР1) || Многофункциональный буферный регистр || Время записи ≤ 100 нс;<br />Время считывания ≤ 150 нс;<br />Pccs ≤ 0,3 мВт;<br />Pcc ≤ 10,0 мВт<br />8-разрядный<br />
|-<br />
| К588ВГ2 (КР588ВГ2) || Контроллер запоминающего устройства || Время выборки ≤ 200 нс;<br />Pccs ≤ 0,3 мВт;<br />Pcc ≤ 10,0 мВт || 4116.18-2 (2107.18-1)<br />
|-<br />
| К588ВТ1 || Селектор адреса || Время выборки ≤ 300 нс;<br />Pccs ≤ 2,5 мВт;<br />Pcc ≤ 30 мВт || 429.42-3<br />
|}<br />
<br />
Микросхемы комплекта обладают высокой помехоустойчивостью.<br />
<br />
Комплект серии К588 (КР588) служит для построения систем управления периферийными устройствами. В основном его используют в устройствах, действующих в условиях сильных электромагнитных полей, в аппаратуре, работающей в режиме длительного автономного плавания и др.<br />
<br />
Микросхемы выпускают в корпусах с горизонтальным (К588) и вертикальным (КР588) расположением выводов. Электрические параметры, а также функциональные возможности микросхем с индексами К и КР идентичны.<br />
<br />
=== 6.2. МИКРОСХЕМА К588ВУ2 (КР588ВУ2) ===<br />
[[Файл:Grishin-6-1.png|210px|thumb|Рис. 6.1. Условное графическое обозначение микросхемы К588ВУ2]]<br />
[[Файл:Grishin-6-2.png|358px|thumb|Рис. 6.2. Структурная схема микросхемы К588ВУ2]]<br />
Представляет управляющую память микрокоманд (УП). Основой УП являются программируемые логические матрицы ПЛМ. Программирование УП выполняют на за воде-изготовителе масочным способом. В настоящее время выпускают семь типов УП — К588ВУ2-0001 … К588ВУ2-0007. Кодировки микросхем УП полностью реализуют систему команд микроЭВМ «Электроника-60»<br />
и операции расширенной арифметики. К последним относятся команды умножения, деления, сдвига. Кодировка К588ВУ2-0005 содержит микропрограммы работы микросхемы системного контроллера.<br />
<br />
На рис. 6.1 и 6.2 изображены соответственно условное графическое обозначение и структурная схема БИС УП. В табл. 6.2 дано назначение выводов этой микросхемы.<br />
<br />
{| class=standard<br />
|+ Таблица 6.2. Назначение выводов микросхемы К588ВУ2 (КР588ВУ2)<br />
! Номер<br />вывода !! Назначение !! Разряд !! Обозначение !! Тип<br />
|-<br />
| 1 ||rowspan=4| Магистраль состояния || 0 || МС0 ||rowspan=20| Вход<br />
|-<br />
| 2 || 1 || МС1<br />
|-<br />
| 3 || 2 || МС2<br />
|-<br />
| 4 || 3 || МС3<br />
|-<br />
| 5 ||rowspan=16| Шина команд || 0 || Д0<br />
|-<br />
| 6 || 1 || Д1<br />
|-<br />
| 7 || 2 || Д2<br />
|-<br />
| 8 || 3 || Д3<br />
|-<br />
| 9 || 4 || Д4<br />
|-<br />
| 10 || 5 || Д5<br />
|-<br />
| 11 || 6 || Д6<br />
|-<br />
| 12 || 7 || Д7<br />
|-<br />
| 13 || 8 || Д8<br />
|-<br />
| 14 || 9 || Д9<br />
|-<br />
| 15 || 10 || Д10<br />
|-<br />
| 16 || 11 || Д11<br />
|-<br />
| 17 || 12 || Д12<br />
|-<br />
| 18 || 13 || Д13<br />
|-<br />
| 19 || 14 || Д14<br />
|-<br />
| 20 || 15 || Д15<br />
|-<br />
| 21 || Общий || — || GND || —<br />
|-<br />
| 22 ||rowspan=13| Магистраль микрокоманд || 0 || МК0 ||rowspan=13| Вход<br />
|-<br />
| 23 || 1 || МК1<br />
|-<br />
| 24 || 2 || МК2<br />
|-<br />
| 25 || 3 || МК3<br />
|-<br />
| 26 || 4 || МК4<br />
|-<br />
| 27 || 5 || МК5<br />
|-<br />
| 28 || 6 || МК6<br />
|-<br />
| 29 || 7 || МК7<br />
|-<br />
| 30 || 8 || МК8<br />
|-<br />
| 31 || 9 || МК9<br />
|-<br />
| 32 || 10 || МК10<br />
|-<br />
| 33 || 11 || МК11<br />
|-<br />
| 34 || 12 || МК12<br />
|-<br />
| 35 || Не используется || — || — || —<br />
|-<br />
| 36 || Завершение выполнения микрокоманды || — || Ф1 ||rowspan=2| Вход<br />
|-<br />
| 37 || Установка || 1 || R1<br />
|-<br />
| 38 || Конец команды || — || КК || Вход-выход<br />
|-<br />
| 39 || Установка || 0 || R0 || Вход<br />
|-<br />
| 40 || Команда принята || — || П || Выход<br />
|-<br />
| 41 || Команда выдана || — || В || Вход<br />
|-<br />
| 42 || Напряжение питания || — || Ucc || —<br />
|}<br />
<br />
В состав структурной схемы БИС УП входят следующие функциональные узлы:<br />
<br />
регистр команд РК; принимает команду по шине команд Д;<br />
<br />
программируемые логические матрицы ПЛМ1 и ПЛМ2; в них запрограммированы не только информация о выбираемой<br />
микрокоманде и адрес следующей микрокоманды, но и разряды, управляющие внутренними узлами БИС УП;<br />
<br />
регистры состояния PC и следующего адреса РСА; принимают соответственно признаки результата выполнения операции и адрес следующей микрокоманды. Информация состояния поступает, как правило, из арифметического устройства и включает 4-разрядное слово-состояние, состоящее из признаков нулевого результата, переполнения, переноса из старшего знакового разряда (Z, V, С, N);<br />
<br />
регистры управления РУ и микрокоманд РМ;<br />
<br />
блок синхронизации БСЗ; вырабатывает управляющие сигналы записи во внутренние регистры БИС УП и сигнал квитирования П, свидетельствующий об окончании приема команды. На БСЗ поступают разряды регистра РУ.<br />
<br />
[[Файл:Grishin-6-3.png|257px|thumb|Рис. 6.3. Временная диаграмма работы микросхемы К588ВУ2]]<br />
Функционирование БИС УП начинается с подачи на входы R0 и R1 отрицательных сигналов, которые переводят БИС в исходное состояние.<br />
Длительность сигналов R0 и R1 не менее 500 нс.<br />
<br />
Работа микросхемы УП начинается по положительному фронту сигнала R0 (либо R1). По отрицательному сигналу В происходит прием<br />
команды во входной регистр РК, а также информации состояния в регистр PC. После приема этой информации БИС УП выдает отрицательный сигнал П, свидетельствующий о том, что команда принята. Отрицательный фронт сигнала П инициирует положительный фронт сигнала В, который, в свою очередь, сбрасывает сигнал П в состояние «1».<br />
<br />
Затем начинается выдача первой микрокоманды принятой команды. Положительный фронт сигнала Ф1 инициирует выдачу очередной микрокоманды на магистраль МК. Микрокоманда может находиться на магистрали до отрицательного фронта сигнала Ф1. После этого происходит «подброс в единицу» магистрали МК. Если к этому времени сформирована следующая микрокоманда, то происходит ее запись в РМ с последующей выдачей. Одновременно с выдачей последней микрокоманды текущей команды выдается сигнал КК, сигнализирующий контроллеру (либо внешнему ЗУ) о необходимости подачи новой команды.<br />
<br />
На рис. 6.3 приведена временная диаграмма работы БИС УП.<br />
<br />
Реализация всей системы команд микроЭВМ «Электроника-60» и ограниченные возможности внутренних ПЛМ БИС УП привели к необходимости использования не менее пяти «зашивок» микрокоманд в БИС УП (0001 … 0005). Первые четыре реализуют собственно команды «Электроники-60», пятая — управляет системным контроллером и разрешением прерываний. Четыре микросхемы БИС УП (0001 … 0004) соединяются параллельно (по выходам) и выдают информацию в арифметическое устройство (АУ); 12-разрядный код является собственно микрокомандой для АУ. Разряд 12 используется в качестве строба микрокоманды. Микросхема К588ВУ2-0005 разрядами 0…6 вырабатывает сигналы разрешения прерывания, разряды 7…12 управляют микросхемой К588ВГ1 (КР588ВГ1).<br />
<br />
В табл. 6.3 приведены основные электрические параметры БИС УП.<br />
<br />
{| class=standard<br />
|+ Таблица 6.3. Основные электрические параметры БИС УП<br />
! Параметр, единица измерения !! Обозначение !! Значение<br />
|-<br />
|}<br />
<br />
=== 6.3. МИКРОСХЕМА К588ВС2 (КР588ВС2) ===<br />
Представляет БИС 16-разрядного арифметического устройства (БИС АУ). БИС АУ предназначена для построения процессоров микроЭВМ, а также центральных устройств обработки программируемых контроллеров.<br />
<br />
БИС АУ осуществляет обмен информацией с внешними устройствами по 16-разрядной двунаправленной магистрали данных. Операции обмена информацией сопровождаются сигналами квитирования. Микросхема реализует асинхронную дисциплину обмена.<br />
<br />
Назначение выводов БИС АУ представлено в табл, 6.4. Условное графическое обозначение и структурная схема БИС АУ изображены соответственно на рис. 6.4 и 6.5. В состав структурной схемы БИС АУ входят следующие функциональные узлы:<br />
<br />
регистр микрокоманд РМ и дешифратор ДШ; предназначены для приема и дешифрации кода микрокоманды;<br />
<br />
буферный регистр данных БРг; через БРг осуществляют связь между внутренней шиной данных ВШД и внешней магистралью данных Д;<br />
<br />
арифметико-логическое устройство АЛУ (16-разрядное); в нем происходят основные действия, связанные с арифметико-логической обработкой данных. Прием информации в АЛУ, а также ее выдача осуществляются через ВШД;<br />
<br />
{| class=standard<br />
|+ Таблица 6.4. Назначение выводов микросхемы К588ВС2<br />
! Номер<br />вывода !! Назначение !! Разряд !! Обозначение !! Тип<br />
|-<br />
| 1 ||rowspan=4| Шина микрокоманд || 7 || МК7 ||rowspan=4| Вход<br />
|-<br />
| 2 || 8 || МК8<br />
|-<br />
| 3 || 9 || МК9<br />
|-<br />
| 4 || 10 || МК10<br />
|-<br />
| 5 ||rowspan=16| Магистраль данных || 0 || Д0 ||rowspan=16| Вход-выход<br />
|-<br />
| 6 || 1 || Д1<br />
|-<br />
| 7 || 2 || Д2<br />
|-<br />
| 8 || 3 || Д3<br />
|-<br />
| 9 || 4 || Д4<br />
|-<br />
| 10 || 5 || Д5<br />
|-<br />
| 11 || 6 || Д6<br />
|-<br />
| 12 || 7 || Д7<br />
|-<br />
| 13 || 8 || Д8<br />
|-<br />
| 14 || 9 || Д9<br />
|-<br />
| 15 || 10 || Д10<br />
|-<br />
| 16 || 11 || Д11<br />
|-<br />
| 17 || 12 || Д12<br />
|-<br />
| 18 || 13 || Д13<br />
|-<br />
| 19 || 14 || Д14<br />
|-<br />
| 20 || 15 || Д15<br />
|-<br />
| 21 || Общий || — || GND || —<br />
|-<br />
| 22 || Знак результата || — || N ||rowspan=4| Выход<br />
|-<br />
| 23 || Признак нулевого результата || — || Z<br />
|-<br />
| 24 || Признак переполнения || — || V<br />
|-<br />
| 25 || Перенос || — || C<br />
|-<br />
| 26 ||rowspan=4| Не используются || — || — || —<br />
|-<br />
| 27 || — || — || —<br />
|-<br />
| 28 || — || — || —<br />
|-<br />
| 29 || — || — || —<br />
|-<br />
| 30 || Строб микрокоманды || — || ВК || Вход<br />
|-<br />
| 31 || Завершение выполнения макрокоманды || — || Ф1 || Выход<br />
|-<br />
| 32 || Строб данных по магистрали Д || — || В ||rowspan=2| Вход-выход<br />
|-<br />
| 33 || Конец приема данных || — || П<br />
|-<br />
| 34 ||rowspan=8| Шина микрокоманд || 0 || МК0 ||rowspan=8| Вход<br />
|-<br />
| 35 || 1 || МК1<br />
|-<br />
| 36 || 2 || МК2<br />
|-<br />
| 37 || 3 || МК3<br />
|-<br />
| 38 || 4 || МК4<br />
|-<br />
| 39 || 5 || МК5<br />
|-<br />
| 40 || 6 || МК6<br />
|-<br />
| 41 || 11 || МК11<br />
|-<br />
| 42 || Напряжение питания || — || Ucc || —<br />
|}<br />
<br />
аккумулятор АКК и. блок регистров общего назначения БРОН; используют в качестве источников и приемников информации при выполнении микрокоманд;<br />
<br />
регистр состояния PC; в PC заносятся признаки результата операции. Программно доступен, может участвовать в операциях АДУ;<br />
<br />
блок синхронизации БСЗ; осуществляет обработку и выдачу внешних и внутренних сигналов управления. Работа БСЗ начинается с отрицательного фронта сигнала ВК;<br />
<br />
: Рис. 6.4. Условное графическое обозначение микросхемы К588ВС2<br />
<br />
: Рис. 6.5. Структурная схема микросхемы К588ВС2<br />
<br />
буферный регистр состояния БРС; через БРС происходит выдача признаков результата операции;<br />
<br />
внутренняя шина данных ВШД; обеспечивает связь между БРг, АЛУ, АКК, БРОН, PC.<br />
<br />
==== 6.3.1. Описание функционирования микросхемы К588ВС2 ====<br />
Работа БИС АУ осуществляется под управлением микрокоманды. Выполнение любой микрокоманды состоит из комбинации фаз приема, чтения, записи и выдачи.<br />
<br />
Фаза приема включает прием и дешифрацию микрокоманды. В некоторых микрокомандах в этой фазе происходит прием операнда по магистрали данных.<br />
<br />
Фаза чтения включает чтение информации в АЛУ из БРОН, АКК, PC или БРг с последующей ее обработкой (рис. 6.6 … 6.9).<br />
<br />
В фазе записи происходят завершение обработки информации и ее запись в приемник информации. Приемником может быть один из внутренних функциональных узлов БИС АУ — РОН, АКК, РС или БРг в соответствии с кодом микрокоманды.<br />
<br />
В фазе выдачи осуществляется выдача результата операции в магистраль данных.<br />
<br />
В табл. 6.5 … 6.8 приведены микрокоманды, выполняемые БИС АУ.<br />
<br />
: Рис. 6.6.<br />
<br />
: Рис. 6.7.<br />
<br />
: Рис. 6.8.<br />
<br />
: Рис. 6.9.<br />
<br />
Начало выполнения всех микрокоманд одинаковое. Если БИС АУ готова к приему микрокоманды, то на выходе Ф1 (см. рис. 6.6 … 6.9) устанавливается сигнал «1». После этого БИС УП (либо другое устройство микропрограммного управления) выдает микрокоманды на шину микрокоманд МК 12-разрядным кодом (0…11); 12-й разряд шины микрокоманд, как правило, используется для стробирования микрокоманды и поступает на вход ВК сигналом «0». По отрицательному фронту этого сигнала происходит запись микрокоманды в регистр РМ и дешифратор ДШ. По окончании приема микрокоманды БИС АУ устанавливает сигнал «0» на выходе Ф1.<br />
<br />
После этого БИС АУ переходит к исполнению микрокоманды.<br />
<br />
Окончание выполнения микрокоманды инициируется положительным фронтом сигнала Ф1. Если микрокоманда выполняется без обмена, то не происходит ни приема операнда, ни выдачи результата операции в магистраль данных.<br />
<br />
Выполнение микрокоманды с выдачей результата операции в магистраль данных обусловлена выдачей результата в магистраль совместно с формированием на выводе В сигнала «0». Одновременно с выдачей информации БИС АУ может принять следующую микрокоманду и начать ее выполнение. Этап выдачи информации в магистраль данных продолжается до поступления извне на вывод П БИС АУ отрицательного фронта сигнала. Последний инициирует положительный фронт сигнала В и снятие информации с магистрали данных. По положительному фронту сигнала В может сбрасываться сигнал П. На этом заканчивается выдача информации в магистраль. Если во время этапа ыдачи<br />
информации в магистраль данных поступила микрокоманда без обмена, то последняя выполняется независимо от того, закончился или нет этап обмена информации в предыдущей микрокоманде. Если данная микрокоманда с приемом информации и еще не закончился этап выдачи данных в предыдущей микрокоманде, то БИС АУ не устанавливает уровень «0» на выходе Ф1, а ожидает появления «0» на выводе П (окончания этапа выдачи). Если следующая микрокоманда с выдачей и еще не закончился<br />
этап выдачи информации в текущей микрокоманде, то после окончания выполнения фаз чтения и записи и выработки сигнала Ф1 = «1» БИС А У останавливается и ожидает сигнала П = «0». После появления этого сигнала сбрасывается сигнал В и после сброса сигнала П выдается новая информация в магистраль данных.<br />
<br />
При выполнении микрокоманды с приемом информации по магистрали данных БИС АУ после приема и дешифрации кода этой микрокоманды переходит в режим ожидания приема операнда. Этап приема начинается с появления извне сигнала В = «0». Закончив прием, БИС АУ устанавливает сигнал П — «0» и сигнал Ф1 = «0». После этого внешнее устройство (источник операнда) сбрасывает сигнал В, после чего БИС АУ сбрасывает сигнал П.<br />
<br />
Окончание выполнения микрокоманды сигнализируется сигналом Ф1 = «1». Микрокоманда с приемом операнда и выдачей результата операции аналогична микрокоманде с приемом информации из магистрали и фазой выдачи результата операции в магистраль данных.<br />
<br />
{| class=standard style="text-align: center"<br />
|+ Таблица 6.5. Бинарные микрокоманды МК(0) = 0<br />
!colspan=10| Разряды МК !!rowspan=2| Выполняемая операция<br />
|-<br />
!&nbsp;1&nbsp;!!&nbsp;2&nbsp;!!&nbsp;3&nbsp;!!&nbsp;4&nbsp;!!&nbsp;5&nbsp;!!&nbsp;6&nbsp;!!&nbsp;7&nbsp;!!&nbsp;8&nbsp;!!&nbsp;9&nbsp;!!10<br />
|-<br />
|rowspan=3| 1 ||rowspan=3| 0 ||colspan=4| КОП1 ||colspan=4 rowspan=7| РОН ||rowspan=3| АЛУ(РОН, АКК) -> РОН<br />
|-<br />
| X || X || X || X<br />
|-<br />
|colspan=4 style="border-top: hidden;"| (кроме X111)<br />
|-<br />
|rowspan=2| 0 ||rowspan=2| 1 || X || X || X || X ||rowspan=2| АЛУ(РОН, АКК) -> АКК<br />
|-<br />
|colspan=4 style="border-top: hidden;"| (кроме X111)<br />
|-<br />
| 0 || 0 ||colspan=4| То же || АЛУ(РОН, АКК) -> РС<br />
|-<br />
| 1 || 1 ||colspan=4| То же || АЛУ(РОН, АКК) -> АКК; БРг<br />
|-<br />
| 0 || 0 || X || 1 || 1 || 1 || X || X || X || X || Начальная установка<br />
|-<br />
|rowspan=2| 0 ||rowspan=2| 1 ||rowspan=2| 0 ||rowspan=2| 1 ||rowspan=2| 1 ||rowspan=2| 1 ||colspan=4| КОП2 ||rowspan=2| АЛУ(БРг, АКК) -> РС<br />
|-<br />
| X || X || X || X<br />
|-<br />
| 1 || 1 || 0 || 1 || 1 || 1 || X || X || X || X || АЛУ(БРг, АКК) -> БРг, АКК<br />
|-<br />
| 0 || 1 || 1 || 1 || 1 || 1 ||rowspan=3 colspan=4| КОП2 || АЛУ(РС, АКК) -> АКК<br />
|-<br />
| 1 || 0 || 1 || 1 || 1 || 1 || АЛУ(РС, АКК) -> РС<br />
|-<br />
| 1 || 1 || 1 || 1 || 1 || 1 || АЛУ(РС, АКК) -> БРг, АКК<br />
|}<br />
<br />
{| class=standard style="text-align: center"<br />
|+ Таблица 6.6. Унарные микрокоманды МК(0) = 1<br />
!colspan=4| Разряды МК !!rowspan=2| Выполняемая операция<br />
|-<br />
!&nbsp;1&nbsp;&nbsp;&nbsp;2&nbsp;!!&nbsp;3&nbsp;&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;6&nbsp;!!&nbsp;7&nbsp;&nbsp;&nbsp;8&nbsp;&nbsp;&nbsp;9&nbsp;&nbsp;10&nbsp;||&nbsp;11<br />
|-<br />
| 0&nbsp;&nbsp;X || КОП3<br />любой, кроме:<br />X&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;1<br />X&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;1 ||rowspan=6| РОН || X || АЛУ(РОН) -> РОН<br />
|-<br />
| 0&nbsp;&nbsp;X ||rowspan=3| 0&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;1 || X || БРг -> РОН<br />
|-<br />
| 1&nbsp;&nbsp;0 || 0 || МК(7…10) -> АКК(0…3)<br />
|-<br />
| 1&nbsp;&nbsp;0 || 1 || МК(7…10) -> АКК(4…7)<br />
|-<br />
| 1&nbsp;&nbsp;1 ||rowspan=2| 0&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;1 || 0 || МК(7…10) -> АКК(8…11)<br />
|-<br />
| 1&nbsp;&nbsp;1 || 1 || МК(7…10) -> АКК(12…15)<br />
|-<br />
| 0&nbsp;&nbsp;1 ||rowspan=2| 1&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;1 || КОП4 || — || АЛУ(РС) -> РС<br />
|-<br />
| 1&nbsp;&nbsp;X ||rowspan=3| Любой<br />КОП4,<br />кроме<br />1&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;1 || — || АЛУ(РС) -> БРг; РС<br />
|-<br />
| 0&nbsp;&nbsp;X ||rowspan=2| 1&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;1 || X || АЛУ(АКК) -> АКК<br />
|-<br />
| 1&nbsp;&nbsp;X || X || АЛУ(АКК) -> БРг; АКК<br />
|-<br />
| 0&nbsp;&nbsp;X ||rowspan=2| 0&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;1 ||rowspan=2| КОП4 || X || АЛУ(БРг) -> АКК<br />
|-<br />
| 1&nbsp;&nbsp;X || X || АЛУ(БП) -> АКК; БРг<br />
|}<br />
<br />
{| class=standard<br />
|+ Таблица 6.7. Расшифровка КОП1 (КОП2)<br />
! Операция !! КОП1(2) !! Действие !! Признаки !! Примечание<br />
|-<br />
|}<br />
<br />
{| class=standard<br />
|+ Таблица 6.8. Расшифровка КОП3 (КОП4)<br />
! Операция !! КОП3(4) !! Действие !! Признаки !! Примечание<br />
|-<br />
|}<br />
<br />
==== 6.3.2. Система микрокоманд БИС АУ ====<br />
<br />
Система микрокоманд БИС АУ (см. табл. 6.5 … 6.8) содержит бинарные (с двумя операндами) и унарные (с одним операндом) микрокоманды. При описании микрокоманд использованы следующие обозначения: МК — микрокоманда; РОН — регистр общего назначения; КОП — код операции; БРг — буферный регистр данных; АКК — аккумулятор; РС — регистр состояний; А, В — первый и второй операнды; ДД — приемник результата операции;<br />
С, N, Z, V — признаки результата; X — безразличное состояние разряда.<br />
<br />
Все микрокоманды можно условно разделить на следующие типы: без обмена информацией с магистралью данных; с приемом операнда по магистрали данных; с выдачей операнда в магистраль<br />
данных; с приемом и выдачей результата в магистраль данных.<br />
<br />
В БИС АУ четыре формата микрокоманд. Бинарные и унарные микрокоманды имеют по два формата.<br />
<br />
Во всех форматах нулевой разряд используется как идентификатор бинарной (МКО = «0») или унарной (МКО = «1») операций.<br />
<br />
Одиннадцатый разряд является признаком выдачи информации состояния на магистраль состояния.<br />
<br />
Для бинарных микрокоманд в форматах 1 и 2 разряды МК1 и МК2 определяют адрес приемника.<br />
<br />
Для унарных микрокоманд разряд МК1 в форматах 3 и 4 определяет адрес приемника, а МК2 — указывает длину операнда (байт либо два байта).<br />
<br />
Для форматов 1 и 3 разряды МК3 … МК6 определяют код операций КОП1 и КОП3 соответственно.<br />
<br />
Для форматов 2 и 4 эти разряды определяют признаки формата.<br />
<br />
Для форматов 1 и 3 разряды МК7 … МК10 в двоичном коде определяют номер РОНа.<br />
<br />
Для форматов 2 и 4 эти разряды определяют код операций КОП2 и КОП4 соответственно.<br />
<br />
Широкий спектр микрокоманд позволяет реализовать на базе БИС АУ практически любую систему команд вычислительного устройства.<br />
<br />
{| class=standard<br />
|+ Таблица 6.9. Электрические параметры микросхемы К588ВС2 (КР588ВС2)<br />
! Параметр, единица измерения !! Обозначение !! Значение<br />
|-<br />
|}<br />
<br />
На временных диаграммах (см. рис. 6.6 … 6.9) иллюстрируется работа БИС АУ при выполнении различных микрокоманд. Индексы В и П указывают, что данный сигнал является выдаваемым либо принимаемым в БИС АУ.<br />
<br />
В заключение следует отметить, что при проектировании устройств на базе БИС АУ необходимо разряды магистрали состояния «подвязывать» через резистор к источнику питания.<br />
<br />
Величина резистора В. определяется из формулы<br />
<br />
: Формула (6.1)<br />
<br />
В табл. 6.9 приведены электрические параметры БИС АУ.<br />
<br />
=== 6.4. МИКРОСХЕМА К588ВГ1 (КР588ВГ1) ===<br />
<br />
Большая интегральная схема системного контроллера (БИС СК.) предназначена для согласования и сопряжения процессора на базе микросхем серии К588 (КР588) с каналом типа Q-шина.<br />
Назначение выводов БИС СК дано в табл. 6.10. На рис. 6.10 и 6.11 изображены соответственно условное обозначение и структурная схема БИС СК.<br />
<br />
В состав структурной схемы БИС СК входят следующие функциональные узлы: блок прерываний БП, дешифратор микрокоманд ДШМ, блок управления обменом данных БУО, блок управления прямым доступом к памяти БУНД, блок правления магистральными приемопередатчиками БУПП, блок синхронизации БСЗ.<br />
<br />
Следует отметить, что линии управления обменом ЛУО включают следующие сигналы обмена (см. рис. 6.11): ОБМ, ДЧТ, ДЗП, ПЗП, ОТВ, ЗПР, ПРР и ПВС.<br />
<br />
Линии передачи управления ЛПУ включают сигналы ЗМ, РЗМ и ПЗ (см. рис. 6.11).<br />
<br />
БИС СК предназначена для связи внутреннего интерфейса процессора, построенного на базе микросхем серии К588 (КР588), с внешним стандартным интерфейсом канала Q-шина.<br />
<br />
Внутренний интерфейс процессора содержит сигналы, обеспечивающие работу процессора, состоящего из магистральных приемопередатчиков, управляющей памяти и арифметического устройства.<br />
Это сигналы квитирования БИС АУ и БИС УП, 16-разрядная информационная магистраль, 4-разрядная магистраль кода прерывания, сигналы управления магистральными приемопередатчиками.<br />
Сигналы квитирования КВ1 … КВЗ и КП обеспечивают передачу информации по 16-разрядной магистрали.<br />
Информация может включать команду, данные, адрес, вектор прерывания.<br />
Магистраль кода прерывания ПРЗ … ПРО служит для сообщения в УП о том, какое прерывание в данный момент обслуживается.<br />
<br />
Сигналы управления приемопередатчиками С1 и С2 предназначены для организации двунаправленного обмена информацией через МПП.<br />
<br />
: Рис. 6.10. Условное графическое обозначение микросхемы К588ВГ1<br />
<br />
: Рис. 6.11. Структурная схема микросхемы К588ВГ1<br />
<br />
Внешний интерфейс процессора содержит сигналы, обеспечивающие работу всех устройств канала. Это информационные шины, шины управления вводом-выводом, шины прерываний и шины прямого доступа к памяти. Сигналы на шинах ввода-вывода<br />
ОБМ, ДЧТ, ДЗП, ПЗП, ОБМ обеспечивают передачу по двунаправленной шине данных Д15 … ДО команд, адресов, данных и векторов прерываний.<br />
<br />
Шины и сигналы прерываний ЗПРЗ…ЗПР0, ОСТ, АИП, ЗПР, ПРР, ЛВС служат для приема запросов на прерывание и для сброса прерываний от внешних устройств.<br />
<br />
Шины прямого доступа ЗМ, РЗМ, ПЗ служат для приема запросов на прямой доступ к памяти и сброса этих запросов.<br />
<br />
Сигнал УСТ служит для приведения системы в исходное состояние, КОШ — вывод для подключения внешней времязадающей цепи для формирования длительности сигналов УСТ, ДЧТ или ДЗП.<br />
<br />
БИС СК управляется микрокомандно. В табл. 6.11 приведена система микрокоманд БИС СК. Код микрокоманды поступает на входы МК4 … МКО.<br />
<br />
{| class=standard<br />
|+ Таблица 6.10. Назначение выводов микросхемы К588ВГ1<br />
! Номер<br />вывода !! Назначение !! Разряд !! Обозначение !! Тип<br />
|-<br />
| 1 ||rowspan=2| Регистр состояния || T || T ||rowspan=3| Вход<br />
|-<br />
| 2 || P || P<br />
|-<br />
| 3 || Подключение времязадающей цепи || — || КОШ<br />
|-<br />
| 4 ||rowspan=4| Шина прерывания || 3 || ПР3 ||rowspan=5| Выход<br />
|-<br />
| 5 || 2 || ПР2<br />
|-<br />
| 6 || 1 || ПР1<br />
|-<br />
| 7 || 0 || ПР0<br />
|-<br />
| 8 || Начальная установка || — || R<br />
|-<br />
| 9 ||rowspan=3| Квитирование выдачи || 1 || КВ1 || Вход-выход<br />
|-<br />
| 10 || 2 || КВ2 ||rowspan=2| Выход<br />
|-<br />
| 11 || 3 || КВ3<br />
|-<br />
| 12 || Квитирование приема || — || КП || Вход-выход<br />
|-<br />
| 13 ||rowspan=5| Шина микрокоманд || 4 || МК4 ||rowspan=6| Вход<br />
|-<br />
| 14 || 3 || МК3<br />
|-<br />
| 15 || 2 || МК2<br />
|-<br />
| 16 || 1 || МК1<br />
|-<br />
| 17 || 0 || МК0<br />
|-<br />
| 18 || Строб микрокоманды || — || ВК<br />
|-<br />
| 19 || Квитирование приема микрокоманды || — || Ф1 || Выход<br />
|-<br />
| 20 || Начальный пуск || — || НП || Вход<br />
|-<br />
| 21 || Общий || — || GND || —<br />
|-<br />
| 22 || Сброс канала || — || УСТ ||rowspan=6| Выход<br />
|-<br />
| 23 ||rowspan=7| Линии управления обменом || 3 || ЛУО3<br />
|-<br />
| 24 || 0 || ЛУО0<br />
|-<br />
| 25 || 1 || ЛУО1<br />
|-<br />
| 26 || 2 || ЛУО2<br />
|-<br />
| 27 || 4 || ЛУО4<br />
|-<br />
| 28 || 5 || ЛУО5 || Вход<br />
|-<br />
| 29 || 6 || ЛУО6 || Выход<br />
|-<br />
| 30 || Внешний сигнал прерывания || — || АИП ||rowspan=7| Вход<br />
|-<br />
| 31 ||rowspan=4| Запрос прерывания с фиксированными векторами || 0 || ЗПР0<br />
|-<br />
| 32 || 3 || ЗПР3<br />
|-<br />
| 33 || 2 || ЗПР2<br />
|-<br />
| 34 || 1 || ЗПР1<br />
|-<br />
| 35 || Линии управления обменом || 7 || ЛУО7<br />
|-<br />
| 36 || Внешний сигнал прерывания || — || ОСТ<br />
|-<br />
| 37 ||rowspan=3| Линии передачи управления || 1 || ЛПУ1 || Выход<br />
|-<br />
| 38 || 2 || ЛПУ2 ||rowspan=2| Вход<br />
|-<br />
| 39 || 0 || ЛПУ0<br />
|-<br />
| 40 ||rowspan=2| Управление приемопередатчиком || 1 || С1 ||rowspan=2| Выход<br />
|-<br />
| 41 || 2 || С2<br />
|-<br />
| 42 || Напряжение питания || — || Uco || —<br />
|}<br />
<br />
{| class=standard<br />
|+ Таблица 6.11. Система микрокоманд микросхемы К588ВГ1<br />
! Восьмерич-<br />ный код !! Обозначение !! Назначение<br />
|-<br />
| 00 || INIT || Инициализация работы БИС СК<br />
|-<br />
| 01 || LPSW || Загрузка слова состояния программы<br />
|-<br />
| 02 || DATIV || Ввод вектора прерывания<br />
|-<br />
| 03 || WAIT || Ожидание<br />
|-<br />
| 04 || IE || Разрешение прерывания<br />
|-<br />
| 05 || ID || Запрет прерывания<br />
|-<br />
| 10 || DATI || Ввод слова<br />
|-<br />
| 11 || DATIK || Ввод команды<br />
|-<br />
| 12 || DATO || Вывод слова<br />
|-<br />
| 13 || DATOB || Вывод байта<br />
|-<br />
| 14 || DATIO || Ввод-вывод слова<br />
|-<br />
| 15 || DATIOB || Ввод-вывод байта<br />
|-<br />
| 20 || RTO || Сброс прерывания INTO<br />
|-<br />
| 21 || NH || Запрет прерывания HALT<br />
|-<br />
| 22 || RT1 || Сброс прерывания INT1<br />
|-<br />
| 23 || RT2 || Сброс прерывания INT2<br />
|-<br />
| 24 || RT3 || Сброс прерывания INT3<br />
|-<br />
| 25 || RH || Сброс прерывания HALT<br />
|-<br />
| 26 || RTM || Сброс триггера маски<br />
|-<br />
| 27 || RES || Начальная установка<br />
|-<br />
| 30 || RTE || Сброс триггера ошибки<br />
|-<br />
| 31 || RTP || Сброс триггера РОК<br />
|-<br />
| 32 || CTO || Очистка триггера ТО<br />
|-<br />
| 33 || NTI || Запрет прерывания<br />
|-<br />
| 34 || REV || Сброс триггера<br />
|-<br />
| 37 || NOP || Нет операции<br />
|}<br />
<br />
Рассмотрим выполнение трех микрокоманд, управляющих процессами ввода и вывода информации.<br />
<br />
Микрокоманда ввода команды DАТІК (рис. 6.12) выполняется следующим образом.<br />
<br />
На вывод КВ1 подается сигнал из БИС АУ о том, что на магистрали данных находится адрес команды. По этому сигналу БИС СК устанавливает сигналы разрешения обмена ОБМ = «0» и чтения данных ДЧТ = «0» для ОЗУ, а также разрешает БИС АУ снять с магистрали данных адрес команды, выдав сигнал КП = «О».<br />
<br />
После снятия адреса команды БИС АУ выдает сигнал на вывод КВ1 = «1», на что БИС СК отвечает сигналом КП = «1».<br />
<br />
Затем на вывод ОСТ подается сигнал «0», свидетельствующий о том, что на магистрали данных находится команда и БИС СК разрешает УП принять команду. Кроме этого, при отсутствии запросов на прерывание БИС СК выдает сигналы КВ2 = КВЗ = «0». Если к данному моменту запрос на прерывание поступит, то БИС СК вырабатывает сигнал КВЗ = «0».<br />
<br />
После приема команды БИС УП отвечает сигналом КП = «0», по которому БИС СК вырабатывает сигналы КВ2 — КВЗ = «1», а также сигнал ДЧТ — «1».<br />
<br />
После снятия сигнала ОСТ (ОСТ = «1») БИС СК снимает сигнал ОБМ (ОБМ = «1»).<br />
<br />
Выполнение микрокоманды ввода данных ОАТІ (рис. 6.13) начинается с подачи из БИС А У на БИС СК сигнала КВ1 = «0», который свидетельствует о том, что адрес данных находится на магистрали.<br />
<br />
По этому сигналу БИС СК устанавливает сигналы ОБМ = «0», ДЧТ = «0» (для ОЗУ или ВУ). Затем, после задержки относительно сигнала ОБМ, БИС СК устанавливает сигнал КП = «0», который разрешает снять адрес с магистрали данных. После этого АУ вырабатывает сигнал КВ1 = «1», по которому БИС СК устанавливает сигнал КП = «1».<br />
<br />
: Рис. 6.12. Временная диаграмма выполнения микрокоманды DАТІК<br />
<br />
: Рис. 6.13. Временная диаграмма выполнения микрокоманды DАТІ<br />
<br />
На БИС СК подается сигнал ОСТ = «0» (данные находятся на магистрали). По этому сигналу БИС СК устанавливает сигнал КВ1 = «0», разрешая БИС АУ принять данные.<br />
После окончания приема данных БИС АУ вырабатывает сигнал КП = «0». Вслед за этим БИС СК сбрасывает сигналы КВ1 и ДЧТ в состояние «1».<br />
Получив сигнал ОСТ = «1», БИС СК вырабатывает сигнал ОБМ = «1».<br />
<br />
{| class=standard<br />
|+ Таблица 6.12. Коды на выводах ПРЗ … ПР0<br />
! Двоичный<br />код !! Мнемокод !! Содержание прерываний<br />
|-<br />
| 1&nbsp;&nbsp;0&nbsp;&nbsp;1&nbsp;&nbsp;0 || W (DBE) || Начальный пуск (двойная ошибка канала)<br />
|-<br />
| 1&nbsp;&nbsp;1&nbsp;&nbsp;1&nbsp;&nbsp;0 || T (TERR0) || Прерывание по T-разряду<br />
|-<br />
| 1&nbsp;&nbsp;1&nbsp;&nbsp;1&nbsp;&nbsp;1 || POK (TERR1) || Прерывание по сбою питания (ошибка канала)<br />
|-<br />
| 0&nbsp;&nbsp;1&nbsp;&nbsp;1&nbsp;&nbsp;1 || HALT (TERR2) || Прерывание по входу ОСТ (ошибка канала)<br />
|-<br />
| 0&nbsp;&nbsp;1&nbsp;&nbsp;0&nbsp;&nbsp;1 || INT0 || Запрос прерывания 0 от ВУ<br />
|-<br />
| 0&nbsp;&nbsp;1&nbsp;&nbsp;0&nbsp;&nbsp;0 || INT1 || То же . . . 1<br />
|-<br />
| 0&nbsp;&nbsp;1&nbsp;&nbsp;1&nbsp;&nbsp;0 || INT2 || &nbsp;&nbsp;&nbsp;» . . . . . 2<br />
|-<br />
| 0&nbsp;&nbsp;0&nbsp;&nbsp;1&nbsp;&nbsp;0 || INT3 || &nbsp;&nbsp;&nbsp;» . . . . . 3<br />
|-<br />
| 0&nbsp;&nbsp;0&nbsp;&nbsp;0&nbsp;&nbsp;1 || IRQ || Запрос прерывания от ВУ с нефиксированным вводимым адресом-вектором<br />
|-<br />
| 0&nbsp;&nbsp;0&nbsp;&nbsp;0&nbsp;&nbsp;0 || Нет прерывания || Нет прерывания<br />
|}<br />
<br />
Выполнение микрокоманды вывода данных ОАТО (рис. 6.14) начинается с подачи из БИС АУ на БИС СК сигнала КВ1 = «0», свидетельствующего о том, что на магистрали находится адрес данных. Поэтому сигналу БИС СК станавливает сигналы ОБМ = ПЗП = «0» (для ОЗУ или ВУ). Затем с некоторой задержкой относительно сигнала ОБМ БИС СК устанавливает сигнал КП = «0». Последний разрешает БИС АУ снять адрес данных, после чего БИС АУ вырабатывает сигнал КВ1 = «1». По этому сигналу БИС СК отвечает сигналами ПЗП = КП = «1».<br />
<br />
АУ выставляет на магистраль данные, сигнализируя об этом сигналом КВ1 = «0», по которому БИС СК устанавливает сигнал ДЗП = «0» (для ОЗУ или ВУ). После того, как данные запишутся в ОЗУ (ВУ) на БИС СК подается сигнал ОСТ = «0». По этому сигналу БИС СК вырабатывает сигналы ДЗП = «1» и КП = «0». Получив сигнал КП = «0», БИС АУ снимает данные с магистрали и устанавливает сигнал КВ1 = «1», по которому БИС СК формирует сигнал КП = «1». По сигналу сигнал ОБМ = «1».<br />
<br />
: Рис. 6.14. Временная диаграмма выполнения микрокоманды DATO<br />
<br />
В табл. 6.12 приведена расшифровка кодов, вырабатываемых БИС СК на выводах ПРЗ … ПРО.<br />
<br />
Электрические параметры БИС СК приведены в табл. 6.13.<br />
<br />
При разработке схемы с использованием БИС СК подключение времязадающей РС-цепочки к выводу КОШ осуществляется следующим образом: резистор R — между питанием и выводом КОШ; конденсатор С — между выводом КОШ и «минусом» источника питания. Значения резистора и конденсатора подбираются из условия обеспечения нужной длительности сигналов ДЧТ, ДЗП, до сигнала ОТВ. <br />
<br />
{| class=standard<br />
|+ Таблица 6.13. Электрические параметры микросхемы К588ВГ1<br />
! Параметр, единица измерения !! Обозначение !! Значение<br />
|-<br />
|}<br />
<br />
=== 6.5. МИКРОСХЕМА К588ВР2 ===<br />
<br />
Представляет собой БИС умножителя (БИС УМ) и выполняет операции умножения над 16-разрядными операндами в дополнительном коде.<br />
<br />
На рис. 6.15 и 6.16 приведены условное графическое обозначение и структурная схема БИС УМ. Назначение выводов БИС УМ дано в табл. 6.14.<br />
<br />
: Рис. 6.15. Условное графическое обозначение микросхемы К588ВР2<br />
<br />
: Рис. 6.16. Структурная схема микросхемы К588ВР2<br />
<br />
В состав структурной схемы БИС УМ входят следующие функциональные узлы:<br />
<br />
блок синхронизации БСЗ предназначены для приема и обработки управляющих сигналов. БСЗ служит также для организации цикла выполнения операции умножения;<br />
<br />
регистры операндов А и В — РА и РВ служат для приема, хранения и выдачи в блок умножения множимого и множителя;<br />
<br />
регистры произведения РП1 и РП2 предназначены для приема из блока умножения БИС УМ и выдачи младшей и старшей частей произведения соответственно;<br />
<br />
блок формирования признаков БФП служит для формирования и выдачи признаков результата операции умножения.<br />
К ним относятся признак нулевого результата (Z), признак переполнения (V), признак переноса (C), знаковый разряд (N).<br />
<br />
блок умножения БУМН выполняет собственно операцию умножения операндов из регистров РА и РВ;<br />
<br />
схема обмена информацией по магистрали данных МД; предназначена для обеспечения электрической «развязки» внутренней<br />
магистрали БИС УМ с внешней магистралью данных, обеспечивает двунаправленный обмен 16-разрядной информацией.<br />
<br />
Функционирование БИС УМН определяется сигналами ВК1, ВК2, ВКЗ, ЧТ и ЗП (рис. 6.17).<br />
<br />
: Рис. 6.17. Временная диаграмма работы микросхемы К588ВР2<br />
<br />
В первую очередь необходимо загрузить операнды в регистры РА и РВ.<br />
Загрузка 16-разрядной информации с магистрали в РА происходит после подачи на входы ВК1, ВК2, ВКЗ, ЗП, ЧТ комбинации сигналов «0 1 1 0 1» при наличии уровня «1» на выводе ГОТ.<br />
<br />
Загрузка информации с магистрали данных в РВ происходит после подачи на указанные входы комбинации сигналов «1 0 1 0 1».<br />
<br />
После загрузки второго операнда начинается выполнение собственно умножения.<br />
Младшая часть произведения считывается из РП1 на магистраль данных после подачи на входы ВК1, ВК2, ВКЗ, ЗП, ЧТ комбинации сигналов «0 1 1 1 0».<br />
<br />
Старшая часть произведения выдается из регистра РП2 на магистраль данных при подаче на указанные входы комбинации сигналов «1 0 1 1 0».<br />
Если на те же входы подать комбинацию сигналов «1 1 0 1 0», то из блока БФП выдаются признаки результата умножения N, Z, V, С на магистраль данных.<br />
<br />
В табл. 6.15 приведены электрические параметры БИС УМН.<br />
<br />
{| class=standard<br />
|+ Таблица 6.14. Назначение выводов микросхемы К588ВР2<br />
! Номер<br />вывода !! Назначение !! Разряд !! Обозначение !! Тип<br />
|-<br />
| 1<br />
|-<br />
| 2<br />
|-<br />
| 3<br />
|-<br />
| 4<br />
|-<br />
| 5<br />
|-<br />
| 6<br />
|-<br />
| 7<br />
|-<br />
| 8<br />
|-<br />
| 9<br />
|-<br />
| 10<br />
|-<br />
| 11<br />
|-<br />
| 12<br />
|-<br />
| 13<br />
|-<br />
| 14<br />
|-<br />
| 15<br />
|-<br />
| 16<br />
|-<br />
| 17<br />
|-<br />
| 18<br />
|-<br />
| 19<br />
|-<br />
| 20<br />
|-<br />
| 21<br />
|-<br />
| 22<br />
|-<br />
| 23<br />
|-<br />
| 24<br />
|}<br />
<br />
{| class=standard<br />
|+ Таблица 6.15. Электрические параметры микросхемы К588ВР2<br />
! Параметр, единица измерения !! Обозначение !! Значение<br />
|-<br />
|}<br />
<br />
=== 6.6. МИКРОСХЕМА К688ВА1 (КР588ВА1) ===<br />
<br />
Представляет собой 8-разрядный магистральный приемопередатчик (МПП) и предназначен для построения устройств связи, контроллеров внешних устройств, интерфейсных блоков.<br />
<br />
На рис. 6.18 и 6.19 изображены условное графическое обозначение и структурная схема МПП. Назначение выводов МПП приведено в табл. 6.16.<br />
<br />
В состав структурной схемы МПП входят следующие функциональные узлы;<br />
<br />
усилители каналов К1 и К2 (УК1, УК2); обеспечивают возможность работы МПП на 5 ТТЛ-нагрузок;<br />
<br />
блок формирования контроля по четности БФКЧ предназначен для формирования контрольных битов для информации, передаваемой по обоим каналам, а также для приема и обработки контрольных битов принимаемой информации.<br />
В случае появления ошибки по четности формируется сигнал ОШ = «0»;<br />
<br />
блок управления передачами БУП осуществляет управление передачей информации между каналами К1 и К2 в соответствии с сигналами С1 и С2.<br />
<br />
МПП осуществляет двунаправленный обмен информацией между каналами КІ и К2. Обмен может быть осуществлен как с инвертированием передаваемой информации, так и без инверсии.<br />
Сигнал ВП = «0» сопровождает информацию, выдаваемую из МПП.<br />
<br />
: Рис. 6.18. Условное графическое обозначение микросхемы К588ВА1<br />
<br />
: Рис. 6.19. Структурная схема микросхемы К588ВА1<br />
<br />
: Рис. 6.20. Временная диаграмма работы микросхемы К588ВА1 при коммутации информации с канала К2 на К1<br />
<br />
: Рис. 6.21. Временная диаграмма работы микросхемы К588ВА1 информации с канала К1 на К2<br />
<br />
Функционирование МПП начинается с подачи на вход ВК сигнала «0».<br />
При подаче на входы С1 и С2 комбинации сигналов «0» и «1» происходит передача информации из канала К1 в канал К2.<br />
При подаче на эти же входы комбинации сигналов «1» и «0» происходит передача информации из канала К2 в канал К1.<br />
При подаче на входы С1 = С2 = «1» выходы каналов К1 и К2 переводятся в третье состояние.<br />
<br />
Подавать одновременно сигналы «0» на входы С1 и С2 запрещается.<br />
<br />
{| class=standard<br />
|+ Таблица 6.16. Назначение выводов микросхемы К588ВА1<br />
! Номер<br />вывода !! Назначение !! Разряд !! Обозначение !! Тип<br />
|-<br />
| 1<br />
|-<br />
| 2<br />
|-<br />
| 3<br />
|-<br />
| 4<br />
|-<br />
| 5<br />
|-<br />
| 6<br />
|-<br />
| 7<br />
|-<br />
| 8<br />
|-<br />
| 9<br />
|-<br />
| 10<br />
|-<br />
| 11<br />
|-<br />
| 12<br />
|-<br />
| 13<br />
|-<br />
| 14<br />
|-<br />
| 15<br />
|-<br />
| 16<br />
|-<br />
| 17<br />
|-<br />
| 18<br />
|-<br />
| 19<br />
|-<br />
| 20<br />
|-<br />
| 21<br />
|-<br />
| 22<br />
|-<br />
| 23<br />
|-<br />
| 24<br />
|-<br />
| 25<br />
|-<br />
| 26<br />
|-<br />
| 27<br />
|-<br />
| 28<br />
|}<br />
<br />
: Таблица 6.17. Работа микросхемы К588ВА1 при контроле передач информации<br />
<br />
{| class=standard<br />
|+ Таблица 6.18. Электрические параметры микросхемы К588ВА1<br />
! Параметр, единица измерения !! Обозначение !! Значение<br />
|-<br />
|}<br />
<br />
При ИНВ = «0» происходит инверсная передача информации между каналами К1 и К2, при ИНВ = «1» — прямая.<br />
<br />
Работа МПП при приеме и передаче контрольных битов представлена в табл. 6.17.<br />
<br />
На рис. 6.20 и 6.21 приведены временные, диаграммы функционирования МПП при обмене информации между каналами К1 и К2.<br />
<br />
Для обеспечения нормальной работоспособности МПП между выводами ОШ, ВП и питанием следует устанавливать доопределяющие резисторы.<br />
Значения резисторов можно определить из выражения (6.1), где UoL, IoL, Ucc, Uoh, Ioh — см. в табл. 6.18.<br />
<br />
=== 6.7. МИКРОСХЕМА К588ИР1 (КР588ИР1) ===<br />
<br />
Представляет 8-разрядный многофункциональный буферный регистр (МБР) и может быть использована для построения регистровых блоков, контроллеров внешних устройств, запоминающих и интерфейсных устройств.<br />
<br />
Условное графическое обозначение и структурная схема МБР представлены соответственно на рис. 6.22 и 6.23. В табл. 6.19 приведено назначение выводов МБР.<br />
<br />
В состав структурной схемы МБР входят следующие функциональные узлы:<br />
<br />
блок контроля четности БКЧ; осуществляет контроль на четность поступившей информации.<br />
При несоблюдении условия четности поступившей информации по каналу К1 вырабатывается сигнал ОШ = «0», при этом БКЧ блокирует запись информации во внутренний регистр Рг и сигнал ЗВ не формируется;<br />
<br />
блок формирования бита четности БФБЧ; предназначен для генерации бита четности (сигнал БЧ) после обработки 8-разрядной информации, поступившей с выходов внутреннего регистра Рг;<br />
<br />
внутренний регистр Рг; несет основную функциональную нагрузку в МБР. Запись в регистр осуществляется сигналом, вырабатываемым блоком БУЗ;<br />
<br />
блок управления записью БУЗ; предназначен для формирования сигнала записи информации с канала К1 в Рг, а также для выработки сигнала квитирования ЗВ.<br />
Блокируется сигналом, вырабатываемым БКЧ при ошибке по четности;<br />
<br />
: Рис. 6.22. Условное графическое обозначение микросхемы К588ИР1<br />
<br />
: Рис. 6.23. Структурная схема микросхемы К588ИР1<br />
<br />
буфер чтения БЧ; служит для приема информации с Рг и выдачи ее в канал Д2;<br />
<br />
блок управления чтением БУЧ; управляет работой БЧ, вырабатывая внутренний сигнал разрешения выдачи информации из БЧ в канал К2.<br />
Вырабатывает сигнал сопровождения информации, выдаваемой в канал К2.<br />
<br />
: Рис. 6.24. Временная диаграмма работы микросхемы К588ИР1 в режиме «Запись»<br />
<br />
: Рис. 6.25. Временная диаграмма работы микросхемы К588ИР1 в режиме «Чтение»<br />
<br />
Функционирование МБР начинается с подачи сигнала «0» на вход ВК. При подаче сигнала «0» на вход ЧТ происходит выдача информации в канал Д.2.<br />
При подаче на вход ЗП отрицательного фронта сигнала происходит запись в МБР информации с канала К2 (при отсутствии ошибки по четности).<br />
Если на входе ЧТ сигнал «1», то выходы канала К2 находятся в третьем состоянии.<br />
<br />
Сигнал ЧВ сообщает о наличии выдаваемой информации в канале К.2, ЗВ — о завершении процесса записи информации в МБР из канала К1.<br />
Введение этих сигналов обусловлено использованием общего принципа асинхронного обмена, который был применен при построении всех микросхем серии.<br />
<br />
{| class=standard<br />
|+ Таблица 6.19. Назначение выводов микросхемы К588ИР1<br />
! Номер<br />вывода !! Назначение !! Разряд !! Обозначение !! Тип<br />
|-<br />
| 1<br />
|-<br />
| 2<br />
|-<br />
| 3<br />
|-<br />
| 4<br />
|-<br />
| 5<br />
|-<br />
| 6<br />
|-<br />
| 7<br />
|-<br />
| 8<br />
|-<br />
| 9<br />
|-<br />
| 10<br />
|-<br />
| 11<br />
|-<br />
| 12<br />
|-<br />
| 13<br />
|-<br />
| 14<br />
|-<br />
| 15<br />
|-<br />
| 16<br />
|-<br />
| 17<br />
|-<br />
| 18<br />
|-<br />
| 19<br />
|-<br />
| 20<br />
|-<br />
| 21<br />
|-<br />
| 22<br />
|-<br />
| 23<br />
|-<br />
| 24<br />
|-<br />
| 25<br />
|-<br />
| 26<br />
|-<br />
| 27<br />
|-<br />
| 28<br />
|}<br />
<br />
: Таблица 6.20. Алгоритм функционирования микросхемы К588ИР1<br />
<br />
Сигнал БЧ может быть для МБР как входным, так и выходным.<br />
Если ФК = «О», то Б Ч является входным для МБР и информация принимается по каналу К1.<br />
В этом случае МБР осуществляет «свертку» информации по модулю 2 и сравнение полученного результата «свертки» с входным сигналом БЧ.<br />
В случае совпадения осуществляется операция записи в МБР с выработкой выходного сигнала ЗВ = «0».<br />
При несовпадении указанных сигналов формируется сигнал ОШ = «О», запись в МБР блокируется и сигнал ЗВ = «О» не выдается.<br />
<br />
Если на входе ФК сигнал «1», то МБР формирует бит четности информации, выдаваемой по каналу К2.<br />
<br />
Очистка регистра (установка в нуль) происходит при подаче на вход УСТ сигнала «0» независимо от сигналов на остальных входах МБР.<br />
<br />
Вход ИНВ используется для осуществления выдачи информации инверсным кодом.<br />
В табл. 6.20 наглядно показано действие управляющих сигналов.<br />
<br />
: Рис. 6.26. Временная диаграмма работы микросхемы К588ИР1 в режиме «Чтение — Запись»<br />
<br />
На рис. 6.24 … 6.26 приведены временные диаграммы работы МБР, в табл. 6.21 — его электрические параметры.<br />
<br />
При использовании микросхемы МБР необходимо между выводами ОШ , ЧВ, ЗВ и питанием подключать резисторы.<br />
Номинальные значения резисторов определяются так же, как и для микросхемы МПП (см. п. 6.3).<br />
<br />
{| class=standard<br />
|+ Таблица 6.21. Электрические параметры микросхемы К588ИР1<br />
! Параметр, единица измерения !! Обозначение !! Значение<br />
|-<br />
|}<br />
<br />
=== 6.8. МИКРОСХЕМА К588ВГ2 (КР588ВГ2) ===<br />
<br />
Микросхема является контроллером запоминающего устройства (КЗ У) и предназначена для создания ЗУ различной организации, совместимых с каналом микроЭВМ «Электроника-60».<br />
<br />
На рис. 6.27 представлено условное графическое обозначение, а в табл. 6.22 — назначение выводов микросхемы КЗУ.<br />
<br />
: Рис. 6.27. Условное графическое обозначение микросхемы К588ВГ2<br />
<br />
: Рис. 6.28, Структурная схема микросхемы К588ВГ2<br />
<br />
В состав структурной схемы КЗУ (рис. 6.28) входят следующие функциональные узлы:<br />
<br />
регистр адреса модуля ЗУ РА; предназначен для приема и запоминания старших разрядов адреса ЗУ.<br />
Защелкивание информации в РА происходит по отрицательному фронту сигнала ОБМ.<br />
Выходами подключен к первой группе входов ССА;<br />
<br />
схема селекции адреса ССА; предназначена для сравнения комбинаций разрядов адреса АД15 … АД13 с жестко заданным именным кодом модуля ЗУ (А 15 … А 13).<br />
Селектирование происходит при ОБМ = «0» и внутреннем сигнале разрешения селектирования. Последний вырабатывается блоком Б У О;<br />
<br />
блок управления обменом БУО; управляет работой блоков БУО и БВ;<br />
<br />
блок выборки ЗУ БВ; предназначен для формирования сигналов ВКО и ВКР,<br />
<br />
блок моделирования цикла ЗУ БМЦ; служит для настройки КЗУ на взаимодействие с блоками ЗУ, имеющими различные времена выборки.<br />
Настройка (моделирование) осуществляется установкой внешних времязадающих ДС-цепочек.<br />
Последние подключаются к выводам ЗДЧ и ЗДЗ.<br />
Вырабатывает сигнал ОТВ = «0» по положительному фронту сигнала ЗДЧ и отрицательному фронту сигнала ДЧТ.<br />
<br />
Функционирование КЗУ определяется управляющими сигналами ОБМ, ПЗП, АДО, ДЧТ и ДЗП (табл. 6.23).<br />
<br />
: Рис. 6.29. Временная диаграмма работы микросхемы К588ВГ2<br />
<br />
При выполнении цикла чтения данных из модуля ЗУ по сигналу ОБМ = «0» происходит защелкивание старших разрядов адреса АД13 … АД15 и сравнение их с заданным кодом на выводах А13 … А15 (рис. 6.29).<br />
При совпадении этих кодов на выводе ЗДЧ появляется сигнал «0» и формируются сигналы В ДО = ВД1 = «0».<br />
На выводе ЗД Ч появляется положительный фронт, длительность которого определяется внешней RС-цепочкой.<br />
После этого по приходу сигнала ДЧТ = «0» КЗУ формирует сигнал ОТВ = «0».<br />
При переходе сигнала ДЧТ в состояние «1» прекращается выборка модуля ЗУ (ВК0 = ВК1 = «1») и ОТВ переходит в состояние «1».<br />
Цикл завершается сигналом ОБМ = «1». КЗУ готов принять следующую информацию.<br />
<br />
{| class=standard<br />
|+ Таблица 6.22. Назначение выводов микросхемы К588ВГ2<br />
! Номер<br />вывода !! Назначение !! Разряд !! Обозначение !! Тип<br />
|-<br />
| 1<br />
|-<br />
| 2<br />
|-<br />
| 3<br />
|-<br />
| 4<br />
|-<br />
| 5<br />
|-<br />
| 6<br />
|-<br />
| 7<br />
|-<br />
| 8<br />
|-<br />
| 9<br />
|-<br />
| 10<br />
|-<br />
| 11<br />
|-<br />
| 12<br />
|-<br />
| 13<br />
|-<br />
| 14<br />
|-<br />
| 15<br />
|-<br />
| 16<br />
|-<br />
| 17<br />
|-<br />
| 18<br />
|}<br />
<br />
: Таблица 6.23. Операции микросхемы К588ВГ2<br />
<br />
При выполнении цикла записи информации в модуль ЗУ так же осуществляется сравнение кодов АД13 … АД15 с кодом на выводах А13 … А15.<br />
По сигналу ДЗП = «0» формируются сигналы ВКО и ВК1.<br />
Напряжение на выводе ЗДЗ начинает расти (фронт определяется внешней RС-цепочкой) и вызывает формирование сигнала ОТВ = «0».<br />
Вслед за этим формируется положительный фронт сигнала ДЗП. Цикл заканчивается сигналом ОБМ = «1».<br />
<br />
Следует отметить, что времязадающая RС-цепь подключается между выводами ЗДЧ и ЗДЗ и питанием (резистор и конденсатор, на каждый вывод подключаются параллельно).<br />
Кроме того, для обеспечения нормального функционирования необходимо подключать резистор между питанием и выводом ОТВ.<br />
Значение резистора находится из выражения, приведенного для микросхемы МПП.<br />
R и С времязадающих цепочек подбираются из условия согласования временной диаграммы работы модуля ЗУ с работой микросхемы СК.<br />
В табл. 6.24 приведены электрические параметры микросхемы КЗУ.<br />
<br />
{| class=standard<br />
|+ Таблица 6.24. Электрические параметры микросхемы К588ВГ2<br />
! Параметр, единица измерения !! Обозначение !! Значение<br />
|-<br />
|}<br />
<br />
=== 6.9. МИКРОСХЕМА К588ВТ1 (КР588ВТ1) ===<br />
<br />
Представляет селектор адреса (СА) и предназначен для выполнения функций селектирования одного из восьми регистров внешних устройств, подключенных к Q-шине.<br />
Микросхема СА может быть использована также для организации операций обмена содержимым внешних регистров как пословного, так и побайтного.<br />
Условное графическое обозначение СА представлено на рис. 6.30.<br />
В табл. 6.25 приведено назначение выводов СА. Структурная схема СА дана на рис. 6.31.<br />
<br />
: Рис. 6.30. Условное графическое обозначение микросхемы К588ВТ1<br />
<br />
: Рис. 6.31. Структурная схема микросхемы К588ВТ1<br />
<br />
В состав структурной схемы СА входят следующие функциональные узлы:<br />
<br />
регистр адреса РА; предназначен для буферизации поступающего 13-разрядного кода адреса.<br />
Старшая 9-разрядная его часть (АД4 … АД12) с выходов РА поступает на ССА;<br />
<br />
схема сравнения адреса ССА; предназначена для выполнения операции поразрядного сравнения кода, поступающего о выходов РА, с кодом А4 … А12;<br />
<br />
формирователь Ф; принимает выходную информацию с дешифратора ДШ; выдает сигналы ВК0 … ВК7;<br />
<br />
дешифратор ДШ; дешифрирует 3-разрядный код АД1 … АДЗ при наличии сигналов ОБМ = ВУ = «0»;<br />
<br />
схема управления СУ; обеспечивает взаимодействие микросхемы СА с Q-шиной и внешними устройствами.<br />
<br />
Функционирование СА сводится к выполнению пяти циклов (см. п. 6.4): DATI, DATO, DАТОВ, DАTIO, DАТІОВ.<br />
<br />
Выполнение DАТІ (ввода слова) начинается с установки (рис. 6.32) процессором адреса на шине АДО … АД12 и сигналов ВУ = ОБМ = «0».<br />
Микросхема СА сравнивает девять старших разрядов этого адреса с разрядами жестко «зашитыми» на выходах А4 … А12.<br />
Затем происходит дешифрация разрядов АД1 … АДЗ и выборка одного из восьми регистров одним из сигналов на шине ВК.<br />
<br />
{| class=standard<br />
|+ Таблица 6.25. Назначение выводов микросхемы К588ВТ1<br />
! Номер<br />вывода !! Назначение !! Разряд !! Обозначение !! Тип<br />
|-<br />
| 1<br />
|-<br />
| 2<br />
|-<br />
| 3<br />
|-<br />
| 4<br />
|-<br />
| 5<br />
|-<br />
| 6<br />
|-<br />
| 7<br />
|-<br />
| 8<br />
|-<br />
| 9<br />
|-<br />
| 10<br />
|-<br />
| 11<br />
|-<br />
| 12<br />
|-<br />
| 13<br />
|-<br />
| 14<br />
|-<br />
| 15<br />
|-<br />
| 16<br />
|-<br />
| 17<br />
|-<br />
| 18<br />
|-<br />
| 19<br />
|-<br />
| 20<br />
|-<br />
| 21<br />
|-<br />
| 22<br />
|-<br />
| 23<br />
|-<br />
| 24<br />
|}<br />
<br />
Процессор снимает адрес и сигнал ВУ и формирует сигнал ДЧТ = «О», по которому СА выставляет сигнал ЧТ = «О».<br />
Последний инициирует выбранное внешнее устройство на выдачу данных. Выдаваемые данные сопровождаются сигналом ГОТ = «О», по которому СА формирует сигнал ОСТ = «О».<br />
Получив данные, процессор снимает сигнал ДЧТ, а СА — сигнал ЧТ.<br />
Затем происходит цепочное снятие сигналов ГОТ, ОСТ, ОБМ и ВК.<br />
<br />
: Рис. 6.32. Временная диаграмма работы микросхемы К588ВТ1 в цикле DАТІ<br />
<br />
: Рис. 6.33. Временная диаграмма работы микросхемы К588ВТ1 в цикле DATO<br />
<br />
При выполнении цикла DATO (ввод слова) процессор выдает на шину адреса информацию АД0 … АД12 и выдает сигналы ВУ = ОБМ = ПЗП = «0» (рис. 6.33).<br />
Затем так же как и для цикла DАТІ происходит сравнение адреса, дешифрация 3-разрядного кода и выдача соответствующего разряда шины ВК.<br />
Процессор снимает адрес, сигналы ВУ и ПЗП и устанавливает данные и сигнал ДЗП = «0», по которому СА формирует сигналы ЗПС = ЗПМ = «0», разрешающие выбранному устройству запись данных.<br />
В ответ на поступившие данные внешнее устройство вырабатывает сигнал ГОТ = «0», сообщающий о том, что данные приняты.<br />
Затем СА устанавливает сигнал ОСТ = «0».<br />
Процессор снимает данные и сигнал ДЗП, по которому внешнее устройство снимает сигнал ГОТ, а СА — сигнал ОСТ.<br />
<br />
Следующим действием является снятие процессором сигнала ОБМ, по которому СА снимает сигнал с шины ВК.<br />
Выполнение цикла DАТОВ (вывод байта) отличается от цикла DАТО тем, что процессор сбрасывает сигнал ПЗП по снятию данных и в зависимости от значения разряда АДО производятся действия над младшим (АДО = «0») либо старшим (АДО = «1») байтами слова.<br />
При этом вырабатываются сигналы ЗПМ либо ЗПС = «0».<br />
<br />
: Рис. 6.34. Временная диаграмма работы микросхемы К588ВТ1 в цикле DATIO<br />
<br />
Цикл DATIO (ввод — модификация — вывод слова) является смешанным. Первая его половина выполняется как в цикле DАТІ (вплоть до выработки сигнала ОСТ = «0»).<br />
Вторая половина цикла выполняется как DАТО, начиная с момента снятия процессором адреса.<br />
Однако в этом цикле процессор не устанавливает сигнал ПЗП = «0» (рис. 6.34).<br />
<br />
Отличие выполнения цикла DATIOB (ввод — модификация — вывод байта) от DATIO в том, что при выводе данных процессор устанавливает сигнал ПЗП = «О».<br />
<br />
На рис. 6.32 … 6.34 приведены временные диаграммы выполнения циклов обмена.<br />
<br />
В табл. 6.26 даны электрические параметры микросхемы СА.<br />
<br />
{| class=standard<br />
|+ Таблица 6.26. Электрические параметры микросхемы К588ВT1<br />
! Параметр, единица измерения !! Обозначение !! Значение<br />
|-<br />
|}<br />
<br />
=== 6.10. ПРИМЕНЕНИЕ МИКРОСХЕМ СЕРИИ К588 (КР588) ===<br />
<br />
На рис. 6.35 приведен пример использования микросхемы СА при совместной работе с БИС УМ.<br />
На рис. 6.36 дана структурная схема модуля ОЗУ, на которой показано включение микросхем КЗУ, МБР и МПП.<br />
<br />
На рис. 6.37 приведена структурная схема процессора с системой команд микроЭВМ «Электроника-60».<br />
В состав процессора входят: устройство микропрограммного управления УМУ, операционный блок ОБ и распределитель информации РИ.<br />
<br />
По магистрали данных поступает информация, в качестве которой могут быть переданы в (из) процессор(а) данные, адреса и команды.<br />
Код команды поступает на устройство УМУ.<br />
Здесь происходит преобразование команды в помикрокомандную последовательность.<br />
Разрядность микрокоманды процессора — 25.<br />
Микросхемы УП с «прошивками» 0001 … 0004 предназначены для осуществления микропрограммного управления блоком ОБ (собственно АЛУ).<br />
Четыре БИС УП для управления ОБ необходимы прежде всего ввиду широкого набора команд «Электроники-60», а также в связи с ограниченными информационными возможностями каждой БИС УП.<br />
БИС УП 0005 предназначена для выдачи микрокоманд разрешения прерывания, а также для управления блоком распределения информации.<br />
<br />
: Рис. 6.35. Пример применения микросхемы К588ВР2 совместно с микросхемой К588ВТ1<br />
<br />
: Рис. 6.36. Структурная схема ОЗУ<br />
<br />
К сигналам разрешения прерывания ВУ относятся: ПРРО (МК.0) (с вектором 170); ПРР1 (МК.1) (с вектором 174); ПРР2 (МК2) (с вектором 270); ПРРЗ (МК.З) (с вектором 274); ПРРВС (МК4) (по внешнему событию); ПРР ОСТ (МК.5) (по «Останову»).<br />
<br />
К сигналам управления обменом данных относятся: ОБМ — обмен данными; ДЧТ, ДЗП — чтение, запись данных; ОТВ —<br />
ответ; ПЗП — запись байта; ЗПРО … ЗПРЗ — запросы прерывания ВУ с фиксированным вектором; ЗПР — запрос прерывания ВУ с вводимым вектором; ПРР — разрешение прерывания ВУ с вводимым вектором; ЗМ, РЗМ, ПЗ — сигналы обеспечения режима прямого доступа в память; ОСТ — аппаратный останов; АИП — авария источника питания; ПВС — прерывание по внешнему событию.<br />
<br />
Разряды микрокоманды МК7 … МКН управляют работой микросхемы СК.<br />
БИС СК обеспечивает выработку управляющих сигналов процессора КВ1, КВ2, которые инициируют прием командной (для БИС УП) либо операндной информации.<br />
В соответствии с этим прием информации происходит в операционный блок, либо в УМУ.<br />
Тип обмена, который обеспечивают сигналы квитирования (ответа) информации В, Ф1 — асинхронный.<br />
Ветвление (изменение последовательности выборки микрокоманд) происходит после анализа информации на магистрали МС.<br />
<br />
: Рис. 6.37. Структурная схема процессора микроЭВМ<br />
<br />
=== СПИСОК ЛИТЕРАТУРЫ ===<br />
<br />
9. Бобков В. А. и др. Микромощные микропроцессорные БИС серии К588 на дополняющих МДП-транзисторах // Электронная промышленность, 1979, вып. 10. С. 36—38.<br />
<br />
34. Интегральные микросхемы: Справочник / Тарабрин Б. В., Лунин Л. Ф., Смирнов Ю. Н. и др. Под ред. Б. В. Тарабрина. М.: Радио и связь, 1984. 528 с.<br />
<br />
45. Микропроцессорные комплекты интегральных схем: состав и структура: Справочник / Борисов В. С., Васенков, А. А., Малашевич Б. М. идр. Под ред, A. А. Васенкова, В. А. Шахнова. М.: Радио и связь, 1982. 192 с.<br />
<br />
46. Мильнер А. Д. и др. Принципы построения проблемно-ориентированного комплекса для программирования МП-устройств и система отладки на его базе // Машинное моделирование. М.: МДНТП им. Ф. Э. Дзержинского, 1980. С. 83—91.<br />
<br />
[[Категория:Микропроцессорные комплекты]]</div>Pantherhttps://emuverse.ru/w/index.php?title=588%D0%92%D0%A32&diff=3761588ВУ22024-03-26T07:40:11Z<p>Panther: категория</p>
<hr />
<div>{{Emuverse}}<br />
<br />
'''К588ВУ2''' ('''КР588ВУ2''', '''КА588ВУ2''') — микросхема управляющей памяти микрокоманд из [[Микропроцессорный комплект 588|микропроцессорного комплекта 588]].<br />
<br />
== Кодировки ==<br />
Всего есть 7 типов (кодировок) микросхем 588ВУ2: 0001..0007, вместе они реализуют систему команд компьютера «Электроника-60» (ОСТ 11 305.909-82), за исключением команд FIS (операций с плавающей запятой).<br />
<br />
{| class=standard<br />
! Кодировка !! Применение<br />
|-<br />
| 0001..0004 || Управление арифметико-логическим устройством (АЛУ) [[588ВС2]]. Четыре микросхемы 0001..0004 соединяются параллельно, на входы МС0..МС3 подаётся слово-состояние (Z, V, С, N), с выходов передаётся информация в АЛУ: 12-разрядный код является собственно микрокомандой для АЛУ; разряд 12 используется в качестве строба микрокоманды.<br />
|-<br />
| 0005 || Разрядами 0..6 вырабатывает сигналы разрешения прерывания, разряды 7..12 управляют системным контроллером [[588ВГ1]]<br />
|-<br />
| 0006 || Управление арифметическим умножителем 16×16 [[588ВР2]] для реализации команд расширенной арифметики (MUL, DIV, ASH, ASHC)<br />
|-<br />
| 0007 || Разрядами 0..6 вырабатывает сигналы разрешения прерывания, разряды 7..12 управляют системным контроллером 588ВГ1<br />
|}<br />
<br />
== Назначение выводов ==<br />
<br />
{| class=standard<br />
! Номер<br />вывода !! Назначение !! Обозначение<br />(Гришин) !! Обозначение<br />(Шахнов) !! Обозначение<br />(Хвощ) !! Тип<br />
|-<br />
| 1..4 || Магистраль состояния || МС0..МС3 || K2(0..3) || DS(0..3) || Вход<br />
|-<br />
| 5..20 || Шина команд || Д0..Д15 || K1(0..15) || DC(0..15) || Вход<br />
|-<br />
| 21 || Общий || GND || GND || —<br />
|-<br />
| 22..34 || Магистраль микрокоманд || МК0..МК12 || MNS0..12 || MI(0..12) || Вход<br />
|-<br />
| 35 || Не используется || — || — || — || —<br />
|-<br />
| 36 || Завершение выполнения микрокоманды || Ф1 || F1 || F || Вход<br />
|-<br />
| 37 || Установка / Пуск 1 || R1 || R1 || R1 || Вход<br />
|-<br />
| 38 || Конец команды || КК || ENDNS || END || Вход-выход<br />
|-<br />
| 39 || Установка / Пуск 2 || R0 || R0 || R0 || Вход<br />
|-<br />
| 40 || Команда принята || П || IPA || S || Выход<br />
|-<br />
| 41 || Команда выдана || В || OPA || STB || Вход<br />
|-<br />
| 42 || Напряжение питания || Ucc || Ucc || Ucc || —<br />
|}<br />
<br />
== Описание (Гришин) ==<br />
[[Файл:Grishin-6-1.png|210px|thumb|Рис. 6.1. Условное графическое обозначение микросхемы К588ВУ2]]<br />
Представляет управляющую память микрокоманд (УП). Основой УП являются программируемые логические матрицы ПЛМ. Программирование УП выполняют на заводе-изготовителе масочным способом. В настоящее время выпускают семь типов УП — К588ВУ2-0001 … К588ВУ2-0007. Кодировки микросхем УП полностью реализуют систему команд микроЭВМ «Электроника-60» и операции расширенной арифметики. К последним относятся команды умножения, деления, сдвига. Кодировка К588ВУ2-0005 содержит микропрограммы работы микросхемы системного контроллера.<br />
<br />
На рис. 6.1 и 6.2 изображены соответственно условное графическое обозначение и структурная схема БИС УП. В табл. 6.2 дано назначение выводов этой микросхемы.<br />
<br />
В состав структурной схемы БИС УП входят следующие функциональные узлы:<br />
<br />
регистр команд РК; принимает команду по шине команд Д;<br />
<br />
программируемые логические матрицы ПЛМ1 и ПЛМ2; в них запрограммированы не только информация о выбираемой<br />
микрокоманде и адрес следующей микрокоманды, но и разряды, управляющие внутренними узлами БИС УП;<br />
<br />
регистры состояния PC и следующего адреса РСА; принимают соответственно признаки результата выполнения операции и адрес следующей микрокоманды. Информация состояния поступает, как правило, из арифметического устройства и включает 4-разрядное слово-состояние, состоящее из признаков нулевого результата, переполнения, переноса из старшего знакового разряда (Z, V, С, N);<br />
<br />
регистры управления РУ и микрокоманд РМ;<br />
<br />
блок синхронизации БСЗ; вырабатывает управляющие сигналы записи во внутренние регистры БИС УП и сигнал квитирования П, свидетельствующий об окончании приема команды. На БСЗ поступают разряды регистра РУ.<br />
<br />
Функционирование БИС УП начинается с подачи на входы R0 и R1 отрицательных сигналов, которые переводят БИС в исходное состояние.<br />
Длительность сигналов R0 и R1 не менее 500 нс.<br />
<br />
Работа микросхемы УП начинается по положительному фронту сигнала R0 (либо R1). По отрицательному сигналу В происходит прием<br />
команды во входной регистр РК, а также информации состояния в регистр PC. После приема этой информации БИС УП выдает отрицательный сигнал П, свидетельствующий о том, что команда принята. Отрицательный фронт сигнала П инициирует положительный фронт сигнала В, который, в свою очередь, сбрасывает сигнал П в состояние «1».<br />
<br />
Затем начинается выдача первой микрокоманды принятой команды. Положительный фронт сигнала Ф1 инициирует выдачу очередной микрокоманды на магистраль МК. Микрокоманда может находиться на магистрали до отрицательного фронта сигнала Ф1. После этого происходит «подброс в единицу» магистрали МК. Если к этому времени сформирована следующая микрокоманда, то происходит ее запись в РМ с последующей выдачей. Одновременно с выдачей последней микрокоманды текущей команды выдается сигнал КК, сигнализирующий контроллеру (либо внешнему ЗУ) о необходимости подачи новой команды.<br />
<br />
На рис. 6.3 приведена временная диаграмма работы БИС УП.<br />
<br />
Реализация всей системы команд микроЭВМ «Электроника-60» и ограниченные возможности внутренних ПЛМ БИС УП привели к необходимости использования не менее пяти «зашивок» микрокоманд в БИС УП (0001 … 0005). Первые четыре реализуют собственно команды «Электроники-60», пятая — управляет системным контроллером и разрешением прерываний. Четыре микросхемы БИС УП (0001 … 0004) соединяются параллельно (по выходам) и выдают информацию в арифметическое устройство (АУ); 12-разрядный код является собственно микрокомандой для АУ. Разряд 12 используется в качестве строба микрокоманды. Микросхема К588ВУ2-0005 разрядами 0…6 вырабатывает сигналы разрешения прерывания, разряды 7…12 управляют микросхемой К588ВГ1 (КР588ВГ1).<br />
<br />
В табл. 6.3 приведены основные электрические параметры БИС УП.<br />
<br />
<gallery><br />
Grishin-6-1.png|Рис. 6.1. Условное графическое обозначение микросхемы К588ВУ2<br />
Grishin-6-2.png|Рис. 6.2. Структурная схема микросхемы К588ВУ2<br />
Grishin-6-3.png|Рис. 6.3. Временная диаграмма работы микросхемы К588ВУ2<br />
</gallery><br />
<br />
== Описание (Шахнов) ==<br />
[[Файл:Shahnov-8-6.png|210px|thumb|Рис. 8.6. Условное графическое обозначение микросхемы К588ВУ2]]<br />
Микросхема К588ВУ2 — микропрограммная управляющая память (УП), предназначена для применения совместно с микросхемами К588ВС2, К588ВГ1 в процессоре микро-ЭВМ.<br />
<br />
Условное графическое обозначение микросхемы приведено на рис. 8.6, назначение выводов — в табл. 8.12, структурная схема показана на рис. 8.7, временная диаграмма работы — на рис. 8.8.<br />
<br />
В состав микросхемы входят: две программируемые логические матрицы (ПЛМ1, ПЛМ2); блок синхронизации (БС); регистр команд (РК); регистр состояний (РС); регистр следующего адреса (РСА); регистр микрокоманд (РМ); блок программируемых инверторов (БПИ); схема выдачи (СВ).<br />
<br />
Связи ПЛМ1, ПЛМ2 и подключение БПИ программируются фотошаблоном в процессе изготовления микросхемы.<br />
<br />
Регистры команд и состояний предназначены для приема и хранения поступающей извне информации, РСА — для запоминания 7-разнядного следующего адреса, считанного из ПЛМ2, РМ — для записи считанной микрокоманды.<br />
<br />
Блок синхронизации предназначен для формирования внутренних сигналов, задающих временную диаграмму работы УП.<br />
<br />
Схема выдачи предназначена для организации выдачи микрокоманды из РМ на внешние выводы.<br />
<br />
Для обеспечения правильной работы УП после включения питания следует провести начальную установку. Для этого на один из выводов R0 или R1 подается импульс длительностью не менее 0,5 мкс. Этот импульс вызывает установку БС в исходное состояние и соответствующего значения РСА. Одновременная подача синфазных импульсов по входам R1 и R0 не допускается.<br />
<br />
По положительному фронту сигнала на выводе R0 или R1 УП переходит к формированию микрокоманды. Сформированная микрокоманда записывается в РМ, и УП переходит к формированию следующей микрокоманды. Одновременно с хранением и выдачей микрокоманды в РМ УП формирует следующую микрокоманду.<br />
<br />
По отрицательному фронту сигнала на входе F1 прекращается выдача микрокоманды и устанавливается высокий уровень на выводах микрокоманды. Если к этому моменту сформирована следующая микрокоманда, то происходит ее запись в РМ с последующей выдачей.<br />
<br />
Если в микрокоманде сформирован признак ENDNS, то на выводе ENDNS формируется высокий уровень. Для дальнейшей работы необходимо подать сигнал на вывод OPA. При наличии сигнала на выводе OPA происходит прием информации с магистрали K1 во входной регистр РК и по магистрали K2 в регистр РС.<br />
<br />
Для правильного приема информации необходимо устанавливать и снимать информацию одновременно с отрицательным н положительным фронтами сигнала OPA соответственно.<br />
<br />
Приняв информацию в РК и РС, УП отвечает по выводу IPA и устанавливает активный низкий уровень на выводе ENDNS. По снятии сигнала на выводе OPA снимается сигнал IPA.<br />
<br />
Приняв информацию в РК, УП приступает к формированию новой микрокоманды.<br />
<br />
Прием информации в РС может быть осуществлен также под управлением специального внутреннего сигнала, формируемого в ПЛМ2 одновременно с микрокомандой.<br />
В этом случае информация в РС принимается по отрицательному фронту сигнала на входе F1, сбрасывающего эту микрокоманду.<br />
<br />
С целью расширения объема управляющей памяти несколько микросхем могут быть объединены в блок управляющей памяти. Структурная схема такого объединения микросхем приведена на рис. 8.9.<br />
<br />
Основные параметры К588ВУ2 приведены в табл. 8.13.<br />
<br />
<gallery><br />
Файл:Shahnov-8-6.png|Рис. 8.6. Условное графическое обозначение К588ВУ2<br />
Файл:Shahnov-8-7.png|Рис. 8.7. Структурная схема К588ВУ2<br />
Файл:Shahnov-8-8.png|Рис. 8.8. Временная диаграмма работы К588ВУ2<br />
</gallery><br />
<br />
== Описание (Хвощ) ==<br />
[[Файл:Hvosch-6-2.png|thumb|Рис. 6.2]]<br />
Микросхема УП предназначена для управления работой микроЭВМ и сочетает в себе функции БИС блока микропрограммного управления и ПЗУ-микрокоманд. Микросхемы с номерами кодировок 0001-0004 предназначены для управления ЦПЭ, а БИС с кодировкой 0005 — для управления системным контроллером в составе процессоров с системой команд ЭВМ «Электроника-60», включая операции расширенной арифметики (умножение, деление, сдвиги — MUL, DIV, ASH, ASHC).<br />
<br />
''Структура УП'' показана на рис. 6.2, ''а''. В состав БИС входят: регистр адреса микрокоманды (RGA); регистр состояний (RGS); регистр команд (RGC); конвейерный регистр микрокоманд (RGMI); блок синхронизации (CLG); программируемая логическая матрица (PLA); регистр кодов управления УП (MIR).<br />
<br />
Описание выводов УП приведено в табл. 6.7. Низкий потенциал на входах R0 или R1 устанавливают БИС в исходное состояние, положительный фронт переводит ее в состояние формирования микрокоманды. Считанные из PLA микрокоманды содержат три поля: адреса следующей микрокоманды (RGA); кода текущей микрокоманды (RGMI); кода управления (MIR).<br />
<br />
Содержимое MIR задает операции по записи признаков в RGS, команд в RGS и адресов в RGA. Если в микрокоманде сформирован признак конца команды (END), то на одноименный вывод подается сигнал высокого потенциала (t<sub>Cn</sub>). Для дальнейшей работы необходимо сменить код команды в RGS, что сопровождается квитированием приема кода по шине DC(15-0) сигналами S — STB. Прием низкого потенциала на входе STB инициирует начало обработки новой команды и считывание первой ее микрокоманды (t<sub>C1</sub>) из PLA.<br />
<br />
''Временная диаграмма работы УП'' приведена на рис. 6.2, ''б''. Синхронизация УС с устройствами, исполняющими микрокоманды, производится по выводам F — S. Одновременно с исполнением текущей микрокоманды, хранящейся в RGMI, УП производит выборку из PLA следующей. По отрицательному фронту сигнала F прекращается выдача микрокоманды и происходит «подброс» в высокий потенциал состояния выводов MI(12-0). Если к этому времени сформирована следующая микрокоманда, то происходит ее запись в регистры с последующей выдачей. Ниже приведены основные временные параметры БИС:<br />
<br />
: Время установки в исходное состояние ''t<sub>R</sub>'', нc . . . . . . . ≥ 500<br /><br />
: Время приема команды ''t<sub>BE</sub>'', нс . . . . . . . ≤ 350<br /><br />
: " цикла исполнения микрокоманды ''t<sub>C</sub>'', мкс . . . . . . . ≥ 0,8<br />
<br />
''Форматы микрокоманд'', управляющих ЦПЭ и интерфейсом микроЭВМ, приведены на рис. 6.2, ''в''. Один из разрядов микрокоманд для ЦПЭ и СК играет роль сигнала выборки кристалла (CS) и кодируется во всех микрокомандах нулем.<br />
<br />
== Система команд ==<br />
Система команд и распределение команд по кодировкам микросхем 588ВУ2, согласно [[Немига/ТО#Приложение_1.]]<br />
<pre><br />
───────────────────┬───────────────┬─────────────────────┬─────────<br />
Код команды │ Признаки │ │ Номер<br />
──────────┬────────┼───┬───┬───┬───┤ Содержание команды │кодировки<br />
Мнемоника │8-ричный│ N │ Z │ V │ C │ │<br />
──────────┼────────┼───┼───┼───┼───┼─────────────────────┼─────────<br />
CLR (A) │*050DD │ 0 │ 1 │ 0 │ 0 │Очистка │ 0001<br />
COM (A) │*051DD │ + │ + │ 0 │ 1 │Инвертирование │ 0001<br />
INC (A) │*052DD │ + │ + │ + │ - │Инкрементация │ 0001<br />
DEC (A) │*053DD │ + │ + │ + │ - │Декрементация │ 0001<br />
NEG (A) │*054DD │ + │ + │ + │ + │Дополнение │ 0001 <br />
ADC (A) │*055DD │ + │ + │ + │ + │Сложение с переносом │ 0001<br />
SEC (A) │*056DD │ + │ + │ + │ + │Вычитание переноса │ 0001<br />
TST (A) │*057DD │ + │ + │ 0 │ 0 │Проверка │ 0001<br />
ROR (A) │*060DD │ + │ + │ + │ + │Сдвиг цикл.правый │ 0001<br />
ROL (A) │*061DD │ + │ + │ + │ + │Сдвиг цикл.левый │ 0001<br />
ASR (A) │*062DD │ + │ + │ + │ + │Сдвиг арифм.правый │ 0001<br />
ASL (A) │*063DD │ + │ + │ + │ + │Сдвиг арифм.левый │ 0001<br />
MOV (A,B) │*1SSDD │ + │ + │ 0 │ - │Пересылка │ 0001<br />
CMP (A,B) │*2SSDD │ + │ + │ + │ + │Сравнение │ 0001<br />
BIT (A,B) │*3SSDD │ + │ + │ 0 │ - │Проверка разрядов │ 0001<br />
BIC (A,B) │*4SSDD │ + │ + │ 0 │ - │Очистка разрядов │ 0001<br />
BIS (A,B) │*5SSDD │ + │ + │ 0 │ - │Логическое "ИЛИ" │ 0001<br />
ADD (A,B) │06SSDD │ + │ + │ + │ + │Сложение │ 0001<br />
SUB (A,B) │16SSDD │ + │ + │ + │ + │Вычитание │ 0001<br />
──────────┼────────┼───┼───┼───┼───┼─────────────────────┼─────────<br />
NOP │000240 │ │ │ │ │Нет операции │ 0002<br />
CLC │000241 │ - │ - │ - │ 0 │Очистка "С" │ 0002<br />
CLV │000242 │ - │ - │ 0 │ - │Очистка "V" │ 0002<br />
CLZ │000244 │ - │ 0 │ - │ - │Очистка "Z" │ 0002<br />
CLN │000250 │ 0 │ - │ - │ - │Очистка "N" │ 0002<br />
SEC │000261 │ - │ - │ - │ 1 │Установка "С" │ 0002<br />
SEV │000262 │ - │ - │ 1 │ - │Установка "V" │ 0002<br />
SEZ │000264 │ - │ 1 │ - │ - │Установка "Z" │ 0002<br />
SEN │000270 │ 1 │ - │ - │ - │Установка "N" │ 0002<br />
SCC │000277 │ 1 │ 1 │ 1 │ 1 │Установка "С", "V" │ 0002<br />
│ │ │ │ │ │ "Z", "N" │<br />
CCC │000257 │ 0 │ 0 │ 0 │ 0 │Очистка "С", "V" │ 0002<br />
│ │ │ │ │ │ "Z", "N" │ <br />
SWAB │0003DD │ + │ + │ 0 │ 0 │Перестановка байтов │ 0002<br />
MARK │0064NN │ - │ - │ - │ - │Восстановление указа-│ 0002<br />
│ │ │ │ │ │теля стека │ <br />
XOR (R,A) │074RDD │ + │ + │ 0 │ - │Исключающее "ИЛИ" │ 0002<br />
BR (A) │0004XXX │ │Ветвление безусловное│ 0002<br />
BNE (A) │0010XXX │ Z=0 │Ветвление, если =0 │ 0002<br />
BEQ (A) │0014XXX │ Z=1 │Ветвление, если =0 │ 0002<br />
BGE (A) │0020XXX │ NOV=0 │Ветвление, если >0 │ 0002<br />
BLT (A) │0024XXX │ NOV=1 │Ветвление, если <0 │ 0002<br />
BGT (A) │0030XXX │ ZV(NOV)?0 │Ветвление, если >0 │ 0002<br />
BLE (A) │0034XXX │ ZV(NOV)=1 │Ветвление, если <0 │ 0002<br />
SOB (A) │077RNN │ Z=0 │Вычитание единицы, │ 0002<br />
│ │ │если результат =0 │ 0002<br />
BLR (A) │1000XXX │ N=0 │Ветвление, если + │ 0002<br />
BMI (A) │1004XXX │ N=1 │Ветвление, если - │ 0002<br />
BHI (A) │1010XXX │ ZVC=0 │Ветвление, если > │ 0002<br />
BLOS (A) │1014XXX │ ZVC=1 │Ветвление, если < │ 0002<br />
BVC (A) │1020XXX │ V=0 │Ветвление, если нет │ 0002<br />
│ │ │переполнения │ 0002<br />
BVS (A) │1024XXX │ V=1 │Ветвление, если │ 0002<br />
│ │ │переполнение │ 0002<br />
BHIS (A) │1030XXX │ C=0 │Ветвление, если нет │ 0002<br />
│ │ │переноса │ <br />
BLO (A) │1034XXX │ C=1 │Ветвление, если │ 0002<br />
│ │ │перенос │ <br />
SXT (A) │0067DD │ - │ + │ 0 │ - │Расширение знака │ 0002<br />
MTPS (A) │1064SS │ + │ + │ + │ + │Запись ССП │ 0002<br />
MFPS (A) │1067DD │ - │ + │ 0 │ - │Чтение ССП │ 0002<br />
──────────┼────────┼───┴───┴───┴───┼─────────────────────┼─────────<br />
HALT │000000 │ │Останов │ 0004<br />
WAIT │000001 │ │Ожидание │ 0004<br />
RTI │000002 │ │Возврат из прерыва- │ 0004<br />
│ │ │ния │ <br />
BPT │000003 │ │Прерыв.для отладки │ 0004<br />
IOT │000004 │ │Прерыв.для ВВ/ВЫВ │ 0004<br />
RESET │000005 │ │Сброс │ 0004<br />
RTT │000006 │ │Возврат из прерыва- │ 0004<br />
│ │ │ния │ <br />
JMP (A) │0001DD │ │Безусловный переход │ 0004<br />
RTS (R) │00020R │ │Возврат из подпрогр. │ 0004<br />
JSR (R,A) │0004RDD │ │Переход к подпрограм-│ 0004<br />
│ │ │ме │ <br />
EMT │104000- │ │Командное прерывание │ 0004<br />
│104377 │ │ │ <br />
TRAP │104400- │ │Командное прерывание │ 0004<br />
│104777 │ │ │<br />
──────────┼────────┼───┬───┬───┬───┼─────────────────────┼─────────<br />
MUL (R,A) │070RSS │ + │ + │ 0 │ + │Умножение │ 0006<br />
DIV (R,A) │071RSS │ + │ + │ + │ + │Деление │ 0006<br />
ASH (R,A) │072RSS │ + │ + │ + │ + │Многоразрядный сдвиг │ 0006<br />
ASHC (R,A)│073RSS │ + │ + │ + │ + │Сдвиг комбинированный│ 0006<br />
──────────┴────────┴───┴───┴───┴───┴─────────────────────┴─────────<br />
<br />
П р и м е ч а н и я:<br />
1. R - восьмеричный код РОН (0-7);<br />
SS - поле адресации операнда источника;<br />
DD - поле адресации операнда приемника;<br />
* - операция производится над байтом, если * = 1<br />
над словом, если * = 0;<br />
XXX - смещение (8 разрядов);<br />
NN - смещение (6 разрядов).<br />
2. В графе "признаки" указаны значения признаков N,Z и C,V<br />
слова состояния процессора, которые устанавливаются после выполнения<br />
процессором каждой команды. Знак "+" означает, что данный разряд ССП<br />
будет установлен в "0" или "1" в зависимости от результата выполне-<br />
ния команды. Знак "-" означает, что команда не оказывает воздействия<br />
на данный разряд ССП.<br />
3. B графе 8 указан номер кодировки микросхемы КР588ВУ2‚ отве-<br />
чающей за выполнение соответствующей команды.<br />
</pre><br />
<br />
== Литература ==<br />
* '''[Гришин]''' Г. Г. Гришин, А. А. Мошков, О. В. Ольшанский, Ю. А. Овечкин. Микропроцессоры: Справочное пособие для разработчиков судовой РЭА. Л.: Судостроение, 1987. [[К588/Гришин|Глава 6. МИКРОПРОЦЕССОРНЫЙ КОМПЛЕКТ СЕРИИ К588 (КР588)]]<br />
* '''[Шахнов]''' Микропроцессоры и микропроцессорные комплекты интегральных микросхем: Справочник. В 2 т. / Под ред. В. А. Шахнова. — М.: Радио и связь, 1988. — T. 1. — 368 с.: ил.<br />
* '''[Хвощ]''' Хвощ С. Т. Микропроцессоры и микроэвм в системах автоматического управления.<br />
<br />
[[Категория:Микропроцессорные комплекты]]</div>Pantherhttps://emuverse.ru/w/index.php?title=588%D0%92%D0%931&diff=3760588ВГ12024-03-26T07:39:52Z<p>Panther: категория</p>
<hr />
<div>{{Emuverse}}<br />
<br />
'''К588ВГ1''' — микросхема системного контроллера из [[Микропроцессорный комплект 588|микропроцессорного комплекта 588]].<br />
<br />
== Назначение выводов ==<br />
<br />
{| class=standard<br />
! Номер<br />вывода !! Назначение !! Обозначение<br />(Гришин) !! Обозначение<br />(Шахнов) !! Тип<br />
|-<br />
| 1 ||rowspan=2| Регистр состояния || T || T || Вход<br />
|-<br />
| 2 || P || P || Вход<br />
|-<br />
| 3 || Подключение времязадающей цепи || КОШ || RC || Вход<br />
|-<br />
| 4..7 || Шина прерывания || ПР3..0 || B4..1 || Выход<br />
|-<br />
| 8 || Начальная установка || R || R || Выход<br />
|-<br />
| 9 ||rowspan=3| Квитирование выдачи || КВ1 || КВ1 || Вход-выход<br />
|-<br />
| 10 || КВ2 || КВ2 || Выход<br />
|-<br />
| 11 || КВ3 || КВ3 || Выход<br />
|-<br />
| 12 || Квитирование приема || КП || KP || Вход-выход<br />
|-<br />
| 13..17 || Шина микрокоманд || МК4..0 || MK4..0 || Вход<br />
|-<br />
| 18 || Строб микрокоманды || ВК || CS || Вход<br />
|-<br />
| 19 || Квитирование приема микрокоманды || Ф1 || F1 || Выход<br />
|-<br />
| 20 || Начальный пуск || НП || PUM || Вход<br />
|-<br />
| 21 || Общий || GND || GND || —<br />
|-<br />
| 22 || Сброс канала || УСТ || INIT || Выход<br />
|-<br />
| 23 ||rowspan=7| Линии управления обменом || ЛУО3 || WTBT || Выход<br />
|-<br />
| 24 || ЛУО0 || SYNC || Выход<br />
|-<br />
| 25 || ЛУО1 || DIN || Выход<br />
|-<br />
| 26 || ЛУО2 || DOUT || Выход<br />
|-<br />
| 27 || ЛУО4 || RPLY || Выход<br />
|-<br />
| 28 || ЛУО5 || IRQ || Вход<br />
|-<br />
| 29 || ЛУО6 || IAKO || Выход<br />
|-<br />
| 30 || Внешний сигнал прерывания || АИП || POK || Вход<br />
|-<br />
| 31 ||rowspan=4| Запрос прерывания с фиксированными векторами || ЗПР0 || INT0 || Вход<br />
|-<br />
| 32 || ЗПР3 || INT3 || Вход<br />
|-<br />
| 33 || ЗПР2 || INT2 || Вход<br />
|-<br />
| 34 || ЗПР1 || INT1 || Вход<br />
|-<br />
| 35 || Линии управления обменом || ЛУО7 || EVNT || Вход<br />
|-<br />
| 36 || Внешний сигнал прерывания || ОСТ || HALT || Вход<br />
|-<br />
| 37 ||rowspan=3| Линии передачи управления || ЛПУ1 || DMG || Выход<br />
|-<br />
| 38 || ЛПУ2 || SACK || Вход<br />
|-<br />
| 39 || ЛПУ0 || DMR || Вход<br />
|-<br />
| 40 ||rowspan=2| Управление приемопередатчиком || С1 || C1 || Выход<br />
|-<br />
| 41 || С2 || C2 || Выход<br />
|-<br />
| 42 || Напряжение питания || Uco || Ucc || —<br />
|}<br />
<br />
== Описание (Гришин) ==<br />
<br />
Большая интегральная схема системного контроллера (БИС СК.) предназначена для согласования и сопряжения процессора на базе микросхем серии К588 (КР588) с каналом типа Q-шина.<br />
Назначение выводов БИС СК дано в табл. 6.10. На рис. 6.10 и 6.11 изображены соответственно условное обозначение и структурная схема БИС СК.<br />
<br />
В состав структурной схемы БИС СК входят следующие функциональные узлы: блок прерываний БП, дешифратор микрокоманд ДШМ, блок управления обменом данных БУО, блок управления прямым доступом к памяти БУНД, блок правления магистральными приемопередатчиками БУПП, блок синхронизации БСЗ.<br />
<br />
Следует отметить, что линии управления обменом ЛУО включают следующие сигналы обмена (см. рис. 6.11): ОБМ, ДЧТ, ДЗП, ПЗП, ОТВ, ЗПР, ПРР и ПВС.<br />
<br />
Линии передачи управления ЛПУ включают сигналы ЗМ, РЗМ и ПЗ (см. рис. 6.11).<br />
<br />
БИС СК предназначена для связи внутреннего интерфейса процессора, построенного на базе микросхем серии К588 (КР588), с внешним стандартным интерфейсом канала Q-шина.<br />
<br />
Внутренний интерфейс процессора содержит сигналы, обеспечивающие работу процессора, состоящего из магистральных приемопередатчиков, управляющей памяти и арифметического устройства.<br />
Это сигналы квитирования БИС АУ и БИС УП, 16-разрядная информационная магистраль, 4-разрядная магистраль кода прерывания, сигналы управления магистральными приемопередатчиками.<br />
Сигналы квитирования КВ1 … КВЗ и КП обеспечивают передачу информации по 16-разрядной магистрали.<br />
Информация может включать команду, данные, адрес, вектор прерывания.<br />
Магистраль кода прерывания ПРЗ … ПРО служит для сообщения в УП о том, какое прерывание в данный момент обслуживается.<br />
<br />
Сигналы управления приемопередатчиками С1 и С2 предназначены для организации двунаправленного обмена информацией через МПП.<br />
<br />
: Рис. 6.10. Условное графическое обозначение микросхемы К588ВГ1<br />
<br />
: Рис. 6.11. Структурная схема микросхемы К588ВГ1<br />
<br />
Внешний интерфейс процессора содержит сигналы, обеспечивающие работу всех устройств канала. Это информационные шины, шины управления вводом-выводом, шины прерываний и шины прямого доступа к памяти. Сигналы на шинах ввода-вывода<br />
ОБМ, ДЧТ, ДЗП, ПЗП, ОБМ обеспечивают передачу по двунаправленной шине данных Д15 … ДО команд, адресов, данных и векторов прерываний.<br />
<br />
Шины и сигналы прерываний ЗПРЗ…ЗПР0, ОСТ, АИП, ЗПР, ПРР, ЛВС служат для приема запросов на прерывание и для сброса прерываний от внешних устройств.<br />
<br />
Шины прямого доступа ЗМ, РЗМ, ПЗ служат для приема запросов на прямой доступ к памяти и сброса этих запросов.<br />
<br />
Сигнал УСТ служит для приведения системы в исходное состояние, КОШ — вывод для подключения внешней времязадающей цепи для формирования длительности сигналов УСТ, ДЧТ или ДЗП.<br />
<br />
БИС СК управляется микрокомандно. В табл. 6.11 приведена система микрокоманд БИС СК. Код микрокоманды поступает на входы МК4 … МКО.<br />
<br />
{| class=standard<br />
|+ Таблица 6.11. Система микрокоманд микросхемы К588ВГ1<br />
! Восьмерич-<br />ный код !! Обозначение !! Назначение<br />
|-<br />
| 00 || INIT || Инициализация работы БИС СК<br />
|-<br />
| 01 || LPSW || Загрузка слова состояния программы<br />
|-<br />
| 02 || DATIV || Ввод вектора прерывания<br />
|-<br />
| 03 || WAIT || Ожидание<br />
|-<br />
| 04 || IE || Разрешение прерывания<br />
|-<br />
| 05 || ID || Запрет прерывания<br />
|-<br />
| 10 || DATI || Ввод слова<br />
|-<br />
| 11 || DATIK || Ввод команды<br />
|-<br />
| 12 || DATO || Вывод слова<br />
|-<br />
| 13 || DATOB || Вывод байта<br />
|-<br />
| 14 || DATIO || Ввод-вывод слова<br />
|-<br />
| 15 || DATIOB || Ввод-вывод байта<br />
|-<br />
| 20 || RTO || Сброс прерывания INTO<br />
|-<br />
| 21 || NH || Запрет прерывания HALT<br />
|-<br />
| 22 || RT1 || Сброс прерывания INT1<br />
|-<br />
| 23 || RT2 || Сброс прерывания INT2<br />
|-<br />
| 24 || RT3 || Сброс прерывания INT3<br />
|-<br />
| 25 || RH || Сброс прерывания HALT<br />
|-<br />
| 26 || RTM || Сброс триггера маски<br />
|-<br />
| 27 || RES || Начальная установка<br />
|-<br />
| 30 || RTE || Сброс триггера ошибки<br />
|-<br />
| 31 || RTP || Сброс триггера РОК<br />
|-<br />
| 32 || CTO || Очистка триггера ТО<br />
|-<br />
| 33 || NTI || Запрет прерывания<br />
|-<br />
| 34 || REV || Сброс триггера<br />
|-<br />
| 37 || NOP || Нет операции<br />
|}<br />
<br />
Рассмотрим выполнение трех микрокоманд, управляющих процессами ввода и вывода информации.<br />
<br />
Микрокоманда ввода команды DАТІК (рис. 6.12) выполняется следующим образом.<br />
<br />
На вывод КВ1 подается сигнал из БИС АУ о том, что на магистрали данных находится адрес команды. По этому сигналу БИС СК устанавливает сигналы разрешения обмена ОБМ = «0» и чтения данных ДЧТ = «0» для ОЗУ, а также разрешает БИС АУ снять с магистрали данных адрес команды, выдав сигнал КП = «О».<br />
<br />
После снятия адреса команды БИС АУ выдает сигнал на вывод КВ1 = «1», на что БИС СК отвечает сигналом КП = «1».<br />
<br />
Затем на вывод ОСТ подается сигнал «0», свидетельствующий о том, что на магистрали данных находится команда и БИС СК разрешает УП принять команду. Кроме этого, при отсутствии запросов на прерывание БИС СК выдает сигналы КВ2 = КВЗ = «0». Если к данному моменту запрос на прерывание поступит, то БИС СК вырабатывает сигнал КВЗ = «0».<br />
<br />
После приема команды БИС УП отвечает сигналом КП = «0», по которому БИС СК вырабатывает сигналы КВ2 — КВЗ = «1», а также сигнал ДЧТ — «1».<br />
<br />
После снятия сигнала ОСТ (ОСТ = «1») БИС СК снимает сигнал ОБМ (ОБМ = «1»).<br />
<br />
Выполнение микрокоманды ввода данных ОАТІ (рис. 6.13) начинается с подачи из БИС А У на БИС СК сигнала КВ1 = «0», который свидетельствует о том, что адрес данных находится на магистрали.<br />
<br />
По этому сигналу БИС СК устанавливает сигналы ОБМ = «0», ДЧТ = «0» (для ОЗУ или ВУ). Затем, после задержки относительно сигнала ОБМ, БИС СК устанавливает сигнал КП = «0», который разрешает снять адрес с магистрали данных. После этого АУ вырабатывает сигнал КВ1 = «1», по которому БИС СК устанавливает сигнал КП = «1».<br />
<br />
: Рис. 6.12. Временная диаграмма выполнения микрокоманды DАТІК<br />
<br />
: Рис. 6.13. Временная диаграмма выполнения микрокоманды DАТІ<br />
<br />
На БИС СК подается сигнал ОСТ = «0» (данные находятся на магистрали). По этому сигналу БИС СК устанавливает сигнал КВ1 = «0», разрешая БИС АУ принять данные.<br />
После окончания приема данных БИС АУ вырабатывает сигнал КП = «0». Вслед за этим БИС СК сбрасывает сигналы КВ1 и ДЧТ в состояние «1».<br />
Получив сигнал ОСТ = «1», БИС СК вырабатывает сигнал ОБМ = «1».<br />
<br />
{| class=standard<br />
|+ Таблица 6.12. Коды на выводах ПРЗ … ПР0<br />
! Двоичный<br />код !! Мнемокод !! Содержание прерываний<br />
|-<br />
| 1&nbsp;&nbsp;0&nbsp;&nbsp;1&nbsp;&nbsp;0 || W (DBE) || Начальный пуск (двойная ошибка канала)<br />
|-<br />
| 1&nbsp;&nbsp;1&nbsp;&nbsp;1&nbsp;&nbsp;0 || T (TERR0) || Прерывание по T-разряду<br />
|-<br />
| 1&nbsp;&nbsp;1&nbsp;&nbsp;1&nbsp;&nbsp;1 || POK (TERR1) || Прерывание по сбою питания (ошибка канала)<br />
|-<br />
| 0&nbsp;&nbsp;1&nbsp;&nbsp;1&nbsp;&nbsp;1 || HALT (TERR2) || Прерывание по входу ОСТ (ошибка канала)<br />
|-<br />
| 0&nbsp;&nbsp;1&nbsp;&nbsp;0&nbsp;&nbsp;1 || INT0 || Запрос прерывания 0 от ВУ<br />
|-<br />
| 0&nbsp;&nbsp;1&nbsp;&nbsp;0&nbsp;&nbsp;0 || INT1 || То же . . . 1<br />
|-<br />
| 0&nbsp;&nbsp;1&nbsp;&nbsp;1&nbsp;&nbsp;0 || INT2 || &nbsp;&nbsp;&nbsp;» . . . . . 2<br />
|-<br />
| 0&nbsp;&nbsp;0&nbsp;&nbsp;1&nbsp;&nbsp;0 || INT3 || &nbsp;&nbsp;&nbsp;» . . . . . 3<br />
|-<br />
| 0&nbsp;&nbsp;0&nbsp;&nbsp;0&nbsp;&nbsp;1 || IRQ || Запрос прерывания от ВУ с нефиксированным вводимым адресом-вектором<br />
|-<br />
| 0&nbsp;&nbsp;0&nbsp;&nbsp;0&nbsp;&nbsp;0 || Нет прерывания || Нет прерывания<br />
|}<br />
<br />
Выполнение микрокоманды вывода данных ОАТО (рис. 6.14) начинается с подачи из БИС АУ на БИС СК сигнала КВ1 = «0», свидетельствующего о том, что на магистрали находится адрес данных. Поэтому сигналу БИС СК станавливает сигналы ОБМ = ПЗП = «0» (для ОЗУ или ВУ). Затем с некоторой задержкой относительно сигнала ОБМ БИС СК устанавливает сигнал КП = «0». Последний разрешает БИС АУ снять адрес данных, после чего БИС АУ вырабатывает сигнал КВ1 = «1». По этому сигналу БИС СК отвечает сигналами ПЗП = КП = «1».<br />
<br />
АУ выставляет на магистраль данные, сигнализируя об этом сигналом КВ1 = «0», по которому БИС СК устанавливает сигнал ДЗП = «0» (для ОЗУ или ВУ). После того, как данные запишутся в ОЗУ (ВУ) на БИС СК подается сигнал ОСТ = «0». По этому сигналу БИС СК вырабатывает сигналы ДЗП = «1» и КП = «0». Получив сигнал КП = «0», БИС АУ снимает данные с магистрали и устанавливает сигнал КВ1 = «1», по которому БИС СК формирует сигнал КП = «1». По сигналу сигнал ОБМ = «1».<br />
<br />
: Рис. 6.14. Временная диаграмма выполнения микрокоманды DATO<br />
<br />
В табл. 6.12 приведена расшифровка кодов, вырабатываемых БИС СК на выводах ПРЗ … ПРО.<br />
<br />
Электрические параметры БИС СК приведены в табл. 6.13.<br />
<br />
При разработке схемы с использованием БИС СК подключение времязадающей РС-цепочки к выводу КОШ осуществляется следующим образом: резистор R — между питанием и выводом КОШ; конденсатор С — между выводом КОШ и «минусом» источника питания. Значения резистора и конденсатора подбираются из условия обеспечения нужной длительности сигналов ДЧТ, ДЗП, до сигнала ОТВ.<br />
<br />
== Описание (Шахнов) ==<br />
[[Файл:Shahnov-8-13.png|thumb|160px|Рис. 8.13. Условное графическое обозначение К588ВГ1]]<br />
Микросхема К588ВГ1 — системный контроллер (СК), предназначен для применения совместно с микросхемами К588ВУ2, К588ВС2 в процессоре 16-разрядной микро-ЭВМ.<br />
<br />
Микросхема является микропрограммно управляемым асинхронным модулем, обеспечивающим взаимосвязь микросхем процессора на базе микропроцессорного комплекта серии К588 и организующим интерфейс процессора. Она выполняет следующие функции: ввод, вывод 16-разрядного слова или байта; обслуживание внешних и внутренних прерываний; управление прямым доступом к памяти; управление двунаправленными премопередатчиками.<br />
<br />
Условное графическое обозначение микросхемы приведено на рис. 8.13, назначение выыводов — в табл. 8.17, структурная схема показана на рис. 8.14.<br />
<br />
Микросхема включает в себя следующие основные блоки: блок прерываний (БП); блок ввода/вывода (БВ/ВВ); блок внутреннего управления (БВУ); блок прямого доступа к памяти (БПДП); блок управления приемопередатчиками (БУП).<br />
<br />
Блок прерываний предназначен для приема запросов на обслуживание прерывания и выдачи кода прерываний в соответствии с табл. 8.18.<br />
<br />
Блок ввода/вывода предназначен для формирования на шинах ввода/вывода стандартной временной последовательности; БВУ — для формирования в микросхеме внутренних синхросигналов; БПДП — для приема запросов на захват канала при прямом доступе к памяти; БУП — для включения и выключения канальных приемопередатчиков.<br />
<br />
Структурная схема соединения микросхем К588ВГ1, К588ВУ2, К588ВС2, К588ВА1 в составе процессора приведена на рис. 8.15.<br />
<br />
Системный контроллер связывает внутренний интерфейс процессора с внешним интерфейсом.<br />
<br />
Внутренний интерфейс содержит линии, обеспечивающие совместную работу в процессоре: блока микросхем управляющей памяти (УП); арифметического устройства (АУ); блока микросхем магистрального приемопередатчика (МПП).<br />
<br />
Внешний интерфейс процессора содержит сигналы, обеспечивающие работу устройств канала. Это шины ввода/вывода, прерываний и прямого доступа к памяти.<br />
<br />
Сигналы на шинах ввода/вывода SYNC, DIN, DOUT, WTBT, PRLY обеспечивают управление передачей по 16-разрядной двунаправленной шине DA0-DA15 команд, адресов, данных и векторов.<br />
<br />
Шины прерываний INT0, INT1, INT2, INT3, HALT, POK, IRQ, IAKO, EVNT служат для приема запросов на прерывания и сброса прерываний от внешних устройств.<br />
<br />
Шины прямого доступа к памяти DMR, DMG, SACK служат для управления предоставлением прямого доступа к памяти.<br />
<br />
Шина инициализации INIT служит для приведения внешних устройств в исходное состояние.<br />
<br />
Система микрокоманд приведена в табл. 8.19, временные диаграммы выполнения микрокоманд DATI и DATO показаны на рис. 8.16.<br />
<br />
Основные параметры микросхемы приведены в табл. 8.20.<br />
<br />
== Литература ==<br />
* '''[Гришин]''' Г. Г. Гришин, А. А. Мошков, О. В. Ольшанский, Ю. А. Овечкин. Микропроцессоры: Справочное пособие для разработчиков судовой РЭА. Л.: Судостроение, 1987. [[К588/Гришин|Глава 6. МИКРОПРОЦЕССОРНЫЙ КОМПЛЕКТ СЕРИИ К588 (КР588)]]<br />
* '''[Шахнов]''' Микропроцессоры и микропроцессорные комплекты интегральных микросхем: Справочник. В 2 т. / Под ред. В. А. Шахнова. — М.: Радио и связь, 1988. — T. 1. — 368 с.: ил.<br />
* '''[Хвощ]''' Хвощ С. Т. Микропроцессоры и микроэвм в системах автоматического управления.<br />
<br />
[[Категория:Микропроцессорные комплекты]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%9A%D0%BD%D0%B8%D0%B3%D0%B8_%D0%BF%D0%BE_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%BD%D0%BE%D0%B9_%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B5&diff=3759Книги по микропроцессорной технике2024-03-25T06:46:01Z<p>Panther: /* Прочее */ +1</p>
<hr />
<div>{{Emuverse}}<br />
<br />
{| class="border"<br />
! №<br />
! Автор<br />
! Название<br />
! Оригинальное название<br />
! Аннотация<br />
! Текст <br />
|-<br />
| 1.<br />
| Коффрон&nbsp;Дж. <br />
| Технические средства микропроцессорных систем (1983)<br />
| James W. Coffron. Practical Hardware Details for 8080, 8085, Z80 and 6800 Microprocessor Systems (1981), ISBN 0-136-91089-0 <br />
| Построение систем на основе [[8080]], [[8085]], [[Z80]], [[6800]]<br />
| {{djvu-link|https://emuverse.ru/downloads/books/Coffron_rus_1983.djvu}}<br />
|-<br />
| 2.<br />
| Буреев&nbsp;Л.&nbsp;Н. и др.<br />
| Простейшая микро-ЭВМ: Проектирование. Наладка. Использование. (1989) ISBN 5-283-01482-7<br />
|<br />
| Построение систем на основе [[КР580ИК80А]]<br />
| {{pdf-link|https://emuverse.ru/downloads/books/Bureev_1989.pdf}}<br />
|-<br />
| 3.<br />
| Мячев А.А., Степанов В.Н.<br />
| Персональные ЭВМ и МикроЭВМ. Основы организации. (1991) ISBN 5-286-00406-9<br />
|<br />
| Общие сведения о системах на базе МП серий КР580, К1821, К1810, К1801/1809, К1811/1831, КР1839, Intel 80x86, DEC J11, DEC Micro VAX II, Motorola 68xxx, ARM и др.<br />
| {{djvu-link|https://emuverse.ru/downloads/books/Miachev_1991.djv}}<br />
|-<br />
| 4.<br />
| Молчанов&nbsp;А.&nbsp;А. и др.<br />
| Справочник по микропроцессорным устройствам. (1987)<br />
|<br />
| Сведения о микропроцессорах серий 580, 583, 584, 589 и др., операционные системы и ПО.<br />
| {{djvu-link|https://emuverse.ru/downloads/books/Molchanov_1987.djvu}}<br />
|-<br />
| 5.<br />
| Под&nbsp;ред. Г.&nbsp;Хелмса.<br />
| Компьютеры: справочное руководство. В 3-х т. (1986)<br />
| The McGraw-Hill Computer Handbook. Editor in Chief: Harry Helms. (1983)<br />
| Общие вопросы построения и применения средств вычислительной техники.<br />
| {{djvu-link|https://emuverse.ru/downloads/books/Helms_1986_v1.djvu}}<br>{{djvu-link|https://emuverse.ru/downloads/books/Helms_1986_v2.djvu}}<br>{{djvu-link|https://emuverse.ru/downloads/books/Helms_1986_v3.djvu}}<br><br />
|}<br />
<br />
== Прочее ==<br />
<br />
* {{книга<br />
|автор = Н. Н. Аверьянов и др. / Под ред. В. А. Шахнова.<br />
|часть = <br />
|заглавие = Микропроцессоры и микропроцессорные комплекты интегральных микросхем: Справочник: В 2-х т.<br />
|оригинал = <br />
|ссылка = https://emuverse.ru/downloads/books/Shakhnov_MPK_1988_Vol_1.djv<br />
|ответственный = <br />
|издание = <br />
|место = <br />
|издательство = Радио и связь<br />
|год = 1988<br />
|том = 1<br />
|страницы = <br />
|страниц = <br />
|серия = <br />
|isbn = 5-256-00371-2<br />
|тираж =<br />
}}<br />
** Рассмотрены МПК серий 145, 580, 581, 583, 584, 587, 588, 589, 1800<br />
* {{книга<br />
|автор = Н. Н. Аверьянов и др. / Под ред. В. А. Шахнова.<br />
|часть = <br />
|заглавие = Микропроцессоры и микропроцессорные комплекты интегральных микросхем: Справочник: В 2-х т.<br />
|оригинал = <br />
|ссылка = https://emuverse.ru/downloads/books/Shakhnov_MPK_1988_Vol_2.djv<br />
|ответственный = <br />
|издание = <br />
|место = <br />
|издательство = Радио и связь<br />
|год = 1988<br />
|том = 2<br />
|страницы = <br />
|страниц = <br />
|серия = <br />
|isbn = 5-256-00373-9<br />
|тираж =<br />
}}<br />
** Рассмотрены МПК серий 1801, 1802, 1804, 1808, 1809, 1810, 1811, 1813, 1814, 1816<br />
* {{книга<br />
|автор = Г. Г. Гришин, А. А. Мошков, О.В. Ольшанский, Ю. А. Овечкин<br />
|часть = <br />
|заглавие = Микропроцессоры: Справочное пособие для разработчиков судовой РЭА<br />
|оригинал = <br />
|ссылка = https://emuverse.ru/downloads/books/Ovechkin_Y.A._Mikroprocessory.djvu<br />
|ответственный = <br />
|издание = <br />
|место = Ленинград<br />
|издательство = Судостроение<br />
|год = 1987<br />
|том = <br />
|страницы = <br />
|страниц = 520<br />
|серия = <br />
|isbn = <br />
|тираж =<br />
}}<br />
** Рассмотрены МПК серий 580, 588, 1801, 1802, 1804, 1810<br />
* {{книга<br />
|автор = С. Т. Хвощ, Н. Н. Варлинский, Е. А. Попов.<br />
|часть = <br />
|заглавие = Микропроцессоры и МикроЭВМ в системах автоматического управления: Справочник<br />
|оригинал = <br />
|ссылка = https://emuverse.ru/downloads/books/Hvosch_S.T._Mikroprocessory_i_MiniEVM_v_SAU.djvu<br />
|ответственный = Под общ. ред. С. Т. Хвоща<br />
|издание = <br />
|место = Л<br />
|издательство = Машиностроение. Ленингр. отд-ние<br />
|год = 1987<br />
|том = <br />
|страницы = 640<br />
|страниц = <br />
|серия = <br />
|isbn = <br />
|тираж = <br />
}}<br />
** Рассмотрены МПК серий 580, 583, 584, 588, 589(585) 1800, 1801, 1802, 1804, 1806, 1808, 1809, 1810<br />
* {{книга<br />
|автор = В. С. Борисов, А. А. Васенков, Б. М. Малашевич и др. <br />
|часть = <br />
|заглавие = Микропроцессорные комплекты интегральных схем : Состав и структура : Справочник<br />
|оригинал = <br />
|ссылка = https://emuverse.ru/downloads/books/Microprocessor_complects_1982.pdf<br />
|ответственный = Под ред. А. А. Васенкова, В. А. Шахнова<br />
|издание = <br />
|место = Москва<br />
|издательство = Радио и связь<br />
|год = 1982<br />
|том = <br />
|страницы =<br />
|страниц = <br />
|серия = <br />
|isbn = <br />
|тираж = <br />
}}<br />
* {{djvu||Она же в формате DJVU|books/Microprocessor_complects_1982.djvu}}<br />
** Рассмотрены МПК серий 536, 580, 581, 584, 586, 587, 588, 589, 1883<br />
<br />
[[Категория:Литература]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0-60&diff=3758Электроника-602024-03-24T17:51:29Z<p>Panther: /* Литература */ + 1</p>
<hr />
<div>{{Emuverse}}<br />
'''«Электроника-60»''' — серия микроЭВМ.<br />
<br />
== Материалы ==<br />
* [[w:Электроника-60|Статья в Википедии]]<br />
* [[QUASIC-2|Система QUASIC-2 для программирования на микро-ЭВМ]]<br />
<br />
== Ссылки ==<br />
* [http://www.tis.kz/forum/topic.php?forum=1&topic=12 Коллекция программ]<br />
<br />
== Документация ==<br />
* {{djvu|Электроника-60М. Книга 2. |Техническое описание 2.791.004-03 ТО|computers/E-60/docs/E60_Book_2.djvu}}<br />
* {{djvu|Электроника-60 15 ВМ-16. Книга 4. |Основной тест команд. Программное обеспечение 2.791.004 ПО1|computers/E-60/docs/E60_Book_4.djvu}}<br />
* {{djvu| Центральный процессор М1. Устройство управления В1.|Альбом схем|computers/E-60/docs/E60_sch.djvu}}<br />
* {{djvu| Устройство управления В1.|Схема электрическая принципиальная|computers/E-60/docs/B1-sch.djvu}}<br />
* {{djvu| Центральный процессор М2.|Альбом схем|computers/E-60/docs/M2_sch.djvu}}<br />
* {{djvu| Центральный процессор М2.|Техническое описание и инструкция по эксплуатации. Часть 1|computers/E-60/docs/M2_TO&IE_Part_1.djvu}}<br />
* {{djvu| Электроника-60. 15 ВМ-16. Книга 11. | Устройство управления В21. Техническое описание и инструкция по эксплуатации|computers/E-60/docs/E60_Book_11_B21-TO&E3.djvu}}<br />
* {{djvu| Запоминающее устройство П3.|Техническое описание и инструкция по эксплуатации|computers/E-60/docs/P3_TO&IE.djvu}}<br />
* {{djvu| Источник питания МС 92301.1.|Паспорт|computers/E-60/docs/MC92301.djvu}}<br />
* {{djvu| Устройство управления В3.|Техническое описание и инструкция по эксплуатации.|computers/E-60/docs/V3_TO_IE.djvu}}<br />
* {{www}} [http://retropc.org/index.html?action=w_razdela&id_razdel=31#c149 Документация на сайте retropc.org]<br />
* {{www}} [http://www.tis.kz/forum/topic.php?forum=28&topic=8&postid=1473785230#1473785230 Комплект документации на Электроника-100]<br />
<br />
== Литература ==<br />
* {{книга<br />
|автор = И. Л. Талов, А. Н. Соловьев, В. Д. Борисенков.<br />
|часть = <br />
|заглавие = Книга 1. Семейство ЭВМ «Электроника 60»<br />
|оригинал = <br />
|ссылка = https://emuverse.ru/downloads/computers/E-60/docs/Micro-EVM_Book_1.djvu<br />
|ответственный = Под ред. Л. Н. Преснухина<br />
|издание = МикроЭВМ: В 8 кн.: Практ. пособие.<br />
|место = М<br />
|издательство = Высшая школа<br />
|год = 1988<br />
|том = <br />
|страницы = <br />
|страниц = <br />
|серия = <br />
|isbn = <br />
|тираж =<br />
}}<br />
* {{книга<br />
|автор = И. В. Захаров.<br />
|заглавие = Техническое обслуживание и эксплуатация МикроЭВМ «Электроника-60М»<br />
|оригинал = <br />
|ссылка = https://emuverse.ru/downloads/computers/E-60/docs/toe60m.djvu<br />
|издание = <br />
|место = М<br />
|издательство = «Машиностроение»<br />
|год = 1989<br />
|том = <br />
|страницы = <br />
|страниц = <br />
|серия = <br />
|isbn = 5-217-00385-5<br />
|тираж = <br />
}}<br />
<br />
* {{книга<br />
|автор = С. Т. Хвощ, Н. Н. Варлинский, Е. А. Попов.<br />
|часть = Глава 17.1: МикроЭВМ серии «Электроника-60М»<br />
|заглавие = Микропроцессоры и МикроЭВМ в системах автоматического управления: Справочник<br />
|оригинал = <br />
|ссылка = https://emuverse.ru/downloads/books/Hvosch_S.T._Mikroprocessory_i_MiniEVM_v_SAU.djvu<br />
|ответственный = Под общ. ред. С. Т. Хвоща<br />
|издание = <br />
|место = Л<br />
|издательство = Машиностроение. Ленингр. отд-ние<br />
|год = 1987<br />
|том = <br />
|страницы = 512—522<br />
|страниц = <br />
|серия = <br />
|isbn = <br />
|тираж = <br />
}}<br />
<br />
* {{книга<br />
|автор = В. С. Борисов, А. А. Васенков, Б. М. Малашевич и др. <br />
|часть = <br />
|заглавие = Микропроцессорные комплекты интегральных схем : Состав и структура : Справочник<br />
|оригинал = <br />
|ссылка = https://emuverse.ru/downloads/books/Microprocessor_complects_1982.pdf<br />
|ответственный = Под ред. А. А. Васенкова, В. А. Шахнова<br />
|издание = <br />
|место = Москва<br />
|издательство = Радио и связь<br />
|год = 1982<br />
|том = <br />
|страницы =<br />
|страниц = <br />
|серия = <br />
|isbn = <br />
|тираж = <br />
}}<br />
* {{djvu||Она же в формате DJVU|books/Microprocessor_complects_1982.djvu}}<br />
<br />
[[Категория:Электроника-60|*]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Alecv&diff=3756Участник:Alecv2024-03-24T17:05:40Z<p>Panther: Создана пустая страница</p>
<hr />
<div></div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Alecv_old&diff=3755Участник:Alecv old2024-03-24T16:56:40Z<p>Panther: Panther переименовал страницу Участник:Alecv в Участник:Alecv old без оставления перенаправления: Автоматически переименованная страница в связи с переименованием учётной записи участника «Alecv» в «Alecv old»</p>
<hr />
<div>ICQ: 21332039<br />
<br />
'''alecv''' на http://www.phantom.sannata.ru/forum/</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&diff=3753Агат/Техническая информация2024-03-22T09:11:52Z<p>Panther: /* Агат-9 */</p>
<hr />
<div>{{Emuverse}}<br />
<br />
== Контроллер и дисковод 140к ==<br />
* Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0!<br />
* Используется свой алгоритм кодирования [https://en.wikipedia.org/wiki/Group_coded_recording GCR 6.2], отличающийся от Apple Disk ][?<br />
** Пока замечено, что два «лишних» байта при кодировании первого блока «заворачиваются» на начало буфера, а в найденных эмуляторах Apple берутся нулевыми, что не влияет на раскодированные данные, но меняет контрольную сумму.<br />
* Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно.<br />
* Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки.<br />
<br />
Документация по nib-формату:<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md<br />
<br />
== Агат-9 ==<br />
=== Распределение портов ===<br />
* C000-C00F ― регистр данных клавиатуры.<br />
* C010-C01F ― очистка регистра данных клавиатуры.<br />
* C020-C02F ― магнитофон?<br />
* C030-C03F ― звук? <br />
* C040-C04F ― ?<br />
* C050-C057 ― чт/зп ― видеорежим Apple, переключение ДК в режим Apple (ПА <= 0).<br />
* C058-C05B ― переключение палитры.<br />
* C060-C06F ― клавиатура, пульты.<br />
* C070-C07F ― ? <br />
* C080-C08F ― режим пзу, псевдо-пзу, сегмента D000-DFFF.<br />
* C0F0-C0FF ― запись ― переключение ПМ <= 1, чтение ― ?.<br />
* C100-C1FF ― запись ― переключение страниц памяти, чтение ― возврат номера подключенного банка.<br />
* C200-C2FF ― разъём 2.<br />
* C300-C3FF ― разъём 3.<br />
* C400-C4FF ― разъём 4.<br />
* C500-C5FF ― разъём 5.<br />
* C700-C7FF ― Видеорежим Агат, переключение ДК а режим Агат/Apple (ПА)<br />
<br />
=== ПА и ПМ ===<br />
* '''ПМ''' ― «Признак Машины»<br />
** 0 ― ОЗУ в режиме Агат, только сброс.<br />
** 1 ― ОЗУ в режиме Apple, запись по адресу C0F0-C0FF<br />
* '''ПА''' ― «Признак Apple»<br />
** 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C057 <br/>или C700-C7FF (при ПМ==1)<br />
** 1 ― ДК в режиме Агат, сброс или обращение по адресам C700-C7FF при ПМ==0<br />
<br />
'''Внимание! В отдельных изданиях официальной документации названия сигналов перепутаны!'''<br />
<br />
=== Управление памятью ===<br />
Назначение банков физической памяти на логические сегменты происходит записью произвольного значения по адресам C100-C1FF. Формат адреса: C1mn, где m ― номер логического сегмента (0-7), n ― номер банка (0-F). Чтение возвращает записанное значение. Запись разрешена только в режиме Агат (ПМ==0).<br />
<br />
При этом m = 0-7 обозначают номера сегментов в режиме Агат, а E и F указывают на подключенные банки к сегментам 6 и 7 в режиме Apple.<br />
<br />
=== Порт клавиатуры ===<br />
Для работы с клавиатурой используются следующие порты ввода-вывода:<br />
* C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.<br />
* C063 &ndash; линия Р/Л, старший бит кода нажатой клавиши (бит 7).<br />
* C010&mdash;C01F &ndash; обращение по этим адресам сбрасывает буфер для приема следующей клавиши.<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&diff=3752Агат/Техническая информация2024-02-14T15:07:08Z<p>Panther: /* Управление памятью */</p>
<hr />
<div>{{Emuverse}}<br />
<br />
== Контроллер и дисковод 140к ==<br />
* Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0!<br />
* Используется свой алгоритм кодирования [https://en.wikipedia.org/wiki/Group_coded_recording GCR 6.2], отличающийся от Apple Disk ][?<br />
** Пока замечено, что два «лишних» байта при кодировании первого блока «заворачиваются» на начало буфера, а в найденных эмуляторах Apple берутся нулевыми, что не влияет на раскодированные данные, но меняет контрольную сумму.<br />
* Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно.<br />
* Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки.<br />
<br />
Документация по nib-формату:<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md<br />
<br />
== Агат-9 ==<br />
=== Распределение портов ===<br />
* C000-C00F ― регистр данных клавиатуры.<br />
* C010-C01F ― очистка регистра данных клавиатуры.<br />
* C020-C02F ― магнитофон?<br />
* C030-C03F ― звук? <br />
* C040-C04F ― ?<br />
* C050-C057 ― чт/зп ― видеорежим Apple, переключение ДК в режим Apple (ПА <= 0).<br />
* C058-C05F ― ?<br />
* C060-C06F ― клавиатура, пульты.<br />
* C070-C07F ― ? <br />
* C080-C08F ― режим пзу, псевдо-пзу, сегмента D000-DFFF.<br />
* C0F0-C0FF ― запись ― переключение ПМ <= 1, чтение ― ?.<br />
* C100-C1FF ― запись ― переключение страниц памяти, чтение ― возврат номера подключенного банка.<br />
* C200-C2FF ― разъём 2.<br />
* C300-C3FF ― разъём 3.<br />
* C400-C4FF ― разъём 4.<br />
* C500-C5FF ― разъём 5.<br />
* C700-C7FF ― Видеорежим Агат, переключение ДК а режим Агат/Apple (ПА)<br />
<br />
=== ПА и ПМ ===<br />
* '''ПМ''' ― «Признак Машины»<br />
** 0 ― ОЗУ в режиме Агат, только сброс.<br />
** 1 ― ОЗУ в режиме Apple, запись по адресу C0F0-C0FF<br />
* '''ПА''' ― «Признак Apple»<br />
** 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C057 <br/>или C700-C7FF (при ПМ==1)<br />
** 1 ― ДК в режиме Агат, сброс или обращение по адресам C700-C7FF при ПМ==0<br />
<br />
'''Внимание! В отдельных изданиях официальной документации названия сигналов перепутаны!'''<br />
<br />
=== Управление памятью ===<br />
Назначение банков физической памяти на логические сегменты происходит записью произвольного значения по адресам C100-C1FF. Формат адреса: C1mn, где m ― номер логического сегмента (0-7), n ― номер банка (0-F). Чтение возвращает записанное значение. Запись разрешена только в режиме Агат (ПМ==0).<br />
<br />
При этом m = 0-7 обозначают номера сегментов в режиме Агат, а E и F указывают на подключенные банки к сегментам 6 и 7 в режиме Apple.<br />
<br />
=== Порт клавиатуры ===<br />
Для работы с клавиатурой используются следующие порты ввода-вывода:<br />
* C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.<br />
* C063 &ndash; линия Р/Л, старший бит кода нажатой клавиши (бит 7).<br />
* C010&mdash;C01F &ndash; обращение по этим адресам сбрасывает буфер для приема следующей клавиши.<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&diff=3751Агат/Техническая информация2024-02-14T14:28:39Z<p>Panther: /* ПА и ПМ */</p>
<hr />
<div>{{Emuverse}}<br />
<br />
== Контроллер и дисковод 140к ==<br />
* Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0!<br />
* Используется свой алгоритм кодирования [https://en.wikipedia.org/wiki/Group_coded_recording GCR 6.2], отличающийся от Apple Disk ][?<br />
** Пока замечено, что два «лишних» байта при кодировании первого блока «заворачиваются» на начало буфера, а в найденных эмуляторах Apple берутся нулевыми, что не влияет на раскодированные данные, но меняет контрольную сумму.<br />
* Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно.<br />
* Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки.<br />
<br />
Документация по nib-формату:<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md<br />
<br />
== Агат-9 ==<br />
=== Распределение портов ===<br />
* C000-C00F ― регистр данных клавиатуры.<br />
* C010-C01F ― очистка регистра данных клавиатуры.<br />
* C020-C02F ― магнитофон?<br />
* C030-C03F ― звук? <br />
* C040-C04F ― ?<br />
* C050-C057 ― чт/зп ― видеорежим Apple, переключение ДК в режим Apple (ПА <= 0).<br />
* C058-C05F ― ?<br />
* C060-C06F ― клавиатура, пульты.<br />
* C070-C07F ― ? <br />
* C080-C08F ― режим пзу, псевдо-пзу, сегмента D000-DFFF.<br />
* C0F0-C0FF ― запись ― переключение ПМ <= 1, чтение ― ?.<br />
* C100-C1FF ― запись ― переключение страниц памяти, чтение ― возврат номера подключенного банка.<br />
* C200-C2FF ― разъём 2.<br />
* C300-C3FF ― разъём 3.<br />
* C400-C4FF ― разъём 4.<br />
* C500-C5FF ― разъём 5.<br />
* C700-C7FF ― Видеорежим Агат, переключение ДК а режим Агат/Apple (ПА)<br />
<br />
=== ПА и ПМ ===<br />
* '''ПМ''' ― «Признак Машины»<br />
** 0 ― ОЗУ в режиме Агат, только сброс.<br />
** 1 ― ОЗУ в режиме Apple, запись по адресу C0F0-C0FF<br />
* '''ПА''' ― «Признак Apple»<br />
** 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C057 <br/>или C700-C7FF (при ПМ==1)<br />
** 1 ― ДК в режиме Агат, сброс или обращение по адресам C700-C7FF при ПМ==0<br />
<br />
'''Внимание! В отдельных изданиях официальной документации названия сигналов перепутаны!'''<br />
<br />
=== Управление памятью ===<br />
Назначение банков физической памяти на логические сегменты происходит записью произвольного значения по адресам C100-C1FF. Формат адреса: C1mn, где m ― номер логического сегмента (0-7), n ― номер банка (0-F). Чтение возвращает записанное значение. Запись разрешена только в режиме Агат (ПМ==0).<br />
<br />
=== Порт клавиатуры ===<br />
Для работы с клавиатурой используются следующие порты ввода-вывода:<br />
* C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.<br />
* C063 &ndash; линия Р/Л, старший бит кода нажатой клавиши (бит 7).<br />
* C010&mdash;C01F &ndash; обращение по этим адресам сбрасывает буфер для приема следующей клавиши.<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&diff=3750Агат/Техническая информация2024-02-14T09:34:46Z<p>Panther: /* Агат-9 */</p>
<hr />
<div>{{Emuverse}}<br />
<br />
== Контроллер и дисковод 140к ==<br />
* Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0!<br />
* Используется свой алгоритм кодирования [https://en.wikipedia.org/wiki/Group_coded_recording GCR 6.2], отличающийся от Apple Disk ][?<br />
** Пока замечено, что два «лишних» байта при кодировании первого блока «заворачиваются» на начало буфера, а в найденных эмуляторах Apple берутся нулевыми, что не влияет на раскодированные данные, но меняет контрольную сумму.<br />
* Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно.<br />
* Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки.<br />
<br />
Документация по nib-формату:<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md<br />
<br />
== Агат-9 ==<br />
=== Распределение портов ===<br />
* C000-C00F ― регистр данных клавиатуры.<br />
* C010-C01F ― очистка регистра данных клавиатуры.<br />
* C020-C02F ― магнитофон?<br />
* C030-C03F ― звук? <br />
* C040-C04F ― ?<br />
* C050-C057 ― чт/зп ― видеорежим Apple, переключение ДК в режим Apple (ПА <= 0).<br />
* C058-C05F ― ?<br />
* C060-C06F ― клавиатура, пульты.<br />
* C070-C07F ― ? <br />
* C080-C08F ― режим пзу, псевдо-пзу, сегмента D000-DFFF.<br />
* C0F0-C0FF ― запись ― переключение ПМ <= 1, чтение ― ?.<br />
* C100-C1FF ― запись ― переключение страниц памяти, чтение ― возврат номера подключенного банка.<br />
* C200-C2FF ― разъём 2.<br />
* C300-C3FF ― разъём 3.<br />
* C400-C4FF ― разъём 4.<br />
* C500-C5FF ― разъём 5.<br />
* C700-C7FF ― Видеорежим Агат, переключение ДК а режим Агат/Apple (ПА)<br />
<br />
=== ПА и ПМ ===<br />
* '''ПМ''' ― «Признак Машины»<br />
** 0 ― ОЗУ в режиме Агат, только сброс.<br />
** 1 ― ОЗУ в режиме Apple, запись по адресу C0F0-C0FF<br />
* '''ПА''' ― «Признак Apple»<br />
** 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C057 <br/>или C700-C7FF (при ПМ==1)<br />
** 1 ― ДК в режиме Агат, сброс или обращение по адресам C700-C7FF при ПМ==0<br />
<br />
'''Внимание! В отдельных изданиях официальной документации названия сигналов перепутаны!'''<br />
<br />
=== Порт клавиатуры ===<br />
Для работы с клавиатурой используются следующие порты ввода-вывода:<br />
* C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.<br />
* C063 &ndash; линия Р/Л, старший бит кода нажатой клавиши (бит 7).<br />
* C010&mdash;C01F &ndash; обращение по этим адресам сбрасывает буфер для приема следующей клавиши.<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&diff=3749Агат/Техническая информация2024-02-14T09:11:30Z<p>Panther: /* Агат-9 */</p>
<hr />
<div>{{Emuverse}}<br />
<br />
== Контроллер и дисковод 140к ==<br />
* Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0!<br />
* Используется свой алгоритм кодирования [https://en.wikipedia.org/wiki/Group_coded_recording GCR 6.2], отличающийся от Apple Disk ][?<br />
** Пока замечено, что два «лишних» байта при кодировании первого блока «заворачиваются» на начало буфера, а в найденных эмуляторах Apple берутся нулевыми, что не влияет на раскодированные данные, но меняет контрольную сумму.<br />
* Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно.<br />
* Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки.<br />
<br />
Документация по nib-формату:<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md<br />
<br />
== Агат-9 ==<br />
=== Распределение портов ===<br />
* C000-C00F ― регистр данных клавиатуры.<br />
* C010-C01F ― очистка регистра данных клавиатуры.<br />
* C020-C02F ― магнитофон?<br />
* C030-C03F ― звук? <br />
* C040-C04F ― ?<br />
* C050-C057 ― чт/зп ― видеорежим Apple, переключение ДК в режим Apple (ПМ <= 0).<br />
* C058-C05F ― ?<br />
* C060-C06F ― клавиатура, пульты.<br />
* C070-C07F ― ? <br />
* C080-C08F ― режим пзу, псевдо-пзу, сегмента D000-DFFF.<br />
* C0F0-C0FF ― запись ― переключение ПА <= 1, чтение ― ?.<br />
* C100-C1FF ― запись ― переключение страниц памяти, чтение ― возврат номера подключенного банка.<br />
* C200-C2FF ― разъём 2.<br />
* C300-C3FF ― разъём 3.<br />
* C400-C4FF ― разъём 4.<br />
* C500-C5FF ― разъём 5.<br />
* C700-C7FF ― Видеорежим Агат, переключение ДК а режим Агат/Apple (ПМ)<br />
<br />
=== ПА и ПМ ===<br />
* '''ПА''' ― «Признак Apple»<br />
** 0 ― ОЗУ в режиме Агат, только сброс.<br />
** 1 ― ОЗУ в режиме Apple, запись по адресу C0F0-C0FF<br />
* '''ПМ''' ― «Признак Машины»<br />
** 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C057 <br/>или C700-C7FF (при ПА==1)<br />
** 1 ― ДК в режиме Агат, сброс или обращение по адресам C700-C7FF при ПА==0<br />
<br />
=== Порт клавиатуры ===<br />
Для работы с клавиатурой используются следующие порты ввода-вывода:<br />
* C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.<br />
* C063 &ndash; линия Р/Л, старший бит кода нажатой клавиши (бит 7).<br />
* C010&mdash;C01F &ndash; обращение по этим адресам сбрасывает буфер для приема следующей клавиши.<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&diff=3748Агат/Техническая информация2024-02-14T09:10:22Z<p>Panther: /* ПА и ПМ */</p>
<hr />
<div>{{Emuverse}}<br />
<br />
== Контроллер и дисковод 140к ==<br />
* Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0!<br />
* Используется свой алгоритм кодирования [https://en.wikipedia.org/wiki/Group_coded_recording GCR 6.2], отличающийся от Apple Disk ][?<br />
** Пока замечено, что два «лишних» байта при кодировании первого блока «заворачиваются» на начало буфера, а в найденных эмуляторах Apple берутся нулевыми, что не влияет на раскодированные данные, но меняет контрольную сумму.<br />
* Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно.<br />
* Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки.<br />
<br />
Документация по nib-формату:<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md<br />
<br />
== Агат-9 ==<br />
=== Распределение портов ===<br />
* C000-C00F ― регистр данных клавиатуры.<br />
* C010-C01F ― очистка регистра данных клавиатуры.<br />
* C020-C02F ― магнитофон?<br />
* C030-C03F ― звук? <br />
* C040-C04F ― ?<br />
* C050-C05F ― чт/зп ― видеорежим Apple, переключение ДК в режим Apple (ПМ <= 0).<br />
* C060-C06F ― клавиатура, пульты.<br />
* C070-C07F ― ? <br />
* C080-C08F ― режим пзу, псевдо-пзу, сегмента D000-DFFF.<br />
* C0F0-C0FF ― запись ― переключение ПА <= 1, чтение ― ?.<br />
* C100-C1FF ― запись ― переключение страниц памяти, чтение ― возврат номера подключенного банка.<br />
* C200-C2FF ― разъём 2.<br />
* C300-C3FF ― разъём 3.<br />
* C400-C4FF ― разъём 4.<br />
* C500-C5FF ― разъём 5.<br />
* C700-C7FF ― Видеорежим Агат, переключение ДК а режим Агат/Apple (ПМ)<br />
<br />
=== ПА и ПМ ===<br />
* '''ПА''' ― «Признак Apple»<br />
** 0 ― ОЗУ в режиме Агат, только сброс.<br />
** 1 ― ОЗУ в режиме Apple, запись по адресу C0F0-C0FF<br />
* '''ПМ''' ― «Признак Машины»<br />
** 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C057 <br/>или C700-C7FF (при ПА==1)<br />
** 1 ― ДК в режиме Агат, сброс или обращение по адресам C700-C7FF при ПА==0<br />
<br />
=== Порт клавиатуры ===<br />
Для работы с клавиатурой используются следующие порты ввода-вывода:<br />
* C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.<br />
* C063 &ndash; линия Р/Л, старший бит кода нажатой клавиши (бит 7).<br />
* C010&mdash;C01F &ndash; обращение по этим адресам сбрасывает буфер для приема следующей клавиши.<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&diff=3747Агат/Техническая информация2024-02-14T09:07:18Z<p>Panther: /* ПА и ПМ */</p>
<hr />
<div>{{Emuverse}}<br />
<br />
== Контроллер и дисковод 140к ==<br />
* Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0!<br />
* Используется свой алгоритм кодирования [https://en.wikipedia.org/wiki/Group_coded_recording GCR 6.2], отличающийся от Apple Disk ][?<br />
** Пока замечено, что два «лишних» байта при кодировании первого блока «заворачиваются» на начало буфера, а в найденных эмуляторах Apple берутся нулевыми, что не влияет на раскодированные данные, но меняет контрольную сумму.<br />
* Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно.<br />
* Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки.<br />
<br />
Документация по nib-формату:<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md<br />
<br />
== Агат-9 ==<br />
=== Распределение портов ===<br />
* C000-C00F ― регистр данных клавиатуры.<br />
* C010-C01F ― очистка регистра данных клавиатуры.<br />
* C020-C02F ― магнитофон?<br />
* C030-C03F ― звук? <br />
* C040-C04F ― ?<br />
* C050-C05F ― чт/зп ― видеорежим Apple, переключение ДК в режим Apple (ПМ <= 0).<br />
* C060-C06F ― клавиатура, пульты.<br />
* C070-C07F ― ? <br />
* C080-C08F ― режим пзу, псевдо-пзу, сегмента D000-DFFF.<br />
* C0F0-C0FF ― запись ― переключение ПА <= 1, чтение ― ?.<br />
* C100-C1FF ― запись ― переключение страниц памяти, чтение ― возврат номера подключенного банка.<br />
* C200-C2FF ― разъём 2.<br />
* C300-C3FF ― разъём 3.<br />
* C400-C4FF ― разъём 4.<br />
* C500-C5FF ― разъём 5.<br />
* C700-C7FF ― Видеорежим Агат, переключение ДК а режим Агат/Apple (ПМ)<br />
<br />
=== ПА и ПМ ===<br />
* '''ПА''' ― «Признак Apple»<br />
** 0 ― ОЗУ в режиме Агат, только сброс.<br />
** 1 ― ОЗУ в режиме Apple, запись по адресу C0F0-C0FF<br />
* '''ПМ''' ― «Признак Машины»<br />
** 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C05F <br/>или C700-C7FF (при ПА==1)<br />
** 1 ― ДК в режиме Агат, сброс или обращение по адресам C700-C7FF при ПА==0<br />
<br />
=== Порт клавиатуры ===<br />
Для работы с клавиатурой используются следующие порты ввода-вывода:<br />
* C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.<br />
* C063 &ndash; линия Р/Л, старший бит кода нажатой клавиши (бит 7).<br />
* C010&mdash;C01F &ndash; обращение по этим адресам сбрасывает буфер для приема следующей клавиши.<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&diff=3746Агат/Техническая информация2024-02-14T09:00:31Z<p>Panther: /* Распределение портов */</p>
<hr />
<div>{{Emuverse}}<br />
<br />
== Контроллер и дисковод 140к ==<br />
* Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0!<br />
* Используется свой алгоритм кодирования [https://en.wikipedia.org/wiki/Group_coded_recording GCR 6.2], отличающийся от Apple Disk ][?<br />
** Пока замечено, что два «лишних» байта при кодировании первого блока «заворачиваются» на начало буфера, а в найденных эмуляторах Apple берутся нулевыми, что не влияет на раскодированные данные, но меняет контрольную сумму.<br />
* Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно.<br />
* Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки.<br />
<br />
Документация по nib-формату:<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md<br />
<br />
== Агат-9 ==<br />
=== Распределение портов ===<br />
* C000-C00F ― регистр данных клавиатуры.<br />
* C010-C01F ― очистка регистра данных клавиатуры.<br />
* C020-C02F ― магнитофон?<br />
* C030-C03F ― звук? <br />
* C040-C04F ― ?<br />
* C050-C05F ― чт/зп ― видеорежим Apple, переключение ДК в режим Apple (ПМ <= 0).<br />
* C060-C06F ― клавиатура, пульты.<br />
* C070-C07F ― ? <br />
* C080-C08F ― режим пзу, псевдо-пзу, сегмента D000-DFFF.<br />
* C0F0-C0FF ― запись ― переключение ПА <= 1, чтение ― ?.<br />
* C100-C1FF ― запись ― переключение страниц памяти, чтение ― возврат номера подключенного банка.<br />
* C200-C2FF ― разъём 2.<br />
* C300-C3FF ― разъём 3.<br />
* C400-C4FF ― разъём 4.<br />
* C500-C5FF ― разъём 5.<br />
* C700-C7FF ― Видеорежим Агат, переключение ДК а режим Агат/Apple (ПМ)<br />
<br />
=== ПА и ПМ ===<br />
* '''ПА''' ― «Признак Apple»<br />
** 0 ― ОЗУ в режиме Агат, только сброс.<br />
** 1 ― ОЗУ в режиме Apple, запись по адресу C0F0-C0FF<br />
* '''ПМ''' ― «Признак Машины»<br />
** 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C05F <br/>или C700-C7FF (при ПА==1)<br />
** 1 ― ДК в режиме Агат, обращение по адресам C700-C7FF при ПА==0<br />
<br />
=== Порт клавиатуры ===<br />
Для работы с клавиатурой используются следующие порты ввода-вывода:<br />
* C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.<br />
* C063 &ndash; линия Р/Л, старший бит кода нажатой клавиши (бит 7).<br />
* C010&mdash;C01F &ndash; обращение по этим адресам сбрасывает буфер для приема следующей клавиши.<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&diff=3745Агат/Техническая информация2024-02-14T08:54:28Z<p>Panther: /* Контроллер и дисковод 140к */</p>
<hr />
<div>{{Emuverse}}<br />
<br />
== Контроллер и дисковод 140к ==<br />
* Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0!<br />
* Используется свой алгоритм кодирования [https://en.wikipedia.org/wiki/Group_coded_recording GCR 6.2], отличающийся от Apple Disk ][?<br />
** Пока замечено, что два «лишних» байта при кодировании первого блока «заворачиваются» на начало буфера, а в найденных эмуляторах Apple берутся нулевыми, что не влияет на раскодированные данные, но меняет контрольную сумму.<br />
* Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно.<br />
* Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки.<br />
<br />
Документация по nib-формату:<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md<br />
<br />
== Агат-9 ==<br />
=== Распределение портов ===<br />
* C050-C05F ― чт/зп ― видеорежим Apple, переключение ДК в режим Apple (ПМ <= 0).<br />
* C080-C08F ― режим пзу, псевдо-пзу, сегмента D000-DFFF.<br />
* C0F0-C0FF ― запись ― переключение ПА <= 1, чтение ― ?.<br />
* C100-C1FF ― запись ― переключение страниц памяти, чтение ― возврат номера подключенного банка.<br />
* C200-C2FF ― разъём 2.<br />
* C300-C3FF ― разъём 3.<br />
* C400-C4FF ― разъём 4.<br />
* C500-C5FF ― разъём 5.<br />
* C700-C7FF ― Видеорежим Агат, переключение ДК а режим Агат/Apple (ПМ)<br />
<br />
=== ПА и ПМ ===<br />
* '''ПА''' ― «Признак Apple»<br />
** 0 ― ОЗУ в режиме Агат, только сброс.<br />
** 1 ― ОЗУ в режиме Apple, запись по адресу C0F0-C0FF<br />
* '''ПМ''' ― «Признак Машины»<br />
** 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C05F <br/>или C700-C7FF (при ПА==1)<br />
** 1 ― ДК в режиме Агат, обращение по адресам C700-C7FF при ПА==0<br />
<br />
=== Порт клавиатуры ===<br />
Для работы с клавиатурой используются следующие порты ввода-вывода:<br />
* C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.<br />
* C063 &ndash; линия Р/Л, старший бит кода нажатой клавиши (бит 7).<br />
* C010&mdash;C01F &ndash; обращение по этим адресам сбрасывает буфер для приема следующей клавиши.<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&diff=3744Агат/Техническая информация2024-02-14T08:47:12Z<p>Panther: /* Агат-9 */</p>
<hr />
<div>{{Emuverse}}<br />
<br />
== Контроллер и дисковод 140к ==<br />
* Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0!<br />
* Используется свой алгоритм кодирования [https://en.wikipedia.org/wiki/Group_coded_recording GCR 6.2], отличающийся от Apple Disk ][?<br />
* Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно.<br />
* Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки.<br />
<br />
Документация по nib-формату:<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md<br />
<br />
== Агат-9 ==<br />
=== Распределение портов ===<br />
* C050-C05F ― чт/зп ― видеорежим Apple, переключение ДК в режим Apple (ПМ <= 0).<br />
* C080-C08F ― режим пзу, псевдо-пзу, сегмента D000-DFFF.<br />
* C0F0-C0FF ― запись ― переключение ПА <= 1, чтение ― ?.<br />
* C100-C1FF ― запись ― переключение страниц памяти, чтение ― возврат номера подключенного банка.<br />
* C200-C2FF ― разъём 2.<br />
* C300-C3FF ― разъём 3.<br />
* C400-C4FF ― разъём 4.<br />
* C500-C5FF ― разъём 5.<br />
* C700-C7FF ― Видеорежим Агат, переключение ДК а режим Агат/Apple (ПМ)<br />
<br />
=== ПА и ПМ ===<br />
* '''ПА''' ― «Признак Apple»<br />
** 0 ― ОЗУ в режиме Агат, только сброс.<br />
** 1 ― ОЗУ в режиме Apple, запись по адресу C0F0-C0FF<br />
* '''ПМ''' ― «Признак Машины»<br />
** 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C05F <br/>или C700-C7FF (при ПА==1)<br />
** 1 ― ДК в режиме Агат, обращение по адресам C700-C7FF при ПА==0<br />
<br />
=== Порт клавиатуры ===<br />
Для работы с клавиатурой используются следующие порты ввода-вывода:<br />
* C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.<br />
* C063 &ndash; линия Р/Л, старший бит кода нажатой клавиши (бит 7).<br />
* C010&mdash;C01F &ndash; обращение по этим адресам сбрасывает буфер для приема следующей клавиши.<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%9F%D0%B0%D1%80%D1%82%D0%BD%D1%91%D1%80_01.01&diff=3743Партнёр 01.012024-02-06T10:36:30Z<p>Panther: /* Документация */ + 1</p>
<hr />
<div>{{Википедия|Партнер 01.01}}<br />
{{Карточка компьютера<br />
| Photo = <br />
| Type = Домашний компьютер<br />
| Released = 1987<br />
| Discontinued = <br />
| Processor = [[КР580ВМ80А]]<br />
| Memory = ОЗУ — 64 КБ, ПЗУ — 16 KБ<br />
| OS = <br />
}}<br />
'''«Партнер 01.01»''' — советский 8-разрядный бытовой компьютер. Разработан на основе схемотехники [[Радио 86РК]] и сохраняет с ним частичную программную совместимость. Серийно выпускался на производственном объединении «САМ» СКБ ВМ в г.Рязань примерно с середины 1987 года.<br />
<br />
== Технические характеристики ==<br />
* Процессор: [[КР580ВМ80А]]<br />
* Быcтродействие: 370 тысяч (регистровых) операций в секунду<br />
* Память: [[ОЗУ]] — 64 [[Килобайт|КБ]], [[Постоянное запоминающее устройство|ПЗУ]] — 16 КБ (ROM-BIOS, монитор, редактор текстов и бейсик)<br />
* Разрешение экрана: текстовый режим 25 строк по 64 символа, монохром (с модулем МЦПГ — 8 цветов). Полноценного графического режима нет, но есть псевдографика с разрешением 128×62 и 128×129.<br />
* Габариты: 418×334×64 мм<br />
* Масса: 3,7 кг<br />
* Потребляемая мощность: 22 Вт<br />
<br />
<br />
Выполнен в виде моноблока, в котором размещены блок питания, плата и клавиатура. В качестве устройства вывода использовался обычный телевизор (через антенный вход) либо монитор «Электроника» МС 6105. Внешнее запоминающее устройство — бытовой кассетный магнитофон.<br />
<br />
В отличие от «Радио-86РК», имеющего возможность отображения набора лишь из 128 символов, знакогенератор ПК «Партнёр» имеет 8 наборов символов, переключаемых программно. Среди них присутствуют: стандартный набор символов «Радио-86РК», основанный на [[КОИ-7]] Н2 (смешанный русско-английский, только заглавные буквы, отсутствует твёрдый знак и буква Ё), полноценные наборы символов русского и английского языков с заглавными и строчными буквами (так называемая [[Основная кодировка]] ГОСТ), несколько наборов псевдографики.<br />
<br />
Отличительная особенность ПК Партнер — возможность подключения дополнительных модулей. Модули — небольшие одноплатные картриджи в пластмассовом корпусе. К ПЭВМ можно подключить до восьми модулей (4 — к моноблоку и 4 — к дополнительному расширителю)<br />
* Партнер-02.01 — Модуль параллельного интерфейса<br />
* Партнер-03.11 — Модуль программатора ПЗУ<br />
* Партнер-01.61 — Модуль цветной псевдографический (МЦПГ)<br />
* Партнер-01.51 — Модуль контроллера дисковода<br />
* Партнер-02.11 — Модуль последовательного интерфейса<br />
<br />
Модуль МЦПГ позволял подключать компьютер к цветным телевизорам, имеющим RGB-вход, и расширял графические и звуковые возможности компьютера. В состав модуля входили [[видеоконтроллер]] [[КР580ВГ75]], микросхема таймера [[КР580ВИ53]] и [[ОЗУ]] [[знакогенератор]]а на двух микросхемах КР537РУ10, общим объёмом 4 КБ. Видеоконтроллер работал параллельно с видеоконтроллером компьютера и позволял отображать поверх обычного текстового экрана цветное изображение, создаваемое из загружаемых в ОЗУ знакогенератора символов. При этом разрешение графики, выводимой МЦПГ, не совпадало с разрешением текстового экрана (символы 4×8 вместо 6×8 пикселей). Микросхема таймера использовалась в качестве трёхканального синтезатора звука. В комплект поставки модуля входила [[магнитофонная кассета|кассета]] с [[графические программы|графической программой]] и несколькими играми, поддерживающими возможности МЦПГ.<ref>[http://bashkiria-2m.narod.ru/arendatr/MODULES/r0161.htm Руководство по эксплуатации]</ref><br />
<br />
== Программное обеспечение ==<br />
<br />
Вместе с компьютером поставлялось программное обеспечение на кассетах — языки [[Бейсик]], [[Язык ассемблера|Ассемблер]], [[Форт (язык программирования)|Форт]].<br />
В ПЗУ компьютера было прошито следующее ПО:<br />
* операционная система «Монитор» (сильно расширенная версия «Монитора» [[Радио 86РК]], учитывавшая продвинутые возможности Партнёра), было выпущено 3 версии «Монитора»;<br />
* интерпретатор языка Бейсик (почти полный клон Basic *MICRON* [[Радио 86РК]]), интерпретатор загружался в ОЗУ за 2 секунды;<br />
* строчный редактор и ассемблер, заимствованные у [[Радио 86РК]].<br />
Полная программная совместимость с [[Радио 86РК]], [[Микроша]], [[Апогей БК-01]] отсутствует (т.к. другие адреса экранного буфера и портов БИС), но общность технических решений и входных точек стандартных подпрограмм ROM-BIOS позволяла легко адаптировать несовместимые программы с этих компьютеров на Партнёр, благодаря чему было доступно множество системных и игровых программ.<br />
При подключении модуля контроллера дисковода возможно использование адаптированной версии ОС [[CP/M]] с дискетами формата 360 кб.<br />
<br />
== Публикации ==<br />
* [[Партнёр/Радиолюбитель 1994/Большие возможности ПК «Партнёр»|Большие возможности ПК «Партнёр»]] — «Радиолюбитель», 1994.<br />
<br />
== Документация ==<br />
* {{djvu}} [https://emuverse.ru/downloads/computers/Partner/docs/Partner_Schematics_Album.djvu Альбом схем]<br />
* {{pdf}} [https://emuverse.ru/downloads/computers/Partner/docs/Partner_Operators_Manual.pdf Руководство оператора] ([https://xlat.livejournal.com/559201.html источник])<br />
<br />
== Ссылки ==<br />
* [http://arendatr.chat.ru/ Сайт Михаила Голованова]<br />
* [http://bashkiria-2m.narod.ru/ Эмулятор]<br />
<br />
== Файлы ==<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Partner/firmware/ Несколько вариантов ПЗУ]<br />
* {{zip}} [https://emuverse.ru/downloads/computers/Partner/software/ Коллекция программ]<br />
<br />
[[Категория:Партнёр|*]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%9E%D1%80%D0%B8%D0%BE%D0%BD-128&diff=3741Орион-1282024-02-03T18:04:20Z<p>Panther: /* Ссылки */</p>
<hr />
<div>{{Википедия}}<br />
<br />
'''«Орион-128»''' — любительский 8-разрядный [[персональный компьютер]]. Разработан радиолюбителями из подмосковья — Вячеславом Сафроновым, Владиславом Сугоняко, Константином Коненковым. Схема и описание компьютера были опубликованы в [[Радио (журнал)|журнале «Радио»]] № 1/[[1990]], другие материалы по теме публиковались в этом журнале до [[1996]] года.<br />
<br />
Технические характеристики:<br />
* Процессор: [[КР580ВМ80А]] на частоте 2,5 МГц, быстродействие 625 тысяч оп/сек.<br />
* Память: [[ОЗУ]] — 128 Кб с возможностью наращивания до 256 Кб, [[ПЗУ]] — 2&nbsp;Kб<br />
* Устройство вывода: телевизор; работа в графическом режиме 384&nbsp;&times;&nbsp;256 точек; 25 строк по 64 символа при использовании стандарного шрифта; цветность: монохромный, 4, 16 цветов<br />
* Внешняя память: бытовой магнитофон, ROM-диск 64 Кб, DD дисковод<br />
* Клавиатура: 64 клавиши в матрице 8*8 плюс 3 отдельных или промышленная клавиатура MS7007<br />
<br />
== Программное обеспечение ==<br />
* Монитор 1/2/3<br />
* Операционные системы: ORDOS 2.40/4.03, [[CP/M]] 2.2, SPDOS, [http://orion-128.narod.ru DSDOS]<br />
* Написанные любителями и адаптированные игры<br />
<br />
== См. также ==<br />
* [[Орион-Про]]<br />
<br />
== Ссылки ==<br />
* [http://emu80.org/ Эмулятор Ориона Виктора Пыхонина]<br />
* [https://github.com/serge-404/OriZEmu Эмулятор Ориона Orion/Z от Error404]<br />
* [http://rdk.regionsv.ru/orion128.htm ПК Орион-128 возрождение, модернизация, клоны, апгрейд, Орион-Про]<br />
* [http://www.computer-museum.ru/histussr/orion.htm История компьютера «Орион» на сайте Виртуального компьютерного музея]<br />
* <s>[http://orion-z.hoter.ru/ Исполняемые файлы и исходные тексты эмулятора Орион/Z (Орион + Z80), вспомогательных утилит, архивы игр и программ Ориона]</s><br />
* <s>[http://gri.irk.ru/orion/ Сайт эмулятора Ориона на процессоре КР580ВМ80 (i8080)]</s><br />
* <s>[http://orion128.nikom.biz/ Информация о истории и развитии Ориона (документация, программы Ориона)]</s><br />
<br />
== Документация ==<br />
* [[:Категория:Орион-128/Публикации|Публикации в журнале Радио]]<br />
* [[Орион-128/Техническая информация|Техническая информация]]<br />
* [[Орион-128/Радио 12-92/Контроллер НГМД|Контроллер дисковода]] (Вариант 1, SP-DOS)<br />
* [[Орион-128/Радио 05,06-93/СР/М-80. Контроллер дисковода|Контроллер дисковода]] (Вариант 2, CP/M)<br />
* {{djvu}}{{статья<br />
|заглавие = Операционная система СР/М-80 для ПРК «Орион-128»<br />
|издание = журнал «Радиолюбитель»<br />
|номер = 11, 12, 1, 2, 3<br />
|год = 1992, 1993<br />
|ссылка = https://emuverse.ru/downloads/computers/Orion-128/docs/Orion-128_CPM.djvu<br />
}}<br />
* {{djvu}}{{статья<br />
|заглавие = «Орион-128»: контроллер дисковода<br />
|издание = журнал «Радиолюбитель»<br />
|номер = 5-7<br />
|год = 1993<br />
|ссылка = https://emuverse.ru/downloads/computers/Orion-128/docs/Orion-128_FDC.djvu<br />
}}<br />
* [[Орион-128/ZCard-II|Установка Z80]] («Ленинградский вариант», Z80Card-II, ставший стандартом де-факто)<br />
* [[Орион-128/Радио 04,06-96/Z80 CARD|Установка Z80]] («Орион-Сервис», «Московский», Z80Card)<br />
<br />
=== Схемы ===<br />
* {{rar}} [https://emuverse.ru/downloads/computers/Orion-Pro/docs/OrionPro-PCAD.rar Комплект схем]. Авторские схемы в формате PCAD 4.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/Scheme_corrected.png Схема 1]. Оригинал из журнала, с исправлениями.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/Orion_scheme.png Схема 2]. Авторский доработанный вариант.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/ROMDISK_scheme.png ROM-DISK].<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/Z80-1.png Установка Z80]. Авторский вариант, плата в панель ВМ80.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/Z80CardII.png Z80Card-II]. «Ленинградский вариант» Чистякова.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/KTR.png Контроллер дисковода]. Авторский вариант.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/FDC-Altair-Scheme.png Контроллер дисковода]. Вариант «Altair» Чистякова.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/512VI1_orion.GIF RTC]. Часы реального времени. Вариант [http://orion-z.hoter.ru Error404].<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/IDE-RTC.gif IDE+RTC]. «Смоленский» вариант.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/COM-AY.gif COM+AY]. Установка RS-232 и AY-8910.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/scr400x256-AY8910.jpg 400х256+AY]. Отключение 400х256 и AY-8910.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/11MHz-scr480x256-Turbo3,9.jpg Турбо+480х256]. Два турбо-режима и расширенный экран.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/turbo3,5-kempston-RAM_protect.jpg Турбо+Kempston+RAM]. Турбо-режим, джойстик, полное использование RAM.<br />
<br />
== Файлы ==<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_M1.rom Монитор-1]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_M2.rom Монитор-2]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_M31.rom Монитор-3]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_RomDisk1.rom Образ ROM-диска 1]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_RomDisk4.rom Образ ROM-диска 2]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/RAM_TEST.BIN RAM-TEST]<br />
<br />
[[Категория:Орион-128|*]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&diff=3740Агат/Техническая информация2024-01-26T22:07:38Z<p>Panther: </p>
<hr />
<div>{{Emuverse}}<br />
<br />
== Контроллер и дисковод 140к ==<br />
* Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0!<br />
* Используется свой алгоритм кодирования [https://en.wikipedia.org/wiki/Group_coded_recording GCR 6.2], отличающийся от Apple Disk ][?<br />
* Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно.<br />
* Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки.<br />
<br />
Документация по nib-формату:<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md<br />
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md<br />
<br />
== Агат-9 ==<br />
=== Порт клавиатуры ===<br />
Для работы с клавиатурой используются следующие порты ввода-вывода:<br />
* C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.<br />
* C063 &ndash; линия Р/Л, старший бит кода нажатой клавиши (бит 7).<br />
* C010&mdash;C01F &ndash; обращение по этим адресам сбрасывает буфер для приема следующей клавиши.<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82&diff=3739Агат2024-01-18T09:56:55Z<p>Panther: /* Документация */</p>
<hr />
<div>{{Emuverse}}<br />
<br />
'''«Ага́т»''' — советский серийный 8-разрядный персональный компьютер. <br />
<br />
== Документация ==<br />
* [[MOS Technology 6502|Документация на процессор 6502]]<br />
* [[/Техническая информация|Техническая информация]]<br />
* {{djvu}} {{книга<br />
|автор = Мымрин М. П.<br />
|заглавие = Конструкция, применение, программирование и ремонт ПЭВМ «Агат».<br />
|место = М.<br />
|издательство = Машиностроение, 1990.<br />
|том = <br />
|isbn = <br />
|ссылка = https://emuverse.ru/downloads/computers/Agat/docs/Mymrin.djvu<br />
}}<br />
* {{djvu}} {{книга<br />
|автор = Петров А. О.<br />
|заглавие = Персональные компьютеры семейства Apple II (обзор)<br />
|место = <br />
|издательство = <br />
|том = <br />
|isbn = <br />
|ссылка = https://emuverse.ru/downloads/computers/Agat/docs/petrov-bw.djvu<br />
}}<br />
* Источник: http://www.agat-legacy.narod.ru/<br />
** [https://emuverse.ru/downloads/computers/Agat/docs/agat-legacy.narod.ru/chs.xls Алгоритм расчета контрольной суммы диска Агат-7, Агат-9]<br />
** [https://emuverse.ru/downloads/computers/Agat/docs/agat-legacy.narod.ru/image.xls Формат файла образа диска]<br />
** [https://emuverse.ru/downloads/computers/Agat/docs/agat-legacy.narod.ru/link.xls Интерфейс Агат-PC]<br />
** [https://emuverse.ru/downloads/computers/Agat/docs/agat-legacy.narod.ru/teac.rar Исходный код прошивки контроллера дисковода с комментариями]<br />
* {{www}} http://ssmu.ru/er/agat/Reading/<br />
<br />
== Файлы ==<br />
* Источник: [http://emulator3000.org/e3.htm Эмулятор 3000]<br />
** {{rom}} [https://emuverse.ru/downloads/computers/Agat/firmware/E3000/Agat9.rom Агат-9 ROM]<br />
** {{rom}} [https://emuverse.ru/downloads/computers/Agat/firmware/E3000/Agat9.fnt Агат-9 Font]<br />
** {{rom}} [https://emuverse.ru/downloads/computers/Agat/firmware/E3000/Disk140K.rom Загрузочное ПЗУ контроллера НГМД 140 К]<br />
** {{rom}} [https://emuverse.ru/downloads/computers/Agat/firmware/E3000/Disk1M.rom Загрузочное ПЗУ контроллера НГМД 840 K]<br />
* [https://emuverse.ru/downloads/computers/Agat/emulators/agat!.zip Эмулятор Сергея Гоцуляка] (Кажется, взят с http://www.sergo.pisem.net, уже неработающего)<br />
<br />
== Ссылки ==<br />
* [[w:Агат (компьютер)|статья в Википедии]]<br />
* http://www.agatcomp.ru/ Самый большой архив информации<br />
* http://web.ssmu.ru/er/agat/ Эмулятор, программы, документация<br />
** http://deka18.tsk.ru/er/agat/ (зеркало)<br />
* http://agatemulator.sourceforge.net/ - Эмулятор, информация о компьютере<br />
* http://agat9.narod.ru/ Эмулятор, документация, публикации (полумёртв)<br />
* http://www.agat-legacy.narod.ru/ Программы, немного документации<br />
* http://kasarino.narod.ru/agat/ Два эмулятора и несколько программ<br />
* {{www}} [http://retropc.org/index.html?action=w_razdela&id_razdel=31#c113 Документация на сайте retropc.org]<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%90%D0%B3%D0%B0%D1%82/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F&diff=3738Агат/Техническая информация2024-01-18T09:56:03Z<p>Panther: Новая страница: «{{Emuverse}} == Агат-9 == === Порт клавиатуры === Для работы с клавиатурой используются следующие порты ввода-вывода: * C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению. * C063 &ndash; линия Р/Л, старший бит кода нажат...»</p>
<hr />
<div>{{Emuverse}}<br />
<br />
== Агат-9 ==<br />
=== Порт клавиатуры ===<br />
Для работы с клавиатурой используются следующие порты ввода-вывода:<br />
* C000&mdash;C00F &ndash; код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.<br />
* C063 &ndash; линия Р/Л, старший бит кода нажатой клавиши (бит 7).<br />
* C010&mdash;C01F &ndash; обращение по этим адресам сбрасывает буфер для приема следующей клавиши.<br />
<br />
[[Категория:Агат]]</div>Pantherhttps://emuverse.ru/w/index.php?title=MOS_Technology_6502/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4&diff=3737MOS Technology 6502/Система команд2024-01-15T06:47:56Z<p>Panther: /* Источники */</p>
<hr />
<div>{{Emuverse}}<br />
<small>{{TOCright}}</small><br />
== Регистры ==<br />
* A — аккумулятор, 8 бит;<br />
* X, Y — индексные регистры, 8 бит;<br />
* PC — счетчик команд, 16 бит;<br />
* S — указатель стека, 8 бит;<br />
* P — регистр состояния;<br />
** <tt>C (P0)</tt> — перенос;<br />
** <tt>Z (P1)</tt> — ноль;<br />
** <tt>I (P2)</tt> — запрет внешних прерываний — IRQ (I=0 — прерывания разрешены);<br />
** <tt>D (P3)</tt> — режим BCD для инструкций сложения и вычитания с переносом;<br />
** <tt>B (P4)</tt> — обработка прерывания (B=1 после выполнения команды BRK);<br />
** <tt>1 (P5)</tt> — не используется, равен 1;<br />
** <tt>V (P6)</tt> — переполнение;<br />
** <tt>N (P7)</tt> — знак. Равен старшему биту значения, загруженного в A, X или Y в результате выполнения операции (кроме TXS).<br />
<br />
== Режимы адресации и страницы ==<br />
Вся адресуемая 6502 память разбита на страницы по 256 байт. Если при обработке команды происходит пересечение границы страницы, инструкции могут выполняться несколько по-другому, что описано ниже. Две страницы имеют особое значение — страница 0 (00H-FFH), называемая «нулевой» — для этой страницы выделен особый режим адресации с однобайтовым адресом. Другая особая страница — № 1 (100H-1FFH), отведенная под стек. Так как регистр указателя стека восьмиразрядный, при обращении к стеку к значению регистра всегда добавляется 100H.<br />
<br />
Многие команды могут работать с несколькими режимами адресации, которые перечислены ниже:<br />
<br />
{| class=border<br />
! Название англ.<br />
! Название русск.<br />
! Описание<br />
! Обозначение<br />
! Пример<br />
! Код<br />
|-<br />
| Immediate<br />
| Непосредственная<br />
| Операнд располагается сразу за кодом инструкции<br />
| #<br />
| LDA #$0A<br />
| A9 02<br />
|-<br />
| Absolute<br />
| Абсолютная (прямая)<br />
| Адрес операнда располагается сразу за кодом инструкции<br />
|<br />
| LDA $1234<br />
| AD 34 12<br />
|-<br />
| Zeropage<br />
| Абсолютная на нулевой странице (для адресов 00H-0FFH)<br />
|<br />
|<br />
| LDA $2F<br />
| A5 2F<br />
|-<br />
| Accumulator/Implied<br />
| Аккумуляторная/Неявная<br />
| Операнд подразумевается самой командой.<br />
|<br />
| TAX<br />
| AA<br />
|-<br />
| Absolute, x<br />Absolute, y<br />
| Абсолютная индексная<br />
| Адрес, указанный за кодом операции, складывается со значением индексного регистра<br />
| ADDR, X<br /> ADDR, Y<br />
| nowrap | LDA $1234, X<br /> LDA $1234, Y<br />
| nowrap | D9 34 12<br />DD 34 12<br />
|-<br />
| Zeropage, x<br />Zeropage, y<br />
| Абсолютная индексная на нулевой странице<br />
|<br />
| ADDR, X<br /> ADDR, Y<br />
| LDA $2F, X<br />
| B5 2F<br />
|-<br />
| Indirect<br />
| Косвенная<br />
| Только в команде JMP. Новый адрес для счетчика команд берется из памяти, по адресу, указанному за кодом команды<br />
| (ADDR)<br />
| JMP ($1234)<br />
| 6С 34 12<br />
|-<br />
| Indirect, x<br />
| Индексно-косвенная на нулевой странице<br />
| Адрес операнда складывается из байта, следующего за кодом команды и содержимого регистра X. Важно! Старший байт суммы отбрасывается!<br />
| (ADDR, X)<br />
| LDA ($3E, X)<br />
| A1 3E<br />
|-<br />
| Indirect, y<br />
| Косвенно-индексная<br />
| Адрес операнда складывается из двух байт в нулевой странице по адресу, указанному вторым байтом команды, и регистра Y.<br />
| (ADDR), Y<br />
| LDA ($4C), Y<br />
| B1 4C<br />
|-<br />
| Relative<br />
| Относительная<br />
| Используется в условных переходах. Второй байт команды (как число со знаком от −128 до +127) добавляется к счетчику команд при выполнении условия. Важно! При сложении используется адрес команды, следующей за командой условного перехода, а не адрес выполняемой команды!<br />
|<br />
| BEQ $A7<br />
| F0 A7<br />
|}<br />
<br />
== Алфавитный список команд ==<br />
Влияние на флаги:<br />
* «*» — влияет;<br />
* «-» — не влияет;<br />
* «0» — устанавливает в 0;<br />
* «1» — устанавливает в 1;<br />
<br />
Тайминги<br />
* «*» означает, что время увеличивается на 1 такт, если код команды пересекает границу страницы;<br />
* «+» означает время в случае перехода в пределах страницы;<br />
* «++» означает время в случае перехода за пределы текущей страницы;<br />
<br />
{{Команда<br />
| Обозначение = ADC<br />
| Операция = A + M + C -> A, C<br />
| Описание = Сложение с переносом<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| IMM | ADC #Oper | 69 | 2 | 2<br />
| ZP | ADC Oper | 65 | 2 | 3<br />
| ZP, X | ADC Oper,X | 75 | 2 | 4<br />
| ABS | ADC Oper | 6D | 3 | 4<br />
| ABS, X | ADC Oper,X | 7D | 3 | 4*<br />
| ABS, Y | ADC Oper,Y | 79 | 3 | 4*<br />
| IND, X | ADC (Oper,X) | 61 | 2 | 6<br />
| IND, Y | ADC (Oper),Y | 71 | 2 | 5*<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = AND<br />
| Операция = A and M -> A<br />
| Описание = Логическое AND<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | AND #Oper | 29 | 2 | 2<br />
| ZP | AND Oper | 25 | 2 | 3<br />
| ZP, X | AND Oper,X | 35 | 2 | 4<br />
| ABS | AND Oper | 2D | 3 | 4<br />
| ABS, X | AND Oper,X | 3D | 3 | 4*<br />
| ABS, Y | AND Oper,Y | 39 | 3 | 4*<br />
| IND, X | AND (Oper,X) | 21 | 2 | 6<br />
| IND, Y | AND (Oper),Y | 31 | 2 | 5<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ASL<br />
| Операция = C <- [A или M] <- 0<br />
| Описание = Арифметический сдвиг влево<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ACC | ASL A | 0A | 1 | 2<br />
| ZP | ASL Oper | 06 | 2 | 5<br />
| ZP, X | ASL Oper,X | 16 | 2 | 6<br />
| ABS | ASL Oper | 0E | 3 | 6<br />
| ABS, X | ASL Oper,X | 1E | 3 | 7<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BCC<br />
| Операция = Branch on Carry Clear<br />
| Описание = Условный переход, если нет переноса<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BCC Oper | 90 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BCS<br />
| Операция = Branch on Carry Set<br />
| Описание = Условный переход, если перенос<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BCS Oper | B0 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BEQ<br />
| Операция = Branch on Equal<br />
| Описание = Условный переход, если равно (Z=1)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BEQ Oper | F0 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BIT<br />
| Операция = (A and M) == 0 -> Z, M7 -> N, M6 -> V<br />
| Описание = Проверка битов<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * -<br />
| ZP | BIT Oper | 24 | 2 | 3<br />
| ABS | BIT Oper | 2C | 3 | 4<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BMI<br />
| Операция = Branch on Minus<br />
| Описание = Условный переход, если отрицательно (S=1)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BMI Oper | 30 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BNE<br />
| Операция = Branch on Not Equal<br />
| Описание = Условный переход, если не равно (Z=0)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BNE Oper | D0 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BPL<br />
| Операция = Branch on Plus<br />
| Описание = Условный переход, если положительно (S=0)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BPL Oper | 10 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BRK<br />
| Операция = PC+2 -> (S+1200), P -> (S-2), S-3 -> S, ($FFFE) -> PC<br />
| Описание = Программное прерывание<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - 1 - 1 - -<br />
| IMP | BRK | 00 | 1 | 7<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BVC<br />
| Операция = Branch on Overflow Clear<br />
| Описание = Условный переход, если нет переполнения (V=0)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BVC Oper | 50 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BVS<br />
| Операция = Branch on Overflow Set<br />
| Описание = Условный переход, если переполнение (V=1)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BVS Oper | 70 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLC<br />
| Операция = 0 -> C<br />
| Описание = Очистка флага переноса<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - 0<br />
| IMP | CLC | 18 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLD<br />
| Операция = 0 -> D<br />
| Описание = Очистка флага BCD<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - 0 - - -<br />
| IMP | CLD | D8 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLI<br />
| Операция = 0 -> I<br />
| Описание = Очистка флага запрета прерываний<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - 0 - -<br />
| IMP | CLI | 58 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLV<br />
| Операция = 0 -> V<br />
| Описание = Очистка флага переполнения<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - 0 - - - - - -<br />
| IMP | CLV | B8 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CMP<br />
| Операция = A – M<br />
| Описание = Сравнение аккумулятора с памятью<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | CMP #Oper | C9 | 2 | 2 <br />
| ZP | CMP Oper | C5 | 2 | 3<br />
| ZP, X | CMP Oper,X | D5 | 2 | 4<br />
| ABS | CMP Oper | CD | 3 | 4<br />
| ABS, X | CMP Oper,X | DD | 3 | 4*<br />
| ABS, Y | CMP Oper,Y | D9 | 3 | 4*<br />
| IND, X | CMP (Oper,X) | C1 | 2 | 6<br />
| IND, Y | CMP (Oper),Y | D1 | 2 | 5*<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CPX<br />
| Операция = X – M<br />
| Описание = Сравнение X с памятью<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | CPX *Oper | E0 | 2 | 2<br />
| ZP | CPX Oper | E4 | 2 | 3<br />
| ABS | CPX Oper | EC | 3 | 4<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CPY<br />
| Операция = Y – M<br />
| Описание = Сравнение Y с памятью<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | CPY *Oper | C0 | 2 | 2 <br />
| ZP | CPY Oper | C4 | 2 | 3 <br />
| ABS | CPY Oper | CC | 3 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DEC<br />
| Операция = M – 1 -> M<br />
| Описание = Декремент памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ZP | DEC Oper | C6 | 2 | 5 <br />
| ZP, X | DEC Oper,X | D6 | 2 | 6 <br />
| ABS | DEC Oper | CE | 3 | 6 <br />
| ABS, X | DEC Oper,X | DE | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DEX<br />
| Операция = X – 1 -> X<br />
| Описание = Декремент X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | DEX | CA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DEY<br />
| Операция = Y – 1 -> Y<br />
| Описание = Декремент Y<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | DEY | 88 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = EOR<br />
| Операция = A xor M -> A<br />
| Описание = Логическое XOR<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | EOR #Oper | 49 | 2 | 2 <br />
| ZP | EOR Oper | 45 | 2 | 3 <br />
| ZP, X | EOR Oper,X | 55 | 2 | 4 <br />
| ABS | EOR Oper | 4D | 3 | 4 <br />
| ABS, X | EOR Oper,X | 5D | 3 | 4* <br />
| ABS, Y | EOR Oper,Y | 59 | 3 | 4* <br />
| IND, X | EOR (Oper,X) | 41 | 2 | 6 <br />
| IND, Y | EOR (Oper),Y | 51 | 2 | 5* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = INC<br />
| Операция = M + 1 -> M<br />
| Описание = Инкремент памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ZP | INC Oper | E6 | 2 | 5 <br />
| ZP, X | INC Oper,X | F6 | 2 | 6 <br />
| ABS | INC Oper | EE | 3 | 6 <br />
| ABS, X | INC Oper,X | FE | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = INX<br />
| Операция = X + 1 -> X<br />
| Описание = Инкремент X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | INX | E8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = INY<br />
| Операция = Y + 1 -> Y<br />
| Описание = Инкремент Y<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | INY | C8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = JMP<br />
| Операция = (PC+1) -> PC или ((PC+1)) -> PC<br />
| Описание = Безусловный переход<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS | JMP Oper | 4C | 3 | 3 <br />
| IND | JMP (Oper) | 6C | 3 | 5 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = JSR<br />
| Операция = PC+2 -> (S+3000), S - 2 -> S, (PC+1) -> PC<br />
| Описание = Вызов подпрограммы<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS | JSR Oper | 20 | 3 | 6 <br />
| Примечание = В стек помещается адрес следующей команды минус один байт!<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LDA<br />
| Операция = M -> A<br />
| Описание = Загрузка аккумулятора<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LDA #Oper | A9 | 2 | 2 <br />
| ZP | LDA Oper | A5 | 2 | 3 <br />
| ZP, X | LDA Oper,X | B5 | 2 | 4 <br />
| ABS | LDA Oper | AD | 3 | 4 <br />
| ABS, X | LDA Oper,X | BD | 3 | 4* <br />
| ABS, Y | LDA Oper,Y | B9 | 3 | 4* <br />
| IND, X | LDA (Oper,X) | A1 | 2 | 6 <br />
| IND, Y | LDA (Oper),Y | B1 | 2 | 5* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LDX<br />
| Операция = M -> X<br />
| Описание = Загрузка X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LDX #Oper | A2 | 2 | 2 <br />
| ZP | LDX Oper | A6 | 2 | 3 <br />
| ZP, Y | LDX Oper,Y | B6 | 2 | 4 <br />
| ABS | LDX Oper | AE | 3 | 4 <br />
| ABS, Y | LDX Oper,Y | BE | 3 | 4* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LDY<br />
| Операция = M -> Y<br />
| Описание = Загрузка Y<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LDY #Oper | A0 | 2 | 2 <br />
| ZP | LDY Oper | A4 | 2 | 3 <br />
| ZP, X | LDY Oper,X | B4 | 2 | 4 <br />
| ABS | LDY Oper | AC | 3 | 4 <br />
| ABS, X | LDY Oper,X | BC | 3 | 4* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LSR<br />
| Операция = 0 -> [A или M] -> С<br />
| Описание = Логический сдвиг вправо<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = 0 - - - - - * *<br />
| ACC | LSR A | 4A | 1 | 2 <br />
| ZP | LSR Oper | 46 | 2 | 5 <br />
| ZP, X | LSR Oper,X | 56 | 2 | 6 <br />
| ABS | LSR Oper | 4E | 3 | 6 <br />
| ABS, X | LSR Oper,X | 5E | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = NOP<br />
| Операция = No operation<br />
| Описание = Пустая операция<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | NOP | EA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ORA<br />
| Операция = A or M -> A<br />
| Описание = Логическое OR<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | ORA #Oper | 09 | 2 | 2 <br />
| ZP | ORA Oper | 05 | 2 | 3 <br />
| ZP, X | ORA Oper,X | 15 | 2 | 4 <br />
| ABS | ORA Oper | 0D | 3 | 4 <br />
| ABS, X | ORA Oper,X | 1D | 3 | 4* <br />
| ABS, Y | ORA Oper,Y | 19 | 3 | 4* <br />
| IND, X | ORA (Oper,X) | 01 | 2 | 6 <br />
| IND, Y | ORA (Oper),Y | 11 | 2 | 5 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PHA<br />
| Операция = A -> (S + 3700), S - 1 -> S<br />
| Описание = Поместить аккумулятор в стек<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | PHA | 48 | 1 | 3 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PHP<br />
| Операция = P -> (S + 3800), S - 1 -> S<br />
| Описание = Поместить слово состояния в стек<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | PHP | 08 | 1 | 3 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PLA<br />
| Операция = S + 1 -> S, (S + 3900) -> A<br />
| Описание = Загрузить аккумулятор из стека<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | PLA | 68 | 1 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PLP<br />
| Операция = S + 1 -> S, (S + 4000) -> P<br />
| Описание = Загрузить слово состояния из стека<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - * * * * *<br />
| IMP | PLP | 28 | 1 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ROL<br />
| Операция = <- [A или M] <- C <-<br />
| Описание = Циклический сдвиг влево<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ACC | ROL A | 2A | 1 | 2 <br />
| ZP | ROL Oper | 26 | 2 | 5 <br />
| ZP, X | ROL Oper,X | 36 | 2 | 6 <br />
| ABS | ROL Oper | 2E | 3 | 6 <br />
| ABS, X | ROL Oper,X | 3E | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ROR<br />
| Операция = -> C -> [A или M] -><br />
| Описание = Циклический сдвиг вправо<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ACC | ROR A | 6A | 1 | 2 <br />
| ZP | ROR Oper | 66 | 2 | 5 <br />
| ZP, X | ROR Oper,X | 76 | 2 | 6 <br />
| ABS | ROR Oper | 6E | 3 | 6 <br />
| ABS, X | ROR Oper,X | 7E | 3 | 7 <br />
| Примечание = Инструкция ROR доступна в микропроцессорах MCS650X с июня 1976 г.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = RTI<br />
| Операция = (4300 + S + 1) -> P, (4300 + S + 2) -> PC, S + 3 -> S<br />
| Описание = Возврат из прерывания<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - * * * * *<br />
| IMP | RTI | 40 | 1 | 6 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = RTS<br />
| Операция = (4400 + S + 1) -> PС, S + 2 -> S<br />
| Описание = Возврат из подпрограммы<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | RTS | 60 | 1 | 6 <br />
| Примечание = После извлечения адреса возврата из стека к нему прибавляется единица!<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SBC<br />
| Операция = A - M - C -> A, C<br />
| Описание = Вычитание с займом<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| IMM | SBC #Oper | E9 | 2 | 2 <br />
| ZP | SBC Oper | E5 | 2 | 3 <br />
| ZP, X | SBC Oper,X | F5 | 2 | 4 <br />
| ABS | SBC Oper | ED | 3 | 4 <br />
| ABS, X | SBC Oper,X | FD | 3 | 4* <br />
| ABS, Y | SBC Oper,Y | F9 | 3 | 4* <br />
| IND, X | SBC (Oper,X) | E1 | 2 | 6 <br />
| IND, Y | SBC (Oper),Y | F1 | 2 | 5 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SEC<br />
| Операция = 1 -> C<br />
| Описание = Установка флага переноса<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - 1<br />
| IMP | SEC | 38 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SED<br />
| Операция = 1 -> D<br />
| Описание = Установка флага BCD<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - 1 - - -<br />
| IMP | SED | F8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SEI<br />
| Операция = 1 -> I<br />
| Описание = Установка флага запрета прерываний<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - 1 - - -<br />
| IMP | SEI | 78 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = STA<br />
| Операция = A -> M<br />
| Описание = Сохранить аккумулятор в памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | STA Oper | 85 | 2 | 3 <br />
| ZP, X | STA Oper,X | 95 | 2 | 4 <br />
| ABS | STA Oper | 8D | 3 | 4 <br />
| ABS, X | STA Oper,X | 9D | 3 | 5 <br />
| ABS, Y | STA Oper, Y | 99 | 3 | 5 <br />
| IND, X | STA (Oper,X) | 81 | 2 | 6 <br />
| IND, Y | STA (Oper),Y | 91 | 2 | 6 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = STX<br />
| Операция = X -> M<br />
| Описание = Сохранить X в памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | STX Oper | 86 | 2 | 3 <br />
| ZP, Y | STX Oper,Y | 96 | 2 | 4 <br />
| ABS | STX Oper | 8E | 3 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = STY<br />
| Операция = Y -> M<br />
| Описание = Сохранить Y в памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | STY Oper | 84 | 2 | 3 <br />
| ZP, X | STY Oper,X | 94 | 2 | 4 <br />
| ABS | STY Oper | 8C | 3 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TAX<br />
| Операция = A -> X<br />
| Описание = Передать A в X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TAX | AA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TAY<br />
| Операция = A -> Y<br />
| Описание = Передать A в X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TAY | A8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TSX<br />
| Операция = S -> X<br />
| Описание = Передать S в X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TSX | BA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TXA<br />
| Операция = X -> A<br />
| Описание = Передать X в A<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TXA | 8A | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TXS<br />
| Операция = X -> S<br />
| Описание = Передать X в S<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | TXS | 9A | 1 | 2 <br />
| Примечание = В отличие от других операций загрузки, не влияет на флаг N<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TYA<br />
| Операция = Y -> A<br />
| Описание = Передать Y в A<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TYA | 98 | 1 | 2 <br />
}}<br />
<br />
== Особенности ==<br />
=== Пересечение границ страниц в разных режимах адресации ===<br />
В режиме адресации к нулевой странице верхний байт вычисленного адреса всегда обнуляется, поэтому последовательность<br />
<br />
LDX #1<br />
LDA $FF,X<br />
<br />
Загрузит значение из адреса 0000H, а не 0100H, как можно было бы ожидать.<br />
<br />
При косвенной (Indirect) адресации двухбайтовый адрес не может быть извлечен через границу страницы, поэтому все варианты<br />
<br />
LDA ($FF),Y<br />
<br />
LDX #$00<br />
LDA ($FF,X)<br />
<br />
LDX #$FF<br />
LDA ($00,X)<br />
Извлекут младший байт из адреса 00FFH, а младший из 0000H.<br />
<br />
JMP (92FF)<br />
<br />
Получит младший байт из адреса 12FFH, а старший из 1200H.<br />
<br />
=== Внешняя установка флага V ===<br />
В некоторых моделях процессоров есть внешний сигнал -SO, устанавливающий флаг V. Назначение такого сигнала — прерывание ожидания вызова от внешнего устройства в бесконечном цикле команды BVC ($50 $FE).<br />
<br />
=== Флаг B при совпадении BRK и NMI ===<br />
В случае если в момент обработки BRK приходит аппаратное прерывание NMI, процессор переходит по адресу ($FFFA) вместо ($FFFE), а в стек попадает значение P с установленным флагом B.<br />
<br />
=== Работа команд ADC, SBC и ARR в режиме BCD ===<br />
В режиме BCD данные команды работают с числами не двоичном режиме, а BCD-представлении. Фактически, из особенностей нужно упомянуть только влиянии этого режима на установку флагов N, Z и V.<br />
<br />
* Z устанавливается по значению, эквивалентному двоичной, а не BCD-операции.<br />
Например, код<br />
<br />
SED<br />
CLC<br />
LDA #$80<br />
ADC #$80<br />
<br />
Даст в результате A=$60, но при этом Z=1.<br />
<br />
* Флаги N и V устанавливаются после исправления нижнего полубайта, но до исправления верхнего.<br />
<br />
Общий алгоритм работы команды ADC в режиме BCD следующий:<br />
<pre><br />
беззнаковые<br />
A, /* Аккумулятор */<br />
AL, /* нижняя половина аккумулятора */<br />
AH, /* верхняя половина аккумулятора */<br />
<br />
C, /* Флаг переноса */<br />
Z, /* Флаг нуля */<br />
V, /* Флаг переполнения */<br />
N, /* Флаг знака */<br />
<br />
s; /* значение, прибавляемое к аккумулятору */<br />
<br />
AL = (A & 15) + (s & 15) + C; /* Вычисляем нижнюю половину. */<br />
<br />
AH = (A >> 4) + (s >> 4) + (AL > 15); /* Вычисляем верхнюю половину. */<br />
<br />
if (AL > 9) AL += 6; /* BCD-исправление нижней половины. */<br />
<br />
Z = ((A + s + C) & 255 != 0); /* Флаг нуля устанавливается<br />
Как обычно. */<br />
<br />
/* Флаги знака и переполнения устанавливаются как обычно,<br />
но до исправления верхней половины */<br />
<br />
N = (AH & 8 != 0);<br />
V = ((AH << 4) ^ A) & 128 && !((A ^ s) & 128);<br />
<br />
if (AH > 9) AH += 6; /* BCD-исправление верхней половины. */<br />
<br />
/* Перенос – единственный, кто устанавливается в самом конце. */<br />
<br />
C = (AH > 15);<br />
A = ((AH << 4) | (AL & 15)) & 255;<br />
</pre><br />
<br />
С SBC проще. На установку флагов после нее флаг D не влияет.<br />
<br />
<pre><br />
беззнаковые<br />
A, /* Аккумулятор */<br />
AL, /* нижняя половина аккумулятора */<br />
AH, /* верхняя половина аккумулятора */<br />
<br />
C, /* Флаг переноса */<br />
Z, /* Флаг нуля */<br />
V, /* Флаг переполнения */<br />
N, /* Флаг знака */<br />
<br />
s; /* значение, вычитаемое из аккумулятора */<br />
<br />
AL = (A & 15) - (s & 15) - !C; /* Вычисляем нижнюю половину. */<br />
<br />
if (AL & 16) AL -= 6; /* BCD-исправление нижней половины. */<br />
<br />
AH = (A >> 4) - (s >> 4) - (AL & 16); /* Вычисляем верхнюю половину. */<br />
<br />
if (AH & 16) AH -= 6; /* BCD-исправление верхней половины. */<br />
<br />
/* Все флаги устанавливаем как обычно. */<br />
<br />
C = (A - s - !C) & 256 != 0;<br />
Z = (A - s - !C) & 255 != 0;<br />
V = ((A - s - !C) ^ s) & 128 && (A ^ s) & 128;<br />
N = (A - s - !C) & 128 != 0;<br />
<br />
A = ((AH << 4) | (AL & 15)) & 255;<br />
</pre><br />
<br />
=== Другие особенности ===<br />
* Процессор всегда прочитывает второй байт команды условного перехода. Если происходит переход с пересечением границы страницы, то процессор сначала читает байт из текущей страницы, и только потом из нужной.<br />
* Если граница страницы пересекается в других режимах адресации, процессор всегда сначала читает ошибочный байт со страницы, на 1 меньшую, чем нужная.<br />
* Команды вида «Прочитать-Изменить-Записать» выполняют две операции записи — сначала неизмененное значение, затем измененное (то есть INC физически выполняется как LDX loc; STX loc; INX; STX loc).<br />
* В цикле записи сигнал -RDY игнорируется, поэтому перед выполнением DMA его нужно держать не менее 3 циклов подряд, так как это максимально возможное подряд число циклов записи, вызываемое переходом на обработчик прерывания).<br />
* При отработке сигнала -RESET значения в регистрах, за исключением PC, остаются неизменными.<br />
* Процессор всегда прочитывает байт, следующий за кодом команды. Так как многие команды двух-трехбайтовые, это достаточно эффективно.<br />
* Если команда в своем последнем цикле не сохраняет результат в память, то процессор в этот момент читает код следующей команды. Поэтому для таких команд в таблицах обычно указывается время исполнения, на 1 меньше реального.<br />
<br />
=== Обработка прерываний ===<br />
Обработка NMI и IRQ занимает 7 циклов, их обработка в целом похожа на команду BRK. IRQ и BRK устанавливают флаг I, в то время как NMI — нет.<br />
<br />
Перед обработкой прерывания процессор ожидает завершения выполнения текущей команды. Чтобы прерывание было обработано до следующей команды, оно должно быть получено не позднее последнего цикла текущей команды. Исключение есть только для команды BRK. Если прерывание приходит до 4-го цикла (сохранение флагов), то команда игнорируется и происходит переход на обработчик аппаратного прерывания. Обычно это не вызывает проблем, так как в случае совпадения BRK и IRQ все равно устанавливается флаг B, обработчик считает, что выполняется BRK, а IRQ срабатывает по возвращении из обработки BRK. С другой стороны, совпадение BRK и NMI более фатально. Если флаг B не проверяется в обработчике NMI, и перед возвращением адрес возврата не уменьшается на 2, то команда BRK будет потеряна.<br />
<br />
При совпадении IRQ и NMI, процессор, теоретически, должен перейти на обработку NMI, а потом сразу на IRQ, хотя это и не проверено на практике.<br />
<br />
Обработка RESET занимает 6 циклов с момента снятия сигнала. Все регистры сохраняются, кроме PC.<br />
<br />
=== Отличия NMOS и CMOS вариантов ===<br />
* Индексная адресация при пересечении границы страницы:<br />
** NMOS: Дополнительное чтение по неправильному адресу;<br />
** CMOS: Дополнительное чтение последнего байта инструкции;<br />
* Выполнение команд с недопустимыми кодами:<br />
** NMOS: Вешают процессор до выполнения принудительного сброса;<br />
** CMOS: Исполняются как NOP (Резерв на будущее)<br />
* Переход по косвенному адресу, когда операнд пересекает границу страницы (xxFFH):<br />
** NMOS: Второй байт берется из первого байта текущей страницы;<br />
** CMOS: Второй байт берется со следующей страницы, ко времени исполнения добавляется 1 такт.<br />
* Команды вида «Прочитать-Изменить-Записать»<br />
** NMOS: Одна лишняя запись (см. выше);<br />
** CMOS: Одно лишнее чтение.<br />
* Флаг D<br />
** NMOS: После сброса не определен;<br />
** CMOS: Сбрасывается в 0 после аппаратного сброса или прерывания.<br />
* Флаги в режиме BCD<br />
** NMOS: Значения некорректны (см. выше);<br />
** CMOS: Значения правильные, но добавляется 1 цикл.<br />
* Прерывания в момент выборки команды BRK:<br />
** NMOS: Происходит переход по вектору прерывания, а не BRK;<br />
** CMOS: Сначала исполняется команда BRK, потом срабатывает прерывание.<br />
<br />
== Недокументированные команды ==<br />
<br />
Многие недокументированные команды реально не выполняют операцию AND между регистрами. Это происходит автоматически, когда два значения помещаются одновременно на внутреннюю шину с открытыми коллекторами.<br />
<br />
=== NOP ===<br />
Команда NOP, помимо кода 90, может выполняться с другими методами адресации. В этом случае она эквивалентна команде LDA, за исключением того, что она не сохраняет результат и не влияет на флаги.<br />
<br />
{{Команда<br />
| Обозначение = ANE<br />
| Операция = Вар. 1: A = ((A and #581 and X) or ( #$EE and X)) and #byte; Вар. 2: X and #byte -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | ANE #byte | 8B | 2 | ? <br />
| Примечание = В реальности параметр #581 может принимать значения #580, #58 или #$00, что зависит от значения, оставленного на шине видеоконтроллером после прерывания команды в режиме DMA.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ANC<br />
| Операция = Вар. 1: A and #byte -> A, ASL A; Вар. 2: предыдущее без ASL<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | ANC #Oper | 0B | 2 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ANC?<br />
| Операция = Вар. 1: A and #byte -> A, ROL A; Вар. 2: предыдущее без ROL<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | ANC #Oper | 2B | 2 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ARR (ADC + ROR)<br />
| Операция = D=0: A and #byte -> A, ROR, A7->S, A6->V, (A==0)->Z, A6 xor A5 -> C<br><br />
D=1: см. код ниже<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| IMM | ARR #byte | 6B | 2? | ? <br />
| Примечание = Алгоритм для BCD-режима:<br />
<pre><br />
A, /* Аккумулятор */<br />
AL, /* нижняя половина аккумулятора */<br />
AH, /* верхняя половина аккумулятора */<br />
<br />
C, /* Флаг переноса */<br />
Z, /* Флаг нуля */<br />
V, /* Флаг переполнения */<br />
N, /* Флаг знака */<br />
<br />
t, /* вспомогательная переменная */<br />
s; /* байт-параметр команды */<br />
<br />
t = A & s; /* Выполняем AND. */<br />
<br />
AH = t >> 4; /* Делим результат */<br />
AL = t & 15; /* на части. */<br />
<br />
N = C; /* Флаг знака */<br />
Z = !(A = (t >> 1) | (C << 7)); /* Z как обычно */<br />
V = (t ^ A) & 64; /* a V магически. */<br />
<br />
if (AL + (AL & 1) > 5) /* «заплатка» BCD для нижней половины. */<br />
A = (A & 0xF0) | ((A + 6) & 0xF);<br />
<br />
if (C = AH + (AH & 1) > 5) /* Перенос. */<br />
A = (A + 0x60) & 0xFF; /* «заплатка» BCD для верхней половины. */<br />
</pre><br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ASR<br />
| Операция = A and #byte -> A, LSR A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | ASR #Oper | 4B | 2 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DCP (DEC + CMP)<br />
| Операция = M + 1 -> M, A – M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | DCP Oper | C7 | 2 | ? <br />
| ZP, X | DCP Oper,X | D7 | 2 | ? <br />
| ABS | DCP Oper | CF | 3 | ? <br />
| ABS, X | DCP Oper,X | DF | 3 | ? <br />
| ABS, Y | DCP Oper, Y | DB | 3 | ? <br />
| IND, X | DCP (Oper,X) | C3 | 2 | ? <br />
| IND, Y | DCP (Oper),Y | D3 | 2 | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = ISB (INC + SBC)<br />
| Операция = M + 1 -> M, A – M -> A <br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| ZP | ISB Oper | E7 | 2 | ? <br />
| ZP, X | ISB Oper,X | F7 | 2 | ? <br />
| ABS | ISB Oper | EF | 3 | ? <br />
| ABS, X | ISB Oper,X | FF | 3 | ? <br />
| ABS, Y | ISB Oper, Y | FB | 3 | ? <br />
| IND, X | ISB (Oper,X) | E3 | 2 | ? <br />
| IND, Y | ISB (Oper),Y | F3 | 2 | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = LAS<br />
| Операция = M and S -> A, X, S<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ABS, Y | LAS Oper, Y | BB | 3 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LAX<br />
| Операция = M -> A, X<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ZP | LAX Oper | A7 | 2 | ? <br />
| ZP, Y! | LAX Oper,Y | B7 | 2 | ? <br />
| ABS | LAX Oper | AF | 3 | ? <br />
| ABS, Y | LAX Oper,Y | BF | 3 | ? <br />
| IND, X | LAX (Oper,Y) | A3 | 2 | ? <br />
| IND, Y | LAX (Oper),Y | B3 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LXA<br />
| Операция = Вар. 1: A = X = ANE; Вар. 2: A = X = (A & #byte); Вар. 3: A = X = #byte;<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LXA #byte | AB | 2? | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = RLA<br />
| Операция = ROL M, A and M -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | RLA Oper | 27 | 2 | ? <br />
| ZP, X | RLA Oper,X | 37 | 2 | ? <br />
| ABS | RLA Oper | 2F | 3 | ? <br />
| ABS, X | RLA Oper,X | 3F | 3 | ? <br />
| ABS, Y | RLA Oper, Y | 3B | 3 | ? <br />
| IND, X | RLA (Oper,X) | 23 | 2 | ? <br />
| IND, Y | RLA (Oper),Y | 33 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = RRA<br />
| Операция = ROR M, ADC(A, M) -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| ZP | RRA Oper | 67 | 2 | ? <br />
| ZP, X | RRA Oper,X | 77 | 2 | ? <br />
| ABS | RRA Oper | 6F | 3 | ? <br />
| ABS, X | RRA Oper,X | 7F | 3 | ? <br />
| ABS, Y | RRA Oper, Y | 7B | 3 | ? <br />
| IND, X | RRA (Oper,X) | 63 | 2 | ? <br />
| IND, Y | RRA (Oper),Y | 73 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SAX<br />
| Операция = A and X -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | SAX Oper | 87 | 2 | ? <br />
| ZP, Y! | SAX Oper,Y | 97 | 2 | ? <br />
| ABS | SAX Oper | 8F | 3 | ? <br />
| IND, X | SAX (Oper,X) | 83 | 2 | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = SBX (CMP + DEX)<br />
| Операция = (A and X) - #byte -> X<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | SBX #byte | CB | 2 | ? <br />
| Примечание = От CMP осталось вычитание, от DEX – сохранение результата в X. AND берется из одновременного подключения A и X к АЛУ.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHA<br />
| Операция = A & X & (ADDR_HI + 1)) -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IND, Y | SHA (Oper),Y | 93 | 2 | ?<br />
| ABS, Y | SHA Oper,Y | 9F | 3 | ?<br />
| Примечание = ADDR_HI, вероятно, старший байт адреса M?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHS<br />
| Операция = A and X -> S, S and ADDR_HI -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS, Y | SHS Oper,Y | 9B | 3 | ?<br />
| Примечание = ADDR_HI, вероятно, старший байт адреса M?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHX<br />
| Операция = Вар. 1: X and (ADDR_HI + 1) -> M; Вар. 2: X and ADDR_HI -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS, Y | SHX Oper,Y | 9E | 3 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHY<br />
| Операция = Вар. 1: Y & (ADDR_HI + 1) -> M; Вар. 2: Y and ADDR_HI -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS, Y | SHY Oper,Y | 9C | 3 | ?<br />
| Примечание = По другому источнику, режим адресации ABS, X.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SLO (ASL + ORA)<br />
| Операция = ASL M -> M, A or M -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | SLO Oper | 07 | 2 | ? <br />
| ZP, X | SLO Oper,X | 17 | 2 | ? <br />
| ABS | SLO Oper | 0F | 3 | ? <br />
| ABS, X | SLO Oper,X | 1F | 3 | ? <br />
| ABS, Y | SLO Oper, Y | 1B | 3 | ? <br />
| IND, X | SLO (Oper,X) | 03 | 2 | ? <br />
| IND, Y | SLO (Oper),Y | 13 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SRE<br />
| Операция = LSR M -> M, A xor M -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | SRE Oper | 47 | 2 | ? <br />
| ZP, X | SRE Oper,X | 57 | 2 | ? <br />
| ABS | SRE Oper | 4F | 3 | ? <br />
| ABS, X | SRE Oper,X | 5F | 3 | ? <br />
| ABS, Y | SRE Oper, Y | 5B | 3 | ? <br />
| IND, X | SRE (Oper,X) | 43 | 2 | ? <br />
| IND, Y | SRE (Oper),Y | 53 | 2 | ? <br />
}}<br />
<br />
== Порядок декодирования команд ==<br />
<br />
Любую команду 6502 можно представить следующим образом:<br />
<br />
XXXYYYZZ<br />
└┬┘└┬┘└┤<br />
│ │ └── Группа команд<br />
│ └───── Режим адресации<br />
└──────── Код команды<br />
<br />
Таким образом, для уменьшения сравнений можно использовать следующий алгоритм:<br />
<br />
swith ZZ:<br />
case 0:<br />
switch XXX:<br />
case 0:<br />
//Команды 000yyy00<br />
Do_Command_0(yyy);<br />
break;<br />
case 1:<br />
//Команды 001yyy00<br />
Do_Command_1(yyy);<br />
break;<br />
// etc<br />
end;<br />
case 1:<br />
switch XXX:<br />
case 0:<br />
//Команды 000yyy01<br />
Do_Command_2(yyy);<br />
break;<br />
case 1:<br />
//Команды 001yyy01<br />
Do_Command_3(yyy);<br />
break;<br />
// etc<br />
end;<br />
break<br />
end; <br />
<br />
Далее все команды сгруппированы по этому принципу.<br />
* «*» отмечены недокументированные команды)<br />
* HALT обозначает зависание процессора<br />
* «*NOP mode» обозначает, что команда эквивалента «LDA mode», но результат не сохраняется и флаги не меняются.<br />
<br />
??? 000xxx00<br />
000 BRK<br />
001 *NOP zp<br />
010 PHP<br />
011 *NOP abs<br />
100 BPL<br />
101 *NOP zp,x<br />
110 CLC<br />
111 *NOP abs,x<br />
<br />
??? 001xxx00<br />
000 JSR<br />
001 BIT zp<br />
010 PLP impl<br />
011 BIT abs<br />
100 BMI rel<br />
101 *NOP zp,x<br />
110 SEC impl<br />
111 *NOP abs,x<br />
<br />
??? 010xxx00<br />
000 RTI<br />
001 *NOP zp<br />
010 PHA impl<br />
011 JMP abs<br />
100 BVC rel<br />
101 *NOP zp,x<br />
110 CLI impl<br />
111 *NOP abs,x<br />
<br />
??? 011xxx00<br />
000 RTS<br />
001 *NOP zp<br />
010 PLA impl<br />
011 JMP (abs)<br />
100 BVS rel<br />
101 *NOP zp,x<br />
110 SEI impl<br />
111 *NOP abs,x<br />
<br />
??? 100xxx00<br />
000 *NOP<br />
001 STY zp<br />
010 DEY impl<br />
011 STY abs<br />
100 BCC rel<br />
101 STY zp,x<br />
110 TYA impl<br />
111 *SHY abs,x<br />
<br />
??? 101xxx00<br />
000 LDY<br />
001 LDY zp<br />
010 TAY impl<br />
011 LDY abs<br />
100 BCS rel<br />
101 LDY zp,x<br />
110 CLV impl<br />
111 LDY abs,x<br />
<br />
??? 110xxx00<br />
000 CPY<br />
001 CPY zp<br />
010 INY impl<br />
011 CPY abs<br />
100 BNE rel<br />
101 *NOP zp,x<br />
110 CLD impl<br />
111 *NOP abs,x<br />
<br />
??? 111xxx00<br />
000 CPX<br />
001 CPX zp<br />
010 INX impl<br />
011 CPX abs<br />
100 BEQ rel<br />
101 *NOP zp,x<br />
110 SED impl<br />
111 *NOP abs,x<br />
<br />
ORA 000xxx01<br />
000 ind,x<br />
001 zp<br />
010 immed<br />
011 abs<br />
100 ind,y<br />
101 zp,x<br />
110 abs,y<br />
111 abs,x<br />
<br />
AND 001xxx01<br />
EOR 010xxx01<br />
ADC 011xxx01<br />
STA 100xxx01<br />
LDA 101xxx01<br />
CMP 110xxx01<br />
SBC 111xxx01<br />
<br />
ASL 000xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
ROL 001xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
LSR 010xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
ROR 011xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
STX 100xxx10<br />
000 *NOP(HALT)<br />
001 zp<br />
010 TXA (accum)<br />
011 abs<br />
100 *HALT<br />
101 zp,y<br />
110 TXS<br />
111 *SHX**y)<br />
<br />
LDX 101xxx10<br />
000 imm<br />
001 zp<br />
010 TAX (accum)<br />
011 abs<br />
100 *HALT<br />
101 zp,y<br />
110 TSX<br />
111 *y)<br />
<br />
DEC 110xxx10<br />
000 *NOP(HALT)<br />
001 zp<br />
010 DEX (impl)<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
INC 111xxx10<br />
000 *NOP(HALT)<br />
001 zp<br />
010 NOP (impl)<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
*SLO 000xxx11<br />
000 *SLO ind,x<br />
001 *SLO zp<br />
010 *ANC imm<br />
011 *SLO abs<br />
100 *SLO ind,y<br />
101 *SLO zp,x<br />
110 *SLO abs,y<br />
111 *SLO abs,x<br />
<br />
*RLA 001xxx11<br />
000 *RLA ind,x<br />
001 *RLA zp<br />
010 *ANC imm<br />
011 *RLA abs<br />
100 *RLA ind,y<br />
101 *RLA zp,x<br />
110 *RLA abs,y<br />
111 *RLA abs,x<br />
<br />
*SRE 010xxx11<br />
000 *SRE ind,x<br />
001 *SRE zp<br />
010 *ASR imm<br />
011 *SRE abs<br />
100 *SRE ind,y<br />
101 *SRE zp,x<br />
110 *SRE abs,y<br />
111 *SRE abs,x<br />
<br />
*RRA 011xxx11<br />
000 *RRA ind,x<br />
001 *RRA zp<br />
010 *ARR imm<br />
011 *RRA abs<br />
100 *RRA ind,y<br />
101 *RRA zp,x<br />
110 *RRA abs,y<br />
111 *RRA abs,x<br />
<br />
*??? 100xxx11<br />
000 *SAX ind,x<br />
001 *SAX zp<br />
010 *ANE imm<br />
011 *SAX abs<br />
100 *SHA ind,y<br />
101 *SAX* y)<br />
110 *SHS abs,y<br />
111 *SHA**y)<br />
<br />
*??? 101xxx11<br />
000 *LAX ind,x<br />
001 *LAX zp<br />
010 *LXA imm<br />
011 *LAX abs<br />
100 *LAX ind,y<br />
101 *LAX* y)<br />
110 *LAS abs,y<br />
111 *LAX* y)<br />
<br />
*DCP 110xxx11<br />
000 *DCP ind,x<br />
001 *DCP zp<br />
010 *SBX imm<br />
011 *DCP abs<br />
100 *DCP ind,y<br />
101 *DCP zp,x<br />
110 *DCP abs,y<br />
111 *DCP abs,x<br />
<br />
*ISB 111xxx11<br />
000 *ISB ind,x<br />
001 *IBS zp<br />
010 *SBC imm<br />
011 *ISB abs<br />
100 *ISB ind,y<br />
101 *ISB zp,x<br />
110 *ISB abs,y<br />
111 *ISB abs,x<br />
<br />
== Источники ==<br />
* http://www.oxyron.de/html/opcodes02.html<br />
* [http://6502.org/tutorials/65c02opcodes.html 65C02 Opcodes]<br />
* https://emuverse.ru/downloads/datasheets/processors/6502/c64doc.txt<br />
* [http://6502.org/tutorials/interrupts.html Investigating Interrupts]<br />
* [https://www.nesdev.org/the%20'B'%20flag%20&%20BRK%20instruction.txt 6502 'B' flag & BRK opcode]<br />
* [http://www.6502.org/tutorials/vflag.html The Overflow (V) Flag Explained]<br />
* [http://www.6502.org/tutorials/decimal_mode.html Decimal Mode] - псевдокод не везде верен, не проходит собственные тесты<br />
* [https://wilsonminesco.com/NMOS-CMOSdif/ Differences between NMOS 6502 and CMOS 65c02]<br />
<br />
=== Наборы тестов ===<br />
* [https://github.com/Klaus2m5/6502_65C02_functional_tests Klaus Dormann's test suite]<br />
* https://github.com/TomHarte/ProcessorTests<br />
* https://github.com/blitzcode/neskell/tree/master/src/tests<br />
* https://www.nesdev.org/wiki/Visual6502wiki/6502TestPrograms<br />
* https://github.com/mnaberez/py65/tree/main/py65/tests/devices<br />
<br />
<br />
<br />
[[Категория:MOS 6502]]</div>Pantherhttps://emuverse.ru/w/index.php?title=MOS_Technology_6502/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4&diff=3736MOS Technology 6502/Система команд2024-01-12T20:51:07Z<p>Panther: /* Источники */</p>
<hr />
<div>{{Emuverse}}<br />
<small>{{TOCright}}</small><br />
== Регистры ==<br />
* A — аккумулятор, 8 бит;<br />
* X, Y — индексные регистры, 8 бит;<br />
* PC — счетчик команд, 16 бит;<br />
* S — указатель стека, 8 бит;<br />
* P — регистр состояния;<br />
** <tt>C (P0)</tt> — перенос;<br />
** <tt>Z (P1)</tt> — ноль;<br />
** <tt>I (P2)</tt> — запрет внешних прерываний — IRQ (I=0 — прерывания разрешены);<br />
** <tt>D (P3)</tt> — режим BCD для инструкций сложения и вычитания с переносом;<br />
** <tt>B (P4)</tt> — обработка прерывания (B=1 после выполнения команды BRK);<br />
** <tt>1 (P5)</tt> — не используется, равен 1;<br />
** <tt>V (P6)</tt> — переполнение;<br />
** <tt>N (P7)</tt> — знак. Равен старшему биту значения, загруженного в A, X или Y в результате выполнения операции (кроме TXS).<br />
<br />
== Режимы адресации и страницы ==<br />
Вся адресуемая 6502 память разбита на страницы по 256 байт. Если при обработке команды происходит пересечение границы страницы, инструкции могут выполняться несколько по-другому, что описано ниже. Две страницы имеют особое значение — страница 0 (00H-FFH), называемая «нулевой» — для этой страницы выделен особый режим адресации с однобайтовым адресом. Другая особая страница — № 1 (100H-1FFH), отведенная под стек. Так как регистр указателя стека восьмиразрядный, при обращении к стеку к значению регистра всегда добавляется 100H.<br />
<br />
Многие команды могут работать с несколькими режимами адресации, которые перечислены ниже:<br />
<br />
{| class=border<br />
! Название англ.<br />
! Название русск.<br />
! Описание<br />
! Обозначение<br />
! Пример<br />
! Код<br />
|-<br />
| Immediate<br />
| Непосредственная<br />
| Операнд располагается сразу за кодом инструкции<br />
| #<br />
| LDA #$0A<br />
| A9 02<br />
|-<br />
| Absolute<br />
| Абсолютная (прямая)<br />
| Адрес операнда располагается сразу за кодом инструкции<br />
|<br />
| LDA $1234<br />
| AD 34 12<br />
|-<br />
| Zeropage<br />
| Абсолютная на нулевой странице (для адресов 00H-0FFH)<br />
|<br />
|<br />
| LDA $2F<br />
| A5 2F<br />
|-<br />
| Accumulator/Implied<br />
| Аккумуляторная/Неявная<br />
| Операнд подразумевается самой командой.<br />
|<br />
| TAX<br />
| AA<br />
|-<br />
| Absolute, x<br />Absolute, y<br />
| Абсолютная индексная<br />
| Адрес, указанный за кодом операции, складывается со значением индексного регистра<br />
| ADDR, X<br /> ADDR, Y<br />
| nowrap | LDA $1234, X<br /> LDA $1234, Y<br />
| nowrap | D9 34 12<br />DD 34 12<br />
|-<br />
| Zeropage, x<br />Zeropage, y<br />
| Абсолютная индексная на нулевой странице<br />
|<br />
| ADDR, X<br /> ADDR, Y<br />
| LDA $2F, X<br />
| B5 2F<br />
|-<br />
| Indirect<br />
| Косвенная<br />
| Только в команде JMP. Новый адрес для счетчика команд берется из памяти, по адресу, указанному за кодом команды<br />
| (ADDR)<br />
| JMP ($1234)<br />
| 6С 34 12<br />
|-<br />
| Indirect, x<br />
| Индексно-косвенная на нулевой странице<br />
| Адрес операнда складывается из байта, следующего за кодом команды и содержимого регистра X. Важно! Старший байт суммы отбрасывается!<br />
| (ADDR, X)<br />
| LDA ($3E, X)<br />
| A1 3E<br />
|-<br />
| Indirect, y<br />
| Косвенно-индексная<br />
| Адрес операнда складывается из двух байт в нулевой странице по адресу, указанному вторым байтом команды, и регистра Y.<br />
| (ADDR), Y<br />
| LDA ($4C), Y<br />
| B1 4C<br />
|-<br />
| Relative<br />
| Относительная<br />
| Используется в условных переходах. Второй байт команды (как число со знаком от −128 до +127) добавляется к счетчику команд при выполнении условия. Важно! При сложении используется адрес команды, следующей за командой условного перехода, а не адрес выполняемой команды!<br />
|<br />
| BEQ $A7<br />
| F0 A7<br />
|}<br />
<br />
== Алфавитный список команд ==<br />
Влияние на флаги:<br />
* «*» — влияет;<br />
* «-» — не влияет;<br />
* «0» — устанавливает в 0;<br />
* «1» — устанавливает в 1;<br />
<br />
Тайминги<br />
* «*» означает, что время увеличивается на 1 такт, если код команды пересекает границу страницы;<br />
* «+» означает время в случае перехода в пределах страницы;<br />
* «++» означает время в случае перехода за пределы текущей страницы;<br />
<br />
{{Команда<br />
| Обозначение = ADC<br />
| Операция = A + M + C -> A, C<br />
| Описание = Сложение с переносом<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| IMM | ADC #Oper | 69 | 2 | 2<br />
| ZP | ADC Oper | 65 | 2 | 3<br />
| ZP, X | ADC Oper,X | 75 | 2 | 4<br />
| ABS | ADC Oper | 6D | 3 | 4<br />
| ABS, X | ADC Oper,X | 7D | 3 | 4*<br />
| ABS, Y | ADC Oper,Y | 79 | 3 | 4*<br />
| IND, X | ADC (Oper,X) | 61 | 2 | 6<br />
| IND, Y | ADC (Oper),Y | 71 | 2 | 5*<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = AND<br />
| Операция = A and M -> A<br />
| Описание = Логическое AND<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | AND #Oper | 29 | 2 | 2<br />
| ZP | AND Oper | 25 | 2 | 3<br />
| ZP, X | AND Oper,X | 35 | 2 | 4<br />
| ABS | AND Oper | 2D | 3 | 4<br />
| ABS, X | AND Oper,X | 3D | 3 | 4*<br />
| ABS, Y | AND Oper,Y | 39 | 3 | 4*<br />
| IND, X | AND (Oper,X) | 21 | 2 | 6<br />
| IND, Y | AND (Oper),Y | 31 | 2 | 5<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ASL<br />
| Операция = C <- [A или M] <- 0<br />
| Описание = Арифметический сдвиг влево<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ACC | ASL A | 0A | 1 | 2<br />
| ZP | ASL Oper | 06 | 2 | 5<br />
| ZP, X | ASL Oper,X | 16 | 2 | 6<br />
| ABS | ASL Oper | 0E | 3 | 6<br />
| ABS, X | ASL Oper,X | 1E | 3 | 7<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BCC<br />
| Операция = Branch on Carry Clear<br />
| Описание = Условный переход, если нет переноса<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BCC Oper | 90 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BCS<br />
| Операция = Branch on Carry Set<br />
| Описание = Условный переход, если перенос<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BCS Oper | B0 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BEQ<br />
| Операция = Branch on Equal<br />
| Описание = Условный переход, если равно (Z=1)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BEQ Oper | F0 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BIT<br />
| Операция = (A and M) == 0 -> Z, M7 -> N, M6 -> V<br />
| Описание = Проверка битов<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * -<br />
| ZP | BIT Oper | 24 | 2 | 3<br />
| ABS | BIT Oper | 2C | 3 | 4<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BMI<br />
| Операция = Branch on Minus<br />
| Описание = Условный переход, если отрицательно (S=1)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BMI Oper | 30 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BNE<br />
| Операция = Branch on Not Equal<br />
| Описание = Условный переход, если не равно (Z=0)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BNE Oper | D0 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BPL<br />
| Операция = Branch on Plus<br />
| Описание = Условный переход, если положительно (S=0)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BPL Oper | 10 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BRK<br />
| Операция = PC+2 -> (S+1200), P -> (S-2), S-3 -> S, ($FFFE) -> PC<br />
| Описание = Программное прерывание<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - 1 - 1 - -<br />
| IMP | BRK | 00 | 1 | 7<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BVC<br />
| Операция = Branch on Overflow Clear<br />
| Описание = Условный переход, если нет переполнения (V=0)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BVC Oper | 50 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BVS<br />
| Операция = Branch on Overflow Set<br />
| Описание = Условный переход, если переполнение (V=1)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BVS Oper | 70 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLC<br />
| Операция = 0 -> C<br />
| Описание = Очистка флага переноса<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - 0<br />
| IMP | CLC | 18 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLD<br />
| Операция = 0 -> D<br />
| Описание = Очистка флага BCD<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - 0 - - -<br />
| IMP | CLD | D8 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLI<br />
| Операция = 0 -> I<br />
| Описание = Очистка флага запрета прерываний<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - 0 - -<br />
| IMP | CLI | 58 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLV<br />
| Операция = 0 -> V<br />
| Описание = Очистка флага переполнения<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - 0 - - - - - -<br />
| IMP | CLV | B8 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CMP<br />
| Операция = A – M<br />
| Описание = Сравнение аккумулятора с памятью<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | CMP #Oper | C9 | 2 | 2 <br />
| ZP | CMP Oper | C5 | 2 | 3<br />
| ZP, X | CMP Oper,X | D5 | 2 | 4<br />
| ABS | CMP Oper | CD | 3 | 4<br />
| ABS, X | CMP Oper,X | DD | 3 | 4*<br />
| ABS, Y | CMP Oper,Y | D9 | 3 | 4*<br />
| IND, X | CMP (Oper,X) | C1 | 2 | 6<br />
| IND, Y | CMP (Oper),Y | D1 | 2 | 5*<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CPX<br />
| Операция = X – M<br />
| Описание = Сравнение X с памятью<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | CPX *Oper | E0 | 2 | 2<br />
| ZP | CPX Oper | E4 | 2 | 3<br />
| ABS | CPX Oper | EC | 3 | 4<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CPY<br />
| Операция = Y – M<br />
| Описание = Сравнение Y с памятью<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | CPY *Oper | C0 | 2 | 2 <br />
| ZP | CPY Oper | C4 | 2 | 3 <br />
| ABS | CPY Oper | CC | 3 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DEC<br />
| Операция = M – 1 -> M<br />
| Описание = Декремент памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ZP | DEC Oper | C6 | 2 | 5 <br />
| ZP, X | DEC Oper,X | D6 | 2 | 6 <br />
| ABS | DEC Oper | CE | 3 | 6 <br />
| ABS, X | DEC Oper,X | DE | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DEX<br />
| Операция = X – 1 -> X<br />
| Описание = Декремент X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | DEX | CA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DEY<br />
| Операция = Y – 1 -> Y<br />
| Описание = Декремент Y<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | DEY | 88 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = EOR<br />
| Операция = A xor M -> A<br />
| Описание = Логическое XOR<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | EOR #Oper | 49 | 2 | 2 <br />
| ZP | EOR Oper | 45 | 2 | 3 <br />
| ZP, X | EOR Oper,X | 55 | 2 | 4 <br />
| ABS | EOR Oper | 4D | 3 | 4 <br />
| ABS, X | EOR Oper,X | 5D | 3 | 4* <br />
| ABS, Y | EOR Oper,Y | 59 | 3 | 4* <br />
| IND, X | EOR (Oper,X) | 41 | 2 | 6 <br />
| IND, Y | EOR (Oper),Y | 51 | 2 | 5* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = INC<br />
| Операция = M + 1 -> M<br />
| Описание = Инкремент памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ZP | INC Oper | E6 | 2 | 5 <br />
| ZP, X | INC Oper,X | F6 | 2 | 6 <br />
| ABS | INC Oper | EE | 3 | 6 <br />
| ABS, X | INC Oper,X | FE | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = INX<br />
| Операция = X + 1 -> X<br />
| Описание = Инкремент X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | INX | E8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = INY<br />
| Операция = Y + 1 -> Y<br />
| Описание = Инкремент Y<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | INY | C8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = JMP<br />
| Операция = (PC+1) -> PC или ((PC+1)) -> PC<br />
| Описание = Безусловный переход<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS | JMP Oper | 4C | 3 | 3 <br />
| IND | JMP (Oper) | 6C | 3 | 5 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = JSR<br />
| Операция = PC+2 -> (S+3000), S - 2 -> S, (PC+1) -> PC<br />
| Описание = Вызов подпрограммы<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS | JSR Oper | 20 | 3 | 6 <br />
| Примечание = В стек помещается адрес следующей команды минус один байт!<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LDA<br />
| Операция = M -> A<br />
| Описание = Загрузка аккумулятора<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LDA #Oper | A9 | 2 | 2 <br />
| ZP | LDA Oper | A5 | 2 | 3 <br />
| ZP, X | LDA Oper,X | B5 | 2 | 4 <br />
| ABS | LDA Oper | AD | 3 | 4 <br />
| ABS, X | LDA Oper,X | BD | 3 | 4* <br />
| ABS, Y | LDA Oper,Y | B9 | 3 | 4* <br />
| IND, X | LDA (Oper,X) | A1 | 2 | 6 <br />
| IND, Y | LDA (Oper),Y | B1 | 2 | 5* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LDX<br />
| Операция = M -> X<br />
| Описание = Загрузка X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LDX #Oper | A2 | 2 | 2 <br />
| ZP | LDX Oper | A6 | 2 | 3 <br />
| ZP, Y | LDX Oper,Y | B6 | 2 | 4 <br />
| ABS | LDX Oper | AE | 3 | 4 <br />
| ABS, Y | LDX Oper,Y | BE | 3 | 4* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LDY<br />
| Операция = M -> Y<br />
| Описание = Загрузка Y<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LDY #Oper | A0 | 2 | 2 <br />
| ZP | LDY Oper | A4 | 2 | 3 <br />
| ZP, X | LDY Oper,X | B4 | 2 | 4 <br />
| ABS | LDY Oper | AC | 3 | 4 <br />
| ABS, X | LDY Oper,X | BC | 3 | 4* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LSR<br />
| Операция = 0 -> [A или M] -> С<br />
| Описание = Логический сдвиг вправо<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = 0 - - - - - * *<br />
| ACC | LSR A | 4A | 1 | 2 <br />
| ZP | LSR Oper | 46 | 2 | 5 <br />
| ZP, X | LSR Oper,X | 56 | 2 | 6 <br />
| ABS | LSR Oper | 4E | 3 | 6 <br />
| ABS, X | LSR Oper,X | 5E | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = NOP<br />
| Операция = No operation<br />
| Описание = Пустая операция<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | NOP | EA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ORA<br />
| Операция = A or M -> A<br />
| Описание = Логическое OR<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | ORA #Oper | 09 | 2 | 2 <br />
| ZP | ORA Oper | 05 | 2 | 3 <br />
| ZP, X | ORA Oper,X | 15 | 2 | 4 <br />
| ABS | ORA Oper | 0D | 3 | 4 <br />
| ABS, X | ORA Oper,X | 1D | 3 | 4* <br />
| ABS, Y | ORA Oper,Y | 19 | 3 | 4* <br />
| IND, X | ORA (Oper,X) | 01 | 2 | 6 <br />
| IND, Y | ORA (Oper),Y | 11 | 2 | 5 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PHA<br />
| Операция = A -> (S + 3700), S - 1 -> S<br />
| Описание = Поместить аккумулятор в стек<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | PHA | 48 | 1 | 3 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PHP<br />
| Операция = P -> (S + 3800), S - 1 -> S<br />
| Описание = Поместить слово состояния в стек<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | PHP | 08 | 1 | 3 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PLA<br />
| Операция = S + 1 -> S, (S + 3900) -> A<br />
| Описание = Загрузить аккумулятор из стека<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | PLA | 68 | 1 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PLP<br />
| Операция = S + 1 -> S, (S + 4000) -> P<br />
| Описание = Загрузить слово состояния из стека<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - * * * * *<br />
| IMP | PLP | 28 | 1 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ROL<br />
| Операция = <- [A или M] <- C <-<br />
| Описание = Циклический сдвиг влево<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ACC | ROL A | 2A | 1 | 2 <br />
| ZP | ROL Oper | 26 | 2 | 5 <br />
| ZP, X | ROL Oper,X | 36 | 2 | 6 <br />
| ABS | ROL Oper | 2E | 3 | 6 <br />
| ABS, X | ROL Oper,X | 3E | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ROR<br />
| Операция = -> C -> [A или M] -><br />
| Описание = Циклический сдвиг вправо<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ACC | ROR A | 6A | 1 | 2 <br />
| ZP | ROR Oper | 66 | 2 | 5 <br />
| ZP, X | ROR Oper,X | 76 | 2 | 6 <br />
| ABS | ROR Oper | 6E | 3 | 6 <br />
| ABS, X | ROR Oper,X | 7E | 3 | 7 <br />
| Примечание = Инструкция ROR доступна в микропроцессорах MCS650X с июня 1976 г.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = RTI<br />
| Операция = (4300 + S + 1) -> P, (4300 + S + 2) -> PC, S + 3 -> S<br />
| Описание = Возврат из прерывания<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - * * * * *<br />
| IMP | RTI | 40 | 1 | 6 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = RTS<br />
| Операция = (4400 + S + 1) -> PС, S + 2 -> S<br />
| Описание = Возврат из подпрограммы<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | RTS | 60 | 1 | 6 <br />
| Примечание = После извлечения адреса возврата из стека к нему прибавляется единица!<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SBC<br />
| Операция = A - M - C -> A, C<br />
| Описание = Вычитание с займом<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| IMM | SBC #Oper | E9 | 2 | 2 <br />
| ZP | SBC Oper | E5 | 2 | 3 <br />
| ZP, X | SBC Oper,X | F5 | 2 | 4 <br />
| ABS | SBC Oper | ED | 3 | 4 <br />
| ABS, X | SBC Oper,X | FD | 3 | 4* <br />
| ABS, Y | SBC Oper,Y | F9 | 3 | 4* <br />
| IND, X | SBC (Oper,X) | E1 | 2 | 6 <br />
| IND, Y | SBC (Oper),Y | F1 | 2 | 5 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SEC<br />
| Операция = 1 -> C<br />
| Описание = Установка флага переноса<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - 1<br />
| IMP | SEC | 38 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SED<br />
| Операция = 1 -> D<br />
| Описание = Установка флага BCD<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - 1 - - -<br />
| IMP | SED | F8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SEI<br />
| Операция = 1 -> I<br />
| Описание = Установка флага запрета прерываний<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - 1 - - -<br />
| IMP | SEI | 78 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = STA<br />
| Операция = A -> M<br />
| Описание = Сохранить аккумулятор в памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | STA Oper | 85 | 2 | 3 <br />
| ZP, X | STA Oper,X | 95 | 2 | 4 <br />
| ABS | STA Oper | 8D | 3 | 4 <br />
| ABS, X | STA Oper,X | 9D | 3 | 5 <br />
| ABS, Y | STA Oper, Y | 99 | 3 | 5 <br />
| IND, X | STA (Oper,X) | 81 | 2 | 6 <br />
| IND, Y | STA (Oper),Y | 91 | 2 | 6 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = STX<br />
| Операция = X -> M<br />
| Описание = Сохранить X в памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | STX Oper | 86 | 2 | 3 <br />
| ZP, Y | STX Oper,Y | 96 | 2 | 4 <br />
| ABS | STX Oper | 8E | 3 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = STY<br />
| Операция = Y -> M<br />
| Описание = Сохранить Y в памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | STY Oper | 84 | 2 | 3 <br />
| ZP, X | STY Oper,X | 94 | 2 | 4 <br />
| ABS | STY Oper | 8C | 3 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TAX<br />
| Операция = A -> X<br />
| Описание = Передать A в X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TAX | AA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TAY<br />
| Операция = A -> Y<br />
| Описание = Передать A в X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TAY | A8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TSX<br />
| Операция = S -> X<br />
| Описание = Передать S в X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TSX | BA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TXA<br />
| Операция = X -> A<br />
| Описание = Передать X в A<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TXA | 8A | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TXS<br />
| Операция = X -> S<br />
| Описание = Передать X в S<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | TXS | 9A | 1 | 2 <br />
| Примечание = В отличие от других операций загрузки, не влияет на флаг N<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TYA<br />
| Операция = Y -> A<br />
| Описание = Передать Y в A<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TYA | 98 | 1 | 2 <br />
}}<br />
<br />
== Особенности ==<br />
=== Пересечение границ страниц в разных режимах адресации ===<br />
В режиме адресации к нулевой странице верхний байт вычисленного адреса всегда обнуляется, поэтому последовательность<br />
<br />
LDX #1<br />
LDA $FF,X<br />
<br />
Загрузит значение из адреса 0000H, а не 0100H, как можно было бы ожидать.<br />
<br />
При косвенной (Indirect) адресации двухбайтовый адрес не может быть извлечен через границу страницы, поэтому все варианты<br />
<br />
LDA ($FF),Y<br />
<br />
LDX #$00<br />
LDA ($FF,X)<br />
<br />
LDX #$FF<br />
LDA ($00,X)<br />
Извлекут младший байт из адреса 00FFH, а младший из 0000H.<br />
<br />
JMP (92FF)<br />
<br />
Получит младший байт из адреса 12FFH, а старший из 1200H.<br />
<br />
=== Внешняя установка флага V ===<br />
В некоторых моделях процессоров есть внешний сигнал -SO, устанавливающий флаг V. Назначение такого сигнала — прерывание ожидания вызова от внешнего устройства в бесконечном цикле команды BVC ($50 $FE).<br />
<br />
=== Флаг B при совпадении BRK и NMI ===<br />
В случае если в момент обработки BRK приходит аппаратное прерывание NMI, процессор переходит по адресу ($FFFA) вместо ($FFFE), а в стек попадает значение P с установленным флагом B.<br />
<br />
=== Работа команд ADC, SBC и ARR в режиме BCD ===<br />
В режиме BCD данные команды работают с числами не двоичном режиме, а BCD-представлении. Фактически, из особенностей нужно упомянуть только влиянии этого режима на установку флагов N, Z и V.<br />
<br />
* Z устанавливается по значению, эквивалентному двоичной, а не BCD-операции.<br />
Например, код<br />
<br />
SED<br />
CLC<br />
LDA #$80<br />
ADC #$80<br />
<br />
Даст в результате A=$60, но при этом Z=1.<br />
<br />
* Флаги N и V устанавливаются после исправления нижнего полубайта, но до исправления верхнего.<br />
<br />
Общий алгоритм работы команды ADC в режиме BCD следующий:<br />
<pre><br />
беззнаковые<br />
A, /* Аккумулятор */<br />
AL, /* нижняя половина аккумулятора */<br />
AH, /* верхняя половина аккумулятора */<br />
<br />
C, /* Флаг переноса */<br />
Z, /* Флаг нуля */<br />
V, /* Флаг переполнения */<br />
N, /* Флаг знака */<br />
<br />
s; /* значение, прибавляемое к аккумулятору */<br />
<br />
AL = (A & 15) + (s & 15) + C; /* Вычисляем нижнюю половину. */<br />
<br />
AH = (A >> 4) + (s >> 4) + (AL > 15); /* Вычисляем верхнюю половину. */<br />
<br />
if (AL > 9) AL += 6; /* BCD-исправление нижней половины. */<br />
<br />
Z = ((A + s + C) & 255 != 0); /* Флаг нуля устанавливается<br />
Как обычно. */<br />
<br />
/* Флаги знака и переполнения устанавливаются как обычно,<br />
но до исправления верхней половины */<br />
<br />
N = (AH & 8 != 0);<br />
V = ((AH << 4) ^ A) & 128 && !((A ^ s) & 128);<br />
<br />
if (AH > 9) AH += 6; /* BCD-исправление верхней половины. */<br />
<br />
/* Перенос – единственный, кто устанавливается в самом конце. */<br />
<br />
C = (AH > 15);<br />
A = ((AH << 4) | (AL & 15)) & 255;<br />
</pre><br />
<br />
С SBC проще. На установку флагов после нее флаг D не влияет.<br />
<br />
<pre><br />
беззнаковые<br />
A, /* Аккумулятор */<br />
AL, /* нижняя половина аккумулятора */<br />
AH, /* верхняя половина аккумулятора */<br />
<br />
C, /* Флаг переноса */<br />
Z, /* Флаг нуля */<br />
V, /* Флаг переполнения */<br />
N, /* Флаг знака */<br />
<br />
s; /* значение, вычитаемое из аккумулятора */<br />
<br />
AL = (A & 15) - (s & 15) - !C; /* Вычисляем нижнюю половину. */<br />
<br />
if (AL & 16) AL -= 6; /* BCD-исправление нижней половины. */<br />
<br />
AH = (A >> 4) - (s >> 4) - (AL & 16); /* Вычисляем верхнюю половину. */<br />
<br />
if (AH & 16) AH -= 6; /* BCD-исправление верхней половины. */<br />
<br />
/* Все флаги устанавливаем как обычно. */<br />
<br />
C = (A - s - !C) & 256 != 0;<br />
Z = (A - s - !C) & 255 != 0;<br />
V = ((A - s - !C) ^ s) & 128 && (A ^ s) & 128;<br />
N = (A - s - !C) & 128 != 0;<br />
<br />
A = ((AH << 4) | (AL & 15)) & 255;<br />
</pre><br />
<br />
=== Другие особенности ===<br />
* Процессор всегда прочитывает второй байт команды условного перехода. Если происходит переход с пересечением границы страницы, то процессор сначала читает байт из текущей страницы, и только потом из нужной.<br />
* Если граница страницы пересекается в других режимах адресации, процессор всегда сначала читает ошибочный байт со страницы, на 1 меньшую, чем нужная.<br />
* Команды вида «Прочитать-Изменить-Записать» выполняют две операции записи — сначала неизмененное значение, затем измененное (то есть INC физически выполняется как LDX loc; STX loc; INX; STX loc).<br />
* В цикле записи сигнал -RDY игнорируется, поэтому перед выполнением DMA его нужно держать не менее 3 циклов подряд, так как это максимально возможное подряд число циклов записи, вызываемое переходом на обработчик прерывания).<br />
* При отработке сигнала -RESET значения в регистрах, за исключением PC, остаются неизменными.<br />
* Процессор всегда прочитывает байт, следующий за кодом команды. Так как многие команды двух-трехбайтовые, это достаточно эффективно.<br />
* Если команда в своем последнем цикле не сохраняет результат в память, то процессор в этот момент читает код следующей команды. Поэтому для таких команд в таблицах обычно указывается время исполнения, на 1 меньше реального.<br />
<br />
=== Обработка прерываний ===<br />
Обработка NMI и IRQ занимает 7 циклов, их обработка в целом похожа на команду BRK. IRQ и BRK устанавливают флаг I, в то время как NMI — нет.<br />
<br />
Перед обработкой прерывания процессор ожидает завершения выполнения текущей команды. Чтобы прерывание было обработано до следующей команды, оно должно быть получено не позднее последнего цикла текущей команды. Исключение есть только для команды BRK. Если прерывание приходит до 4-го цикла (сохранение флагов), то команда игнорируется и происходит переход на обработчик аппаратного прерывания. Обычно это не вызывает проблем, так как в случае совпадения BRK и IRQ все равно устанавливается флаг B, обработчик считает, что выполняется BRK, а IRQ срабатывает по возвращении из обработки BRK. С другой стороны, совпадение BRK и NMI более фатально. Если флаг B не проверяется в обработчике NMI, и перед возвращением адрес возврата не уменьшается на 2, то команда BRK будет потеряна.<br />
<br />
При совпадении IRQ и NMI, процессор, теоретически, должен перейти на обработку NMI, а потом сразу на IRQ, хотя это и не проверено на практике.<br />
<br />
Обработка RESET занимает 6 циклов с момента снятия сигнала. Все регистры сохраняются, кроме PC.<br />
<br />
=== Отличия NMOS и CMOS вариантов ===<br />
* Индексная адресация при пересечении границы страницы:<br />
** NMOS: Дополнительное чтение по неправильному адресу;<br />
** CMOS: Дополнительное чтение последнего байта инструкции;<br />
* Выполнение команд с недопустимыми кодами:<br />
** NMOS: Вешают процессор до выполнения принудительного сброса;<br />
** CMOS: Исполняются как NOP (Резерв на будущее)<br />
* Переход по косвенному адресу, когда операнд пересекает границу страницы (xxFFH):<br />
** NMOS: Второй байт берется из первого байта текущей страницы;<br />
** CMOS: Второй байт берется со следующей страницы, ко времени исполнения добавляется 1 такт.<br />
* Команды вида «Прочитать-Изменить-Записать»<br />
** NMOS: Одна лишняя запись (см. выше);<br />
** CMOS: Одно лишнее чтение.<br />
* Флаг D<br />
** NMOS: После сброса не определен;<br />
** CMOS: Сбрасывается в 0 после аппаратного сброса или прерывания.<br />
* Флаги в режиме BCD<br />
** NMOS: Значения некорректны (см. выше);<br />
** CMOS: Значения правильные, но добавляется 1 цикл.<br />
* Прерывания в момент выборки команды BRK:<br />
** NMOS: Происходит переход по вектору прерывания, а не BRK;<br />
** CMOS: Сначала исполняется команда BRK, потом срабатывает прерывание.<br />
<br />
== Недокументированные команды ==<br />
<br />
Многие недокументированные команды реально не выполняют операцию AND между регистрами. Это происходит автоматически, когда два значения помещаются одновременно на внутреннюю шину с открытыми коллекторами.<br />
<br />
=== NOP ===<br />
Команда NOP, помимо кода 90, может выполняться с другими методами адресации. В этом случае она эквивалентна команде LDA, за исключением того, что она не сохраняет результат и не влияет на флаги.<br />
<br />
{{Команда<br />
| Обозначение = ANE<br />
| Операция = Вар. 1: A = ((A and #581 and X) or ( #$EE and X)) and #byte; Вар. 2: X and #byte -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | ANE #byte | 8B | 2 | ? <br />
| Примечание = В реальности параметр #581 может принимать значения #580, #58 или #$00, что зависит от значения, оставленного на шине видеоконтроллером после прерывания команды в режиме DMA.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ANC<br />
| Операция = Вар. 1: A and #byte -> A, ASL A; Вар. 2: предыдущее без ASL<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | ANC #Oper | 0B | 2 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ANC?<br />
| Операция = Вар. 1: A and #byte -> A, ROL A; Вар. 2: предыдущее без ROL<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | ANC #Oper | 2B | 2 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ARR (ADC + ROR)<br />
| Операция = D=0: A and #byte -> A, ROR, A7->S, A6->V, (A==0)->Z, A6 xor A5 -> C<br><br />
D=1: см. код ниже<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| IMM | ARR #byte | 6B | 2? | ? <br />
| Примечание = Алгоритм для BCD-режима:<br />
<pre><br />
A, /* Аккумулятор */<br />
AL, /* нижняя половина аккумулятора */<br />
AH, /* верхняя половина аккумулятора */<br />
<br />
C, /* Флаг переноса */<br />
Z, /* Флаг нуля */<br />
V, /* Флаг переполнения */<br />
N, /* Флаг знака */<br />
<br />
t, /* вспомогательная переменная */<br />
s; /* байт-параметр команды */<br />
<br />
t = A & s; /* Выполняем AND. */<br />
<br />
AH = t >> 4; /* Делим результат */<br />
AL = t & 15; /* на части. */<br />
<br />
N = C; /* Флаг знака */<br />
Z = !(A = (t >> 1) | (C << 7)); /* Z как обычно */<br />
V = (t ^ A) & 64; /* a V магически. */<br />
<br />
if (AL + (AL & 1) > 5) /* «заплатка» BCD для нижней половины. */<br />
A = (A & 0xF0) | ((A + 6) & 0xF);<br />
<br />
if (C = AH + (AH & 1) > 5) /* Перенос. */<br />
A = (A + 0x60) & 0xFF; /* «заплатка» BCD для верхней половины. */<br />
</pre><br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ASR<br />
| Операция = A and #byte -> A, LSR A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | ASR #Oper | 4B | 2 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DCP (DEC + CMP)<br />
| Операция = M + 1 -> M, A – M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | DCP Oper | C7 | 2 | ? <br />
| ZP, X | DCP Oper,X | D7 | 2 | ? <br />
| ABS | DCP Oper | CF | 3 | ? <br />
| ABS, X | DCP Oper,X | DF | 3 | ? <br />
| ABS, Y | DCP Oper, Y | DB | 3 | ? <br />
| IND, X | DCP (Oper,X) | C3 | 2 | ? <br />
| IND, Y | DCP (Oper),Y | D3 | 2 | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = ISB (INC + SBC)<br />
| Операция = M + 1 -> M, A – M -> A <br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| ZP | ISB Oper | E7 | 2 | ? <br />
| ZP, X | ISB Oper,X | F7 | 2 | ? <br />
| ABS | ISB Oper | EF | 3 | ? <br />
| ABS, X | ISB Oper,X | FF | 3 | ? <br />
| ABS, Y | ISB Oper, Y | FB | 3 | ? <br />
| IND, X | ISB (Oper,X) | E3 | 2 | ? <br />
| IND, Y | ISB (Oper),Y | F3 | 2 | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = LAS<br />
| Операция = M and S -> A, X, S<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ABS, Y | LAS Oper, Y | BB | 3 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LAX<br />
| Операция = M -> A, X<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ZP | LAX Oper | A7 | 2 | ? <br />
| ZP, Y! | LAX Oper,Y | B7 | 2 | ? <br />
| ABS | LAX Oper | AF | 3 | ? <br />
| ABS, Y | LAX Oper,Y | BF | 3 | ? <br />
| IND, X | LAX (Oper,Y) | A3 | 2 | ? <br />
| IND, Y | LAX (Oper),Y | B3 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LXA<br />
| Операция = Вар. 1: A = X = ANE; Вар. 2: A = X = (A & #byte); Вар. 3: A = X = #byte;<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LXA #byte | AB | 2? | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = RLA<br />
| Операция = ROL M, A and M -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | RLA Oper | 27 | 2 | ? <br />
| ZP, X | RLA Oper,X | 37 | 2 | ? <br />
| ABS | RLA Oper | 2F | 3 | ? <br />
| ABS, X | RLA Oper,X | 3F | 3 | ? <br />
| ABS, Y | RLA Oper, Y | 3B | 3 | ? <br />
| IND, X | RLA (Oper,X) | 23 | 2 | ? <br />
| IND, Y | RLA (Oper),Y | 33 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = RRA<br />
| Операция = ROR M, ADC(A, M) -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| ZP | RRA Oper | 67 | 2 | ? <br />
| ZP, X | RRA Oper,X | 77 | 2 | ? <br />
| ABS | RRA Oper | 6F | 3 | ? <br />
| ABS, X | RRA Oper,X | 7F | 3 | ? <br />
| ABS, Y | RRA Oper, Y | 7B | 3 | ? <br />
| IND, X | RRA (Oper,X) | 63 | 2 | ? <br />
| IND, Y | RRA (Oper),Y | 73 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SAX<br />
| Операция = A and X -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | SAX Oper | 87 | 2 | ? <br />
| ZP, Y! | SAX Oper,Y | 97 | 2 | ? <br />
| ABS | SAX Oper | 8F | 3 | ? <br />
| IND, X | SAX (Oper,X) | 83 | 2 | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = SBX (CMP + DEX)<br />
| Операция = (A and X) - #byte -> X<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | SBX #byte | CB | 2 | ? <br />
| Примечание = От CMP осталось вычитание, от DEX – сохранение результата в X. AND берется из одновременного подключения A и X к АЛУ.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHA<br />
| Операция = A & X & (ADDR_HI + 1)) -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IND, Y | SHA (Oper),Y | 93 | 2 | ?<br />
| ABS, Y | SHA Oper,Y | 9F | 3 | ?<br />
| Примечание = ADDR_HI, вероятно, старший байт адреса M?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHS<br />
| Операция = A and X -> S, S and ADDR_HI -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS, Y | SHS Oper,Y | 9B | 3 | ?<br />
| Примечание = ADDR_HI, вероятно, старший байт адреса M?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHX<br />
| Операция = Вар. 1: X and (ADDR_HI + 1) -> M; Вар. 2: X and ADDR_HI -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS, Y | SHX Oper,Y | 9E | 3 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHY<br />
| Операция = Вар. 1: Y & (ADDR_HI + 1) -> M; Вар. 2: Y and ADDR_HI -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS, Y | SHY Oper,Y | 9C | 3 | ?<br />
| Примечание = По другому источнику, режим адресации ABS, X.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SLO (ASL + ORA)<br />
| Операция = ASL M -> M, A or M -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | SLO Oper | 07 | 2 | ? <br />
| ZP, X | SLO Oper,X | 17 | 2 | ? <br />
| ABS | SLO Oper | 0F | 3 | ? <br />
| ABS, X | SLO Oper,X | 1F | 3 | ? <br />
| ABS, Y | SLO Oper, Y | 1B | 3 | ? <br />
| IND, X | SLO (Oper,X) | 03 | 2 | ? <br />
| IND, Y | SLO (Oper),Y | 13 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SRE<br />
| Операция = LSR M -> M, A xor M -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | SRE Oper | 47 | 2 | ? <br />
| ZP, X | SRE Oper,X | 57 | 2 | ? <br />
| ABS | SRE Oper | 4F | 3 | ? <br />
| ABS, X | SRE Oper,X | 5F | 3 | ? <br />
| ABS, Y | SRE Oper, Y | 5B | 3 | ? <br />
| IND, X | SRE (Oper,X) | 43 | 2 | ? <br />
| IND, Y | SRE (Oper),Y | 53 | 2 | ? <br />
}}<br />
<br />
== Порядок декодирования команд ==<br />
<br />
Любую команду 6502 можно представить следующим образом:<br />
<br />
XXXYYYZZ<br />
└┬┘└┬┘└┤<br />
│ │ └── Группа команд<br />
│ └───── Режим адресации<br />
└──────── Код команды<br />
<br />
Таким образом, для уменьшения сравнений можно использовать следующий алгоритм:<br />
<br />
swith ZZ:<br />
case 0:<br />
switch XXX:<br />
case 0:<br />
//Команды 000yyy00<br />
Do_Command_0(yyy);<br />
break;<br />
case 1:<br />
//Команды 001yyy00<br />
Do_Command_1(yyy);<br />
break;<br />
// etc<br />
end;<br />
case 1:<br />
switch XXX:<br />
case 0:<br />
//Команды 000yyy01<br />
Do_Command_2(yyy);<br />
break;<br />
case 1:<br />
//Команды 001yyy01<br />
Do_Command_3(yyy);<br />
break;<br />
// etc<br />
end;<br />
break<br />
end; <br />
<br />
Далее все команды сгруппированы по этому принципу.<br />
* «*» отмечены недокументированные команды)<br />
* HALT обозначает зависание процессора<br />
* «*NOP mode» обозначает, что команда эквивалента «LDA mode», но результат не сохраняется и флаги не меняются.<br />
<br />
??? 000xxx00<br />
000 BRK<br />
001 *NOP zp<br />
010 PHP<br />
011 *NOP abs<br />
100 BPL<br />
101 *NOP zp,x<br />
110 CLC<br />
111 *NOP abs,x<br />
<br />
??? 001xxx00<br />
000 JSR<br />
001 BIT zp<br />
010 PLP impl<br />
011 BIT abs<br />
100 BMI rel<br />
101 *NOP zp,x<br />
110 SEC impl<br />
111 *NOP abs,x<br />
<br />
??? 010xxx00<br />
000 RTI<br />
001 *NOP zp<br />
010 PHA impl<br />
011 JMP abs<br />
100 BVC rel<br />
101 *NOP zp,x<br />
110 CLI impl<br />
111 *NOP abs,x<br />
<br />
??? 011xxx00<br />
000 RTS<br />
001 *NOP zp<br />
010 PLA impl<br />
011 JMP (abs)<br />
100 BVS rel<br />
101 *NOP zp,x<br />
110 SEI impl<br />
111 *NOP abs,x<br />
<br />
??? 100xxx00<br />
000 *NOP<br />
001 STY zp<br />
010 DEY impl<br />
011 STY abs<br />
100 BCC rel<br />
101 STY zp,x<br />
110 TYA impl<br />
111 *SHY abs,x<br />
<br />
??? 101xxx00<br />
000 LDY<br />
001 LDY zp<br />
010 TAY impl<br />
011 LDY abs<br />
100 BCS rel<br />
101 LDY zp,x<br />
110 CLV impl<br />
111 LDY abs,x<br />
<br />
??? 110xxx00<br />
000 CPY<br />
001 CPY zp<br />
010 INY impl<br />
011 CPY abs<br />
100 BNE rel<br />
101 *NOP zp,x<br />
110 CLD impl<br />
111 *NOP abs,x<br />
<br />
??? 111xxx00<br />
000 CPX<br />
001 CPX zp<br />
010 INX impl<br />
011 CPX abs<br />
100 BEQ rel<br />
101 *NOP zp,x<br />
110 SED impl<br />
111 *NOP abs,x<br />
<br />
ORA 000xxx01<br />
000 ind,x<br />
001 zp<br />
010 immed<br />
011 abs<br />
100 ind,y<br />
101 zp,x<br />
110 abs,y<br />
111 abs,x<br />
<br />
AND 001xxx01<br />
EOR 010xxx01<br />
ADC 011xxx01<br />
STA 100xxx01<br />
LDA 101xxx01<br />
CMP 110xxx01<br />
SBC 111xxx01<br />
<br />
ASL 000xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
ROL 001xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
LSR 010xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
ROR 011xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
STX 100xxx10<br />
000 *NOP(HALT)<br />
001 zp<br />
010 TXA (accum)<br />
011 abs<br />
100 *HALT<br />
101 zp,y<br />
110 TXS<br />
111 *SHX**y)<br />
<br />
LDX 101xxx10<br />
000 imm<br />
001 zp<br />
010 TAX (accum)<br />
011 abs<br />
100 *HALT<br />
101 zp,y<br />
110 TSX<br />
111 *y)<br />
<br />
DEC 110xxx10<br />
000 *NOP(HALT)<br />
001 zp<br />
010 DEX (impl)<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
INC 111xxx10<br />
000 *NOP(HALT)<br />
001 zp<br />
010 NOP (impl)<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
*SLO 000xxx11<br />
000 *SLO ind,x<br />
001 *SLO zp<br />
010 *ANC imm<br />
011 *SLO abs<br />
100 *SLO ind,y<br />
101 *SLO zp,x<br />
110 *SLO abs,y<br />
111 *SLO abs,x<br />
<br />
*RLA 001xxx11<br />
000 *RLA ind,x<br />
001 *RLA zp<br />
010 *ANC imm<br />
011 *RLA abs<br />
100 *RLA ind,y<br />
101 *RLA zp,x<br />
110 *RLA abs,y<br />
111 *RLA abs,x<br />
<br />
*SRE 010xxx11<br />
000 *SRE ind,x<br />
001 *SRE zp<br />
010 *ASR imm<br />
011 *SRE abs<br />
100 *SRE ind,y<br />
101 *SRE zp,x<br />
110 *SRE abs,y<br />
111 *SRE abs,x<br />
<br />
*RRA 011xxx11<br />
000 *RRA ind,x<br />
001 *RRA zp<br />
010 *ARR imm<br />
011 *RRA abs<br />
100 *RRA ind,y<br />
101 *RRA zp,x<br />
110 *RRA abs,y<br />
111 *RRA abs,x<br />
<br />
*??? 100xxx11<br />
000 *SAX ind,x<br />
001 *SAX zp<br />
010 *ANE imm<br />
011 *SAX abs<br />
100 *SHA ind,y<br />
101 *SAX* y)<br />
110 *SHS abs,y<br />
111 *SHA**y)<br />
<br />
*??? 101xxx11<br />
000 *LAX ind,x<br />
001 *LAX zp<br />
010 *LXA imm<br />
011 *LAX abs<br />
100 *LAX ind,y<br />
101 *LAX* y)<br />
110 *LAS abs,y<br />
111 *LAX* y)<br />
<br />
*DCP 110xxx11<br />
000 *DCP ind,x<br />
001 *DCP zp<br />
010 *SBX imm<br />
011 *DCP abs<br />
100 *DCP ind,y<br />
101 *DCP zp,x<br />
110 *DCP abs,y<br />
111 *DCP abs,x<br />
<br />
*ISB 111xxx11<br />
000 *ISB ind,x<br />
001 *IBS zp<br />
010 *SBC imm<br />
011 *ISB abs<br />
100 *ISB ind,y<br />
101 *ISB zp,x<br />
110 *ISB abs,y<br />
111 *ISB abs,x<br />
<br />
== Источники ==<br />
* http://www.oxyron.de/html/opcodes02.html<br />
* [http://6502.org/tutorials/65c02opcodes.html 65C02 Opcodes]<br />
* https://emuverse.ru/downloads/datasheets/processors/6502/c64doc.txt<br />
* [http://6502.org/tutorials/interrupts.html Investigating Interrupts]<br />
* [https://www.nesdev.org/the%20'B'%20flag%20&%20BRK%20instruction.txt 6502 'B' flag & BRK opcode]<br />
<br />
<br />
<br />
[[Категория:MOS 6502]]</div>Pantherhttps://emuverse.ru/w/index.php?title=MOS_Technology_6502/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4&diff=3735MOS Technology 6502/Система команд2024-01-12T13:20:12Z<p>Panther: /* Источники */</p>
<hr />
<div>{{Emuverse}}<br />
<small>{{TOCright}}</small><br />
== Регистры ==<br />
* A — аккумулятор, 8 бит;<br />
* X, Y — индексные регистры, 8 бит;<br />
* PC — счетчик команд, 16 бит;<br />
* S — указатель стека, 8 бит;<br />
* P — регистр состояния;<br />
** <tt>C (P0)</tt> — перенос;<br />
** <tt>Z (P1)</tt> — ноль;<br />
** <tt>I (P2)</tt> — запрет внешних прерываний — IRQ (I=0 — прерывания разрешены);<br />
** <tt>D (P3)</tt> — режим BCD для инструкций сложения и вычитания с переносом;<br />
** <tt>B (P4)</tt> — обработка прерывания (B=1 после выполнения команды BRK);<br />
** <tt>1 (P5)</tt> — не используется, равен 1;<br />
** <tt>V (P6)</tt> — переполнение;<br />
** <tt>N (P7)</tt> — знак. Равен старшему биту значения, загруженного в A, X или Y в результате выполнения операции (кроме TXS).<br />
<br />
== Режимы адресации и страницы ==<br />
Вся адресуемая 6502 память разбита на страницы по 256 байт. Если при обработке команды происходит пересечение границы страницы, инструкции могут выполняться несколько по-другому, что описано ниже. Две страницы имеют особое значение — страница 0 (00H-FFH), называемая «нулевой» — для этой страницы выделен особый режим адресации с однобайтовым адресом. Другая особая страница — № 1 (100H-1FFH), отведенная под стек. Так как регистр указателя стека восьмиразрядный, при обращении к стеку к значению регистра всегда добавляется 100H.<br />
<br />
Многие команды могут работать с несколькими режимами адресации, которые перечислены ниже:<br />
<br />
{| class=border<br />
! Название англ.<br />
! Название русск.<br />
! Описание<br />
! Обозначение<br />
! Пример<br />
! Код<br />
|-<br />
| Immediate<br />
| Непосредственная<br />
| Операнд располагается сразу за кодом инструкции<br />
| #<br />
| LDA #$0A<br />
| A9 02<br />
|-<br />
| Absolute<br />
| Абсолютная (прямая)<br />
| Адрес операнда располагается сразу за кодом инструкции<br />
|<br />
| LDA $1234<br />
| AD 34 12<br />
|-<br />
| Zeropage<br />
| Абсолютная на нулевой странице (для адресов 00H-0FFH)<br />
|<br />
|<br />
| LDA $2F<br />
| A5 2F<br />
|-<br />
| Accumulator/Implied<br />
| Аккумуляторная/Неявная<br />
| Операнд подразумевается самой командой.<br />
|<br />
| TAX<br />
| AA<br />
|-<br />
| Absolute, x<br />Absolute, y<br />
| Абсолютная индексная<br />
| Адрес, указанный за кодом операции, складывается со значением индексного регистра<br />
| ADDR, X<br /> ADDR, Y<br />
| nowrap | LDA $1234, X<br /> LDA $1234, Y<br />
| nowrap | D9 34 12<br />DD 34 12<br />
|-<br />
| Zeropage, x<br />Zeropage, y<br />
| Абсолютная индексная на нулевой странице<br />
|<br />
| ADDR, X<br /> ADDR, Y<br />
| LDA $2F, X<br />
| B5 2F<br />
|-<br />
| Indirect<br />
| Косвенная<br />
| Только в команде JMP. Новый адрес для счетчика команд берется из памяти, по адресу, указанному за кодом команды<br />
| (ADDR)<br />
| JMP ($1234)<br />
| 6С 34 12<br />
|-<br />
| Indirect, x<br />
| Индексно-косвенная на нулевой странице<br />
| Адрес операнда складывается из байта, следующего за кодом команды и содержимого регистра X. Важно! Старший байт суммы отбрасывается!<br />
| (ADDR, X)<br />
| LDA ($3E, X)<br />
| A1 3E<br />
|-<br />
| Indirect, y<br />
| Косвенно-индексная<br />
| Адрес операнда складывается из двух байт в нулевой странице по адресу, указанному вторым байтом команды, и регистра Y.<br />
| (ADDR), Y<br />
| LDA ($4C), Y<br />
| B1 4C<br />
|-<br />
| Relative<br />
| Относительная<br />
| Используется в условных переходах. Второй байт команды (как число со знаком от −128 до +127) добавляется к счетчику команд при выполнении условия. Важно! При сложении используется адрес команды, следующей за командой условного перехода, а не адрес выполняемой команды!<br />
|<br />
| BEQ $A7<br />
| F0 A7<br />
|}<br />
<br />
== Алфавитный список команд ==<br />
Влияние на флаги:<br />
* «*» — влияет;<br />
* «-» — не влияет;<br />
* «0» — устанавливает в 0;<br />
* «1» — устанавливает в 1;<br />
<br />
Тайминги<br />
* «*» означает, что время увеличивается на 1 такт, если код команды пересекает границу страницы;<br />
* «+» означает время в случае перехода в пределах страницы;<br />
* «++» означает время в случае перехода за пределы текущей страницы;<br />
<br />
{{Команда<br />
| Обозначение = ADC<br />
| Операция = A + M + C -> A, C<br />
| Описание = Сложение с переносом<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| IMM | ADC #Oper | 69 | 2 | 2<br />
| ZP | ADC Oper | 65 | 2 | 3<br />
| ZP, X | ADC Oper,X | 75 | 2 | 4<br />
| ABS | ADC Oper | 6D | 3 | 4<br />
| ABS, X | ADC Oper,X | 7D | 3 | 4*<br />
| ABS, Y | ADC Oper,Y | 79 | 3 | 4*<br />
| IND, X | ADC (Oper,X) | 61 | 2 | 6<br />
| IND, Y | ADC (Oper),Y | 71 | 2 | 5*<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = AND<br />
| Операция = A and M -> A<br />
| Описание = Логическое AND<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | AND #Oper | 29 | 2 | 2<br />
| ZP | AND Oper | 25 | 2 | 3<br />
| ZP, X | AND Oper,X | 35 | 2 | 4<br />
| ABS | AND Oper | 2D | 3 | 4<br />
| ABS, X | AND Oper,X | 3D | 3 | 4*<br />
| ABS, Y | AND Oper,Y | 39 | 3 | 4*<br />
| IND, X | AND (Oper,X) | 21 | 2 | 6<br />
| IND, Y | AND (Oper),Y | 31 | 2 | 5<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ASL<br />
| Операция = C <- [A или M] <- 0<br />
| Описание = Арифметический сдвиг влево<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ACC | ASL A | 0A | 1 | 2<br />
| ZP | ASL Oper | 06 | 2 | 5<br />
| ZP, X | ASL Oper,X | 16 | 2 | 6<br />
| ABS | ASL Oper | 0E | 3 | 6<br />
| ABS, X | ASL Oper,X | 1E | 3 | 7<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BCC<br />
| Операция = Branch on Carry Clear<br />
| Описание = Условный переход, если нет переноса<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BCC Oper | 90 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BCS<br />
| Операция = Branch on Carry Set<br />
| Описание = Условный переход, если перенос<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BCS Oper | B0 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BEQ<br />
| Операция = Branch on Equal<br />
| Описание = Условный переход, если равно (Z=1)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BEQ Oper | F0 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BIT<br />
| Операция = (A and M) == 0 -> Z, M7 -> N, M6 -> V<br />
| Описание = Проверка битов<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * -<br />
| ZP | BIT Oper | 24 | 2 | 3<br />
| ABS | BIT Oper | 2C | 3 | 4<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BMI<br />
| Операция = Branch on Minus<br />
| Описание = Условный переход, если отрицательно (S=1)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BMI Oper | 30 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BNE<br />
| Операция = Branch on Not Equal<br />
| Описание = Условный переход, если не равно (Z=0)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BNE Oper | D0 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BPL<br />
| Операция = Branch on Plus<br />
| Описание = Условный переход, если положительно (S=0)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BPL Oper | 10 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BRK<br />
| Операция = PC+2 -> (S+1200), P -> (S-2), S-3 -> S, ($FFFE) -> PC<br />
| Описание = Программное прерывание<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - 1 - 1 - -<br />
| IMP | BRK | 00 | 1 | 7<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BVC<br />
| Операция = Branch on Overflow Clear<br />
| Описание = Условный переход, если нет переполнения (V=0)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BVC Oper | 50 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BVS<br />
| Операция = Branch on Overflow Set<br />
| Описание = Условный переход, если переполнение (V=1)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BVS Oper | 70 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLC<br />
| Операция = 0 -> C<br />
| Описание = Очистка флага переноса<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - 0<br />
| IMP | CLC | 18 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLD<br />
| Операция = 0 -> D<br />
| Описание = Очистка флага BCD<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - 0 - - -<br />
| IMP | CLD | D8 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLI<br />
| Операция = 0 -> I<br />
| Описание = Очистка флага запрета прерываний<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - 0 - -<br />
| IMP | CLI | 58 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLV<br />
| Операция = 0 -> V<br />
| Описание = Очистка флага переполнения<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - 0 - - - - - -<br />
| IMP | CLV | B8 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CMP<br />
| Операция = A – M<br />
| Описание = Сравнение аккумулятора с памятью<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | CMP #Oper | C9 | 2 | 2 <br />
| ZP | CMP Oper | C5 | 2 | 3<br />
| ZP, X | CMP Oper,X | D5 | 2 | 4<br />
| ABS | CMP Oper | CD | 3 | 4<br />
| ABS, X | CMP Oper,X | DD | 3 | 4*<br />
| ABS, Y | CMP Oper,Y | D9 | 3 | 4*<br />
| IND, X | CMP (Oper,X) | C1 | 2 | 6<br />
| IND, Y | CMP (Oper),Y | D1 | 2 | 5*<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CPX<br />
| Операция = X – M<br />
| Описание = Сравнение X с памятью<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | CPX *Oper | E0 | 2 | 2<br />
| ZP | CPX Oper | E4 | 2 | 3<br />
| ABS | CPX Oper | EC | 3 | 4<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CPY<br />
| Операция = Y – M<br />
| Описание = Сравнение Y с памятью<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | CPY *Oper | C0 | 2 | 2 <br />
| ZP | CPY Oper | C4 | 2 | 3 <br />
| ABS | CPY Oper | CC | 3 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DEC<br />
| Операция = M – 1 -> M<br />
| Описание = Декремент памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ZP | DEC Oper | C6 | 2 | 5 <br />
| ZP, X | DEC Oper,X | D6 | 2 | 6 <br />
| ABS | DEC Oper | CE | 3 | 6 <br />
| ABS, X | DEC Oper,X | DE | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DEX<br />
| Операция = X – 1 -> X<br />
| Описание = Декремент X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | DEX | CA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DEY<br />
| Операция = Y – 1 -> Y<br />
| Описание = Декремент Y<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | DEY | 88 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = EOR<br />
| Операция = A xor M -> A<br />
| Описание = Логическое XOR<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | EOR #Oper | 49 | 2 | 2 <br />
| ZP | EOR Oper | 45 | 2 | 3 <br />
| ZP, X | EOR Oper,X | 55 | 2 | 4 <br />
| ABS | EOR Oper | 4D | 3 | 4 <br />
| ABS, X | EOR Oper,X | 5D | 3 | 4* <br />
| ABS, Y | EOR Oper,Y | 59 | 3 | 4* <br />
| IND, X | EOR (Oper,X) | 41 | 2 | 6 <br />
| IND, Y | EOR (Oper),Y | 51 | 2 | 5* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = INC<br />
| Операция = M + 1 -> M<br />
| Описание = Инкремент памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ZP | INC Oper | E6 | 2 | 5 <br />
| ZP, X | INC Oper,X | F6 | 2 | 6 <br />
| ABS | INC Oper | EE | 3 | 6 <br />
| ABS, X | INC Oper,X | FE | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = INX<br />
| Операция = X + 1 -> X<br />
| Описание = Инкремент X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | INX | E8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = INY<br />
| Операция = Y + 1 -> Y<br />
| Описание = Инкремент Y<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | INY | C8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = JMP<br />
| Операция = (PC+1) -> PC или ((PC+1)) -> PC<br />
| Описание = Безусловный переход<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS | JMP Oper | 4C | 3 | 3 <br />
| IND | JMP (Oper) | 6C | 3 | 5 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = JSR<br />
| Операция = PC+2 -> (S+3000), S - 2 -> S, (PC+1) -> PC<br />
| Описание = Вызов подпрограммы<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS | JSR Oper | 20 | 3 | 6 <br />
| Примечание = В стек помещается адрес следующей команды минус один байт!<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LDA<br />
| Операция = M -> A<br />
| Описание = Загрузка аккумулятора<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LDA #Oper | A9 | 2 | 2 <br />
| ZP | LDA Oper | A5 | 2 | 3 <br />
| ZP, X | LDA Oper,X | B5 | 2 | 4 <br />
| ABS | LDA Oper | AD | 3 | 4 <br />
| ABS, X | LDA Oper,X | BD | 3 | 4* <br />
| ABS, Y | LDA Oper,Y | B9 | 3 | 4* <br />
| IND, X | LDA (Oper,X) | A1 | 2 | 6 <br />
| IND, Y | LDA (Oper),Y | B1 | 2 | 5* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LDX<br />
| Операция = M -> X<br />
| Описание = Загрузка X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LDX #Oper | A2 | 2 | 2 <br />
| ZP | LDX Oper | A6 | 2 | 3 <br />
| ZP, Y | LDX Oper,Y | B6 | 2 | 4 <br />
| ABS | LDX Oper | AE | 3 | 4 <br />
| ABS, Y | LDX Oper,Y | BE | 3 | 4* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LDY<br />
| Операция = M -> Y<br />
| Описание = Загрузка Y<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LDY #Oper | A0 | 2 | 2 <br />
| ZP | LDY Oper | A4 | 2 | 3 <br />
| ZP, X | LDY Oper,X | B4 | 2 | 4 <br />
| ABS | LDY Oper | AC | 3 | 4 <br />
| ABS, X | LDY Oper,X | BC | 3 | 4* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LSR<br />
| Операция = 0 -> [A или M] -> С<br />
| Описание = Логический сдвиг вправо<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = 0 - - - - - * *<br />
| ACC | LSR A | 4A | 1 | 2 <br />
| ZP | LSR Oper | 46 | 2 | 5 <br />
| ZP, X | LSR Oper,X | 56 | 2 | 6 <br />
| ABS | LSR Oper | 4E | 3 | 6 <br />
| ABS, X | LSR Oper,X | 5E | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = NOP<br />
| Операция = No operation<br />
| Описание = Пустая операция<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | NOP | EA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ORA<br />
| Операция = A or M -> A<br />
| Описание = Логическое OR<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | ORA #Oper | 09 | 2 | 2 <br />
| ZP | ORA Oper | 05 | 2 | 3 <br />
| ZP, X | ORA Oper,X | 15 | 2 | 4 <br />
| ABS | ORA Oper | 0D | 3 | 4 <br />
| ABS, X | ORA Oper,X | 1D | 3 | 4* <br />
| ABS, Y | ORA Oper,Y | 19 | 3 | 4* <br />
| IND, X | ORA (Oper,X) | 01 | 2 | 6 <br />
| IND, Y | ORA (Oper),Y | 11 | 2 | 5 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PHA<br />
| Операция = A -> (S + 3700), S - 1 -> S<br />
| Описание = Поместить аккумулятор в стек<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | PHA | 48 | 1 | 3 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PHP<br />
| Операция = P -> (S + 3800), S - 1 -> S<br />
| Описание = Поместить слово состояния в стек<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | PHP | 08 | 1 | 3 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PLA<br />
| Операция = S + 1 -> S, (S + 3900) -> A<br />
| Описание = Загрузить аккумулятор из стека<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | PLA | 68 | 1 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PLP<br />
| Операция = S + 1 -> S, (S + 4000) -> P<br />
| Описание = Загрузить слово состояния из стека<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - * * * * *<br />
| IMP | PLP | 28 | 1 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ROL<br />
| Операция = <- [A или M] <- C <-<br />
| Описание = Циклический сдвиг влево<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ACC | ROL A | 2A | 1 | 2 <br />
| ZP | ROL Oper | 26 | 2 | 5 <br />
| ZP, X | ROL Oper,X | 36 | 2 | 6 <br />
| ABS | ROL Oper | 2E | 3 | 6 <br />
| ABS, X | ROL Oper,X | 3E | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ROR<br />
| Операция = -> C -> [A или M] -><br />
| Описание = Циклический сдвиг вправо<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ACC | ROR A | 6A | 1 | 2 <br />
| ZP | ROR Oper | 66 | 2 | 5 <br />
| ZP, X | ROR Oper,X | 76 | 2 | 6 <br />
| ABS | ROR Oper | 6E | 3 | 6 <br />
| ABS, X | ROR Oper,X | 7E | 3 | 7 <br />
| Примечание = Инструкция ROR доступна в микропроцессорах MCS650X с июня 1976 г.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = RTI<br />
| Операция = (4300 + S + 1) -> P, (4300 + S + 2) -> PC, S + 3 -> S<br />
| Описание = Возврат из прерывания<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - * * * * *<br />
| IMP | RTI | 40 | 1 | 6 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = RTS<br />
| Операция = (4400 + S + 1) -> PС, S + 2 -> S<br />
| Описание = Возврат из подпрограммы<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | RTS | 60 | 1 | 6 <br />
| Примечание = После извлечения адреса возврата из стека к нему прибавляется единица!<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SBC<br />
| Операция = A - M - C -> A, C<br />
| Описание = Вычитание с займом<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| IMM | SBC #Oper | E9 | 2 | 2 <br />
| ZP | SBC Oper | E5 | 2 | 3 <br />
| ZP, X | SBC Oper,X | F5 | 2 | 4 <br />
| ABS | SBC Oper | ED | 3 | 4 <br />
| ABS, X | SBC Oper,X | FD | 3 | 4* <br />
| ABS, Y | SBC Oper,Y | F9 | 3 | 4* <br />
| IND, X | SBC (Oper,X) | E1 | 2 | 6 <br />
| IND, Y | SBC (Oper),Y | F1 | 2 | 5 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SEC<br />
| Операция = 1 -> C<br />
| Описание = Установка флага переноса<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - 1<br />
| IMP | SEC | 38 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SED<br />
| Операция = 1 -> D<br />
| Описание = Установка флага BCD<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - 1 - - -<br />
| IMP | SED | F8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SEI<br />
| Операция = 1 -> I<br />
| Описание = Установка флага запрета прерываний<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - 1 - - -<br />
| IMP | SEI | 78 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = STA<br />
| Операция = A -> M<br />
| Описание = Сохранить аккумулятор в памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | STA Oper | 85 | 2 | 3 <br />
| ZP, X | STA Oper,X | 95 | 2 | 4 <br />
| ABS | STA Oper | 8D | 3 | 4 <br />
| ABS, X | STA Oper,X | 9D | 3 | 5 <br />
| ABS, Y | STA Oper, Y | 99 | 3 | 5 <br />
| IND, X | STA (Oper,X) | 81 | 2 | 6 <br />
| IND, Y | STA (Oper),Y | 91 | 2 | 6 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = STX<br />
| Операция = X -> M<br />
| Описание = Сохранить X в памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | STX Oper | 86 | 2 | 3 <br />
| ZP, Y | STX Oper,Y | 96 | 2 | 4 <br />
| ABS | STX Oper | 8E | 3 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = STY<br />
| Операция = Y -> M<br />
| Описание = Сохранить Y в памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | STY Oper | 84 | 2 | 3 <br />
| ZP, X | STY Oper,X | 94 | 2 | 4 <br />
| ABS | STY Oper | 8C | 3 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TAX<br />
| Операция = A -> X<br />
| Описание = Передать A в X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TAX | AA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TAY<br />
| Операция = A -> Y<br />
| Описание = Передать A в X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TAY | A8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TSX<br />
| Операция = S -> X<br />
| Описание = Передать S в X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TSX | BA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TXA<br />
| Операция = X -> A<br />
| Описание = Передать X в A<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TXA | 8A | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TXS<br />
| Операция = X -> S<br />
| Описание = Передать X в S<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | TXS | 9A | 1 | 2 <br />
| Примечание = В отличие от других операций загрузки, не влияет на флаг N<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TYA<br />
| Операция = Y -> A<br />
| Описание = Передать Y в A<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TYA | 98 | 1 | 2 <br />
}}<br />
<br />
== Особенности ==<br />
=== Пересечение границ страниц в разных режимах адресации ===<br />
В режиме адресации к нулевой странице верхний байт вычисленного адреса всегда обнуляется, поэтому последовательность<br />
<br />
LDX #1<br />
LDA $FF,X<br />
<br />
Загрузит значение из адреса 0000H, а не 0100H, как можно было бы ожидать.<br />
<br />
При косвенной (Indirect) адресации двухбайтовый адрес не может быть извлечен через границу страницы, поэтому все варианты<br />
<br />
LDA ($FF),Y<br />
<br />
LDX #$00<br />
LDA ($FF,X)<br />
<br />
LDX #$FF<br />
LDA ($00,X)<br />
Извлекут младший байт из адреса 00FFH, а младший из 0000H.<br />
<br />
JMP (92FF)<br />
<br />
Получит младший байт из адреса 12FFH, а старший из 1200H.<br />
<br />
=== Внешняя установка флага V ===<br />
В некоторых моделях процессоров есть внешний сигнал -SO, устанавливающий флаг V. Назначение такого сигнала — прерывание ожидания вызова от внешнего устройства в бесконечном цикле команды BVC ($50 $FE).<br />
<br />
=== Флаг B при совпадении BRK и NMI ===<br />
В случае если в момент обработки BRK приходит аппаратное прерывание NMI, процессор переходит по адресу ($FFFA) вместо ($FFFE), а в стек попадает значение P с установленным флагом B.<br />
<br />
=== Работа команд ADC, SBC и ARR в режиме BCD ===<br />
В режиме BCD данные команды работают с числами не двоичном режиме, а BCD-представлении. Фактически, из особенностей нужно упомянуть только влиянии этого режима на установку флагов N, Z и V.<br />
<br />
* Z устанавливается по значению, эквивалентному двоичной, а не BCD-операции.<br />
Например, код<br />
<br />
SED<br />
CLC<br />
LDA #$80<br />
ADC #$80<br />
<br />
Даст в результате A=$60, но при этом Z=1.<br />
<br />
* Флаги N и V устанавливаются после исправления нижнего полубайта, но до исправления верхнего.<br />
<br />
Общий алгоритм работы команды ADC в режиме BCD следующий:<br />
<pre><br />
беззнаковые<br />
A, /* Аккумулятор */<br />
AL, /* нижняя половина аккумулятора */<br />
AH, /* верхняя половина аккумулятора */<br />
<br />
C, /* Флаг переноса */<br />
Z, /* Флаг нуля */<br />
V, /* Флаг переполнения */<br />
N, /* Флаг знака */<br />
<br />
s; /* значение, прибавляемое к аккумулятору */<br />
<br />
AL = (A & 15) + (s & 15) + C; /* Вычисляем нижнюю половину. */<br />
<br />
AH = (A >> 4) + (s >> 4) + (AL > 15); /* Вычисляем верхнюю половину. */<br />
<br />
if (AL > 9) AL += 6; /* BCD-исправление нижней половины. */<br />
<br />
Z = ((A + s + C) & 255 != 0); /* Флаг нуля устанавливается<br />
Как обычно. */<br />
<br />
/* Флаги знака и переполнения устанавливаются как обычно,<br />
но до исправления верхней половины */<br />
<br />
N = (AH & 8 != 0);<br />
V = ((AH << 4) ^ A) & 128 && !((A ^ s) & 128);<br />
<br />
if (AH > 9) AH += 6; /* BCD-исправление верхней половины. */<br />
<br />
/* Перенос – единственный, кто устанавливается в самом конце. */<br />
<br />
C = (AH > 15);<br />
A = ((AH << 4) | (AL & 15)) & 255;<br />
</pre><br />
<br />
С SBC проще. На установку флагов после нее флаг D не влияет.<br />
<br />
<pre><br />
беззнаковые<br />
A, /* Аккумулятор */<br />
AL, /* нижняя половина аккумулятора */<br />
AH, /* верхняя половина аккумулятора */<br />
<br />
C, /* Флаг переноса */<br />
Z, /* Флаг нуля */<br />
V, /* Флаг переполнения */<br />
N, /* Флаг знака */<br />
<br />
s; /* значение, вычитаемое из аккумулятора */<br />
<br />
AL = (A & 15) - (s & 15) - !C; /* Вычисляем нижнюю половину. */<br />
<br />
if (AL & 16) AL -= 6; /* BCD-исправление нижней половины. */<br />
<br />
AH = (A >> 4) - (s >> 4) - (AL & 16); /* Вычисляем верхнюю половину. */<br />
<br />
if (AH & 16) AH -= 6; /* BCD-исправление верхней половины. */<br />
<br />
/* Все флаги устанавливаем как обычно. */<br />
<br />
C = (A - s - !C) & 256 != 0;<br />
Z = (A - s - !C) & 255 != 0;<br />
V = ((A - s - !C) ^ s) & 128 && (A ^ s) & 128;<br />
N = (A - s - !C) & 128 != 0;<br />
<br />
A = ((AH << 4) | (AL & 15)) & 255;<br />
</pre><br />
<br />
=== Другие особенности ===<br />
* Процессор всегда прочитывает второй байт команды условного перехода. Если происходит переход с пересечением границы страницы, то процессор сначала читает байт из текущей страницы, и только потом из нужной.<br />
* Если граница страницы пересекается в других режимах адресации, процессор всегда сначала читает ошибочный байт со страницы, на 1 меньшую, чем нужная.<br />
* Команды вида «Прочитать-Изменить-Записать» выполняют две операции записи — сначала неизмененное значение, затем измененное (то есть INC физически выполняется как LDX loc; STX loc; INX; STX loc).<br />
* В цикле записи сигнал -RDY игнорируется, поэтому перед выполнением DMA его нужно держать не менее 3 циклов подряд, так как это максимально возможное подряд число циклов записи, вызываемое переходом на обработчик прерывания).<br />
* При отработке сигнала -RESET значения в регистрах, за исключением PC, остаются неизменными.<br />
* Процессор всегда прочитывает байт, следующий за кодом команды. Так как многие команды двух-трехбайтовые, это достаточно эффективно.<br />
* Если команда в своем последнем цикле не сохраняет результат в память, то процессор в этот момент читает код следующей команды. Поэтому для таких команд в таблицах обычно указывается время исполнения, на 1 меньше реального.<br />
<br />
=== Обработка прерываний ===<br />
Обработка NMI и IRQ занимает 7 циклов, их обработка в целом похожа на команду BRK. IRQ и BRK устанавливают флаг I, в то время как NMI — нет.<br />
<br />
Перед обработкой прерывания процессор ожидает завершения выполнения текущей команды. Чтобы прерывание было обработано до следующей команды, оно должно быть получено не позднее последнего цикла текущей команды. Исключение есть только для команды BRK. Если прерывание приходит до 4-го цикла (сохранение флагов), то команда игнорируется и происходит переход на обработчик аппаратного прерывания. Обычно это не вызывает проблем, так как в случае совпадения BRK и IRQ все равно устанавливается флаг B, обработчик считает, что выполняется BRK, а IRQ срабатывает по возвращении из обработки BRK. С другой стороны, совпадение BRK и NMI более фатально. Если флаг B не проверяется в обработчике NMI, и перед возвращением адрес возврата не уменьшается на 2, то команда BRK будет потеряна.<br />
<br />
При совпадении IRQ и NMI, процессор, теоретически, должен перейти на обработку NMI, а потом сразу на IRQ, хотя это и не проверено на практике.<br />
<br />
Обработка RESET занимает 6 циклов с момента снятия сигнала. Все регистры сохраняются, кроме PC.<br />
<br />
=== Отличия NMOS и CMOS вариантов ===<br />
* Индексная адресация при пересечении границы страницы:<br />
** NMOS: Дополнительное чтение по неправильному адресу;<br />
** CMOS: Дополнительное чтение последнего байта инструкции;<br />
* Выполнение команд с недопустимыми кодами:<br />
** NMOS: Вешают процессор до выполнения принудительного сброса;<br />
** CMOS: Исполняются как NOP (Резерв на будущее)<br />
* Переход по косвенному адресу, когда операнд пересекает границу страницы (xxFFH):<br />
** NMOS: Второй байт берется из первого байта текущей страницы;<br />
** CMOS: Второй байт берется со следующей страницы, ко времени исполнения добавляется 1 такт.<br />
* Команды вида «Прочитать-Изменить-Записать»<br />
** NMOS: Одна лишняя запись (см. выше);<br />
** CMOS: Одно лишнее чтение.<br />
* Флаг D<br />
** NMOS: После сброса не определен;<br />
** CMOS: Сбрасывается в 0 после аппаратного сброса или прерывания.<br />
* Флаги в режиме BCD<br />
** NMOS: Значения некорректны (см. выше);<br />
** CMOS: Значения правильные, но добавляется 1 цикл.<br />
* Прерывания в момент выборки команды BRK:<br />
** NMOS: Происходит переход по вектору прерывания, а не BRK;<br />
** CMOS: Сначала исполняется команда BRK, потом срабатывает прерывание.<br />
<br />
== Недокументированные команды ==<br />
<br />
Многие недокументированные команды реально не выполняют операцию AND между регистрами. Это происходит автоматически, когда два значения помещаются одновременно на внутреннюю шину с открытыми коллекторами.<br />
<br />
=== NOP ===<br />
Команда NOP, помимо кода 90, может выполняться с другими методами адресации. В этом случае она эквивалентна команде LDA, за исключением того, что она не сохраняет результат и не влияет на флаги.<br />
<br />
{{Команда<br />
| Обозначение = ANE<br />
| Операция = Вар. 1: A = ((A and #581 and X) or ( #$EE and X)) and #byte; Вар. 2: X and #byte -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | ANE #byte | 8B | 2 | ? <br />
| Примечание = В реальности параметр #581 может принимать значения #580, #58 или #$00, что зависит от значения, оставленного на шине видеоконтроллером после прерывания команды в режиме DMA.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ANC<br />
| Операция = Вар. 1: A and #byte -> A, ASL A; Вар. 2: предыдущее без ASL<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | ANC #Oper | 0B | 2 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ANC?<br />
| Операция = Вар. 1: A and #byte -> A, ROL A; Вар. 2: предыдущее без ROL<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | ANC #Oper | 2B | 2 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ARR (ADC + ROR)<br />
| Операция = D=0: A and #byte -> A, ROR, A7->S, A6->V, (A==0)->Z, A6 xor A5 -> C<br><br />
D=1: см. код ниже<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| IMM | ARR #byte | 6B | 2? | ? <br />
| Примечание = Алгоритм для BCD-режима:<br />
<pre><br />
A, /* Аккумулятор */<br />
AL, /* нижняя половина аккумулятора */<br />
AH, /* верхняя половина аккумулятора */<br />
<br />
C, /* Флаг переноса */<br />
Z, /* Флаг нуля */<br />
V, /* Флаг переполнения */<br />
N, /* Флаг знака */<br />
<br />
t, /* вспомогательная переменная */<br />
s; /* байт-параметр команды */<br />
<br />
t = A & s; /* Выполняем AND. */<br />
<br />
AH = t >> 4; /* Делим результат */<br />
AL = t & 15; /* на части. */<br />
<br />
N = C; /* Флаг знака */<br />
Z = !(A = (t >> 1) | (C << 7)); /* Z как обычно */<br />
V = (t ^ A) & 64; /* a V магически. */<br />
<br />
if (AL + (AL & 1) > 5) /* «заплатка» BCD для нижней половины. */<br />
A = (A & 0xF0) | ((A + 6) & 0xF);<br />
<br />
if (C = AH + (AH & 1) > 5) /* Перенос. */<br />
A = (A + 0x60) & 0xFF; /* «заплатка» BCD для верхней половины. */<br />
</pre><br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ASR<br />
| Операция = A and #byte -> A, LSR A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | ASR #Oper | 4B | 2 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DCP (DEC + CMP)<br />
| Операция = M + 1 -> M, A – M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | DCP Oper | C7 | 2 | ? <br />
| ZP, X | DCP Oper,X | D7 | 2 | ? <br />
| ABS | DCP Oper | CF | 3 | ? <br />
| ABS, X | DCP Oper,X | DF | 3 | ? <br />
| ABS, Y | DCP Oper, Y | DB | 3 | ? <br />
| IND, X | DCP (Oper,X) | C3 | 2 | ? <br />
| IND, Y | DCP (Oper),Y | D3 | 2 | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = ISB (INC + SBC)<br />
| Операция = M + 1 -> M, A – M -> A <br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| ZP | ISB Oper | E7 | 2 | ? <br />
| ZP, X | ISB Oper,X | F7 | 2 | ? <br />
| ABS | ISB Oper | EF | 3 | ? <br />
| ABS, X | ISB Oper,X | FF | 3 | ? <br />
| ABS, Y | ISB Oper, Y | FB | 3 | ? <br />
| IND, X | ISB (Oper,X) | E3 | 2 | ? <br />
| IND, Y | ISB (Oper),Y | F3 | 2 | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = LAS<br />
| Операция = M and S -> A, X, S<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ABS, Y | LAS Oper, Y | BB | 3 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LAX<br />
| Операция = M -> A, X<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ZP | LAX Oper | A7 | 2 | ? <br />
| ZP, Y! | LAX Oper,Y | B7 | 2 | ? <br />
| ABS | LAX Oper | AF | 3 | ? <br />
| ABS, Y | LAX Oper,Y | BF | 3 | ? <br />
| IND, X | LAX (Oper,Y) | A3 | 2 | ? <br />
| IND, Y | LAX (Oper),Y | B3 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LXA<br />
| Операция = Вар. 1: A = X = ANE; Вар. 2: A = X = (A & #byte); Вар. 3: A = X = #byte;<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LXA #byte | AB | 2? | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = RLA<br />
| Операция = ROL M, A and M -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | RLA Oper | 27 | 2 | ? <br />
| ZP, X | RLA Oper,X | 37 | 2 | ? <br />
| ABS | RLA Oper | 2F | 3 | ? <br />
| ABS, X | RLA Oper,X | 3F | 3 | ? <br />
| ABS, Y | RLA Oper, Y | 3B | 3 | ? <br />
| IND, X | RLA (Oper,X) | 23 | 2 | ? <br />
| IND, Y | RLA (Oper),Y | 33 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = RRA<br />
| Операция = ROR M, ADC(A, M) -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| ZP | RRA Oper | 67 | 2 | ? <br />
| ZP, X | RRA Oper,X | 77 | 2 | ? <br />
| ABS | RRA Oper | 6F | 3 | ? <br />
| ABS, X | RRA Oper,X | 7F | 3 | ? <br />
| ABS, Y | RRA Oper, Y | 7B | 3 | ? <br />
| IND, X | RRA (Oper,X) | 63 | 2 | ? <br />
| IND, Y | RRA (Oper),Y | 73 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SAX<br />
| Операция = A and X -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | SAX Oper | 87 | 2 | ? <br />
| ZP, Y! | SAX Oper,Y | 97 | 2 | ? <br />
| ABS | SAX Oper | 8F | 3 | ? <br />
| IND, X | SAX (Oper,X) | 83 | 2 | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = SBX (CMP + DEX)<br />
| Операция = (A and X) - #byte -> X<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | SBX #byte | CB | 2 | ? <br />
| Примечание = От CMP осталось вычитание, от DEX – сохранение результата в X. AND берется из одновременного подключения A и X к АЛУ.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHA<br />
| Операция = A & X & (ADDR_HI + 1)) -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IND, Y | SHA (Oper),Y | 93 | 2 | ?<br />
| ABS, Y | SHA Oper,Y | 9F | 3 | ?<br />
| Примечание = ADDR_HI, вероятно, старший байт адреса M?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHS<br />
| Операция = A and X -> S, S and ADDR_HI -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS, Y | SHS Oper,Y | 9B | 3 | ?<br />
| Примечание = ADDR_HI, вероятно, старший байт адреса M?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHX<br />
| Операция = Вар. 1: X and (ADDR_HI + 1) -> M; Вар. 2: X and ADDR_HI -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS, Y | SHX Oper,Y | 9E | 3 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHY<br />
| Операция = Вар. 1: Y & (ADDR_HI + 1) -> M; Вар. 2: Y and ADDR_HI -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS, Y | SHY Oper,Y | 9C | 3 | ?<br />
| Примечание = По другому источнику, режим адресации ABS, X.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SLO (ASL + ORA)<br />
| Операция = ASL M -> M, A or M -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | SLO Oper | 07 | 2 | ? <br />
| ZP, X | SLO Oper,X | 17 | 2 | ? <br />
| ABS | SLO Oper | 0F | 3 | ? <br />
| ABS, X | SLO Oper,X | 1F | 3 | ? <br />
| ABS, Y | SLO Oper, Y | 1B | 3 | ? <br />
| IND, X | SLO (Oper,X) | 03 | 2 | ? <br />
| IND, Y | SLO (Oper),Y | 13 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SRE<br />
| Операция = LSR M -> M, A xor M -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | SRE Oper | 47 | 2 | ? <br />
| ZP, X | SRE Oper,X | 57 | 2 | ? <br />
| ABS | SRE Oper | 4F | 3 | ? <br />
| ABS, X | SRE Oper,X | 5F | 3 | ? <br />
| ABS, Y | SRE Oper, Y | 5B | 3 | ? <br />
| IND, X | SRE (Oper,X) | 43 | 2 | ? <br />
| IND, Y | SRE (Oper),Y | 53 | 2 | ? <br />
}}<br />
<br />
== Порядок декодирования команд ==<br />
<br />
Любую команду 6502 можно представить следующим образом:<br />
<br />
XXXYYYZZ<br />
└┬┘└┬┘└┤<br />
│ │ └── Группа команд<br />
│ └───── Режим адресации<br />
└──────── Код команды<br />
<br />
Таким образом, для уменьшения сравнений можно использовать следующий алгоритм:<br />
<br />
swith ZZ:<br />
case 0:<br />
switch XXX:<br />
case 0:<br />
//Команды 000yyy00<br />
Do_Command_0(yyy);<br />
break;<br />
case 1:<br />
//Команды 001yyy00<br />
Do_Command_1(yyy);<br />
break;<br />
// etc<br />
end;<br />
case 1:<br />
switch XXX:<br />
case 0:<br />
//Команды 000yyy01<br />
Do_Command_2(yyy);<br />
break;<br />
case 1:<br />
//Команды 001yyy01<br />
Do_Command_3(yyy);<br />
break;<br />
// etc<br />
end;<br />
break<br />
end; <br />
<br />
Далее все команды сгруппированы по этому принципу.<br />
* «*» отмечены недокументированные команды)<br />
* HALT обозначает зависание процессора<br />
* «*NOP mode» обозначает, что команда эквивалента «LDA mode», но результат не сохраняется и флаги не меняются.<br />
<br />
??? 000xxx00<br />
000 BRK<br />
001 *NOP zp<br />
010 PHP<br />
011 *NOP abs<br />
100 BPL<br />
101 *NOP zp,x<br />
110 CLC<br />
111 *NOP abs,x<br />
<br />
??? 001xxx00<br />
000 JSR<br />
001 BIT zp<br />
010 PLP impl<br />
011 BIT abs<br />
100 BMI rel<br />
101 *NOP zp,x<br />
110 SEC impl<br />
111 *NOP abs,x<br />
<br />
??? 010xxx00<br />
000 RTI<br />
001 *NOP zp<br />
010 PHA impl<br />
011 JMP abs<br />
100 BVC rel<br />
101 *NOP zp,x<br />
110 CLI impl<br />
111 *NOP abs,x<br />
<br />
??? 011xxx00<br />
000 RTS<br />
001 *NOP zp<br />
010 PLA impl<br />
011 JMP (abs)<br />
100 BVS rel<br />
101 *NOP zp,x<br />
110 SEI impl<br />
111 *NOP abs,x<br />
<br />
??? 100xxx00<br />
000 *NOP<br />
001 STY zp<br />
010 DEY impl<br />
011 STY abs<br />
100 BCC rel<br />
101 STY zp,x<br />
110 TYA impl<br />
111 *SHY abs,x<br />
<br />
??? 101xxx00<br />
000 LDY<br />
001 LDY zp<br />
010 TAY impl<br />
011 LDY abs<br />
100 BCS rel<br />
101 LDY zp,x<br />
110 CLV impl<br />
111 LDY abs,x<br />
<br />
??? 110xxx00<br />
000 CPY<br />
001 CPY zp<br />
010 INY impl<br />
011 CPY abs<br />
100 BNE rel<br />
101 *NOP zp,x<br />
110 CLD impl<br />
111 *NOP abs,x<br />
<br />
??? 111xxx00<br />
000 CPX<br />
001 CPX zp<br />
010 INX impl<br />
011 CPX abs<br />
100 BEQ rel<br />
101 *NOP zp,x<br />
110 SED impl<br />
111 *NOP abs,x<br />
<br />
ORA 000xxx01<br />
000 ind,x<br />
001 zp<br />
010 immed<br />
011 abs<br />
100 ind,y<br />
101 zp,x<br />
110 abs,y<br />
111 abs,x<br />
<br />
AND 001xxx01<br />
EOR 010xxx01<br />
ADC 011xxx01<br />
STA 100xxx01<br />
LDA 101xxx01<br />
CMP 110xxx01<br />
SBC 111xxx01<br />
<br />
ASL 000xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
ROL 001xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
LSR 010xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
ROR 011xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
STX 100xxx10<br />
000 *NOP(HALT)<br />
001 zp<br />
010 TXA (accum)<br />
011 abs<br />
100 *HALT<br />
101 zp,y<br />
110 TXS<br />
111 *SHX**y)<br />
<br />
LDX 101xxx10<br />
000 imm<br />
001 zp<br />
010 TAX (accum)<br />
011 abs<br />
100 *HALT<br />
101 zp,y<br />
110 TSX<br />
111 *y)<br />
<br />
DEC 110xxx10<br />
000 *NOP(HALT)<br />
001 zp<br />
010 DEX (impl)<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
INC 111xxx10<br />
000 *NOP(HALT)<br />
001 zp<br />
010 NOP (impl)<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
*SLO 000xxx11<br />
000 *SLO ind,x<br />
001 *SLO zp<br />
010 *ANC imm<br />
011 *SLO abs<br />
100 *SLO ind,y<br />
101 *SLO zp,x<br />
110 *SLO abs,y<br />
111 *SLO abs,x<br />
<br />
*RLA 001xxx11<br />
000 *RLA ind,x<br />
001 *RLA zp<br />
010 *ANC imm<br />
011 *RLA abs<br />
100 *RLA ind,y<br />
101 *RLA zp,x<br />
110 *RLA abs,y<br />
111 *RLA abs,x<br />
<br />
*SRE 010xxx11<br />
000 *SRE ind,x<br />
001 *SRE zp<br />
010 *ASR imm<br />
011 *SRE abs<br />
100 *SRE ind,y<br />
101 *SRE zp,x<br />
110 *SRE abs,y<br />
111 *SRE abs,x<br />
<br />
*RRA 011xxx11<br />
000 *RRA ind,x<br />
001 *RRA zp<br />
010 *ARR imm<br />
011 *RRA abs<br />
100 *RRA ind,y<br />
101 *RRA zp,x<br />
110 *RRA abs,y<br />
111 *RRA abs,x<br />
<br />
*??? 100xxx11<br />
000 *SAX ind,x<br />
001 *SAX zp<br />
010 *ANE imm<br />
011 *SAX abs<br />
100 *SHA ind,y<br />
101 *SAX* y)<br />
110 *SHS abs,y<br />
111 *SHA**y)<br />
<br />
*??? 101xxx11<br />
000 *LAX ind,x<br />
001 *LAX zp<br />
010 *LXA imm<br />
011 *LAX abs<br />
100 *LAX ind,y<br />
101 *LAX* y)<br />
110 *LAS abs,y<br />
111 *LAX* y)<br />
<br />
*DCP 110xxx11<br />
000 *DCP ind,x<br />
001 *DCP zp<br />
010 *SBX imm<br />
011 *DCP abs<br />
100 *DCP ind,y<br />
101 *DCP zp,x<br />
110 *DCP abs,y<br />
111 *DCP abs,x<br />
<br />
*ISB 111xxx11<br />
000 *ISB ind,x<br />
001 *IBS zp<br />
010 *SBC imm<br />
011 *ISB abs<br />
100 *ISB ind,y<br />
101 *ISB zp,x<br />
110 *ISB abs,y<br />
111 *ISB abs,x<br />
<br />
== Источники ==<br />
* http://www.oxyron.de/html/opcodes02.html<br />
* https://emuverse.ru/downloads/datasheets/processors/6502/c64doc.txt<br />
* [http://6502.org/tutorials/interrupts.html Investigating Interrupts]<br />
* [https://www.nesdev.org/the%20'B'%20flag%20&%20BRK%20instruction.txt 6502 'B' flag & BRK opcode]<br />
<br />
<br />
<br />
[[Категория:MOS 6502]]</div>Pantherhttps://emuverse.ru/w/index.php?title=MOS_Technology_6502&diff=3734MOS Technology 65022024-01-09T20:37:19Z<p>Panther: /* Ссылки */ +1</p>
<hr />
<div>{{Emuverse}}<br />
<br />
[[Изображение:MOS 6502AD 4585 top.jpg|thumb|Процессор 6502 в пластмассовом корпусе DIL-40]]<br />
'''MOS Technology 6502''', '''6502''', — 8-ми разрядный микропроцессор, первоначально разрабртанный компанией MOS Technology.<br />
<br />
== Варианты ==<br />
* 6501 — исходная версия процессора, весь тираж уничтожен из-за лицензионных проблем с Motorola;<br />
* 6502 — основная версия процессора, вариант 6501 с измененным внешним интерфейсом и встроенным двухфазным тактовым генератором;<br />
* 6507 — упрощенная версия 6502 без внешних прерываний и урезанной шиной адреса;<br />
* 6508 — микроконтроллер с ядром 6502, 8-ми битнытным портом ввода-вывода и 256 байтами статической ОЗУ;<br />
* 6509 — вариант 6502, способный адресовать 1 Мб внешней памяти с помощью встроенного блока переключения банков;<br />
* 6510 — вариант 6502 с 8-ми битным портом ввода-вывода (в большинстве вариантов были доступны 6 бит. Применялся в компьютере [[Commodore 64]];<br />
* 8500 — HMOS-версия 6510;<br />
* 7501/8501 — полностью совместимые версии 6510;<br />
* 8502 — версия 6510, имеющая отличия в исполнении некоторых недокументированных команд;<br />
* 65C02 — обновленная версия 6502, имеющая несколько новых команд;<br />
* 65CE02 — ядро, применявшееся в микроконтроллере [[MOS Technology 4510]];<br />
* [[65816|WDC 65816/65802]] — 16-ти разрядный микропроцессор, усовершенствованный 6502. Имеет режим полной эмуляции 6502. 65802 полностью совместим с 6502 по внешним выводам и может быть использован вместо него в старых компьютерах;<br />
<br />
== Системы на основе 6502 ==<br />
* Игровые приставки [[Atari 2600]] (6507), [[Nintendo Entertainment System]];<br />
* [[Apple II]];<br />
* [[Правец 8]];<br />
* [[Агат]] (Клон 6502 болгарского производства, оригинальные процессоры со спиленной маркировкой);<br />
* [[Commodore 64]] (6510).<br />
<br />
== Рекомендуемая литература ==<br />
* ''Морер&nbsp;У.'' Язык Ассемблера для персонального компьютера ЭПЛ.&nbsp;— М.: Мир, 1987. 430&nbsp;с.<br />
<br />
== Ссылки ==<br />
* [http://www.6502.org/ www.6502.org]{{ref-en}}<br />
* [https://github.com/Klaus2m5/6502_65C02_functional_tests Тесты команд]<br />
* [https://wilsonminesco.com/NMOS-CMOSdif/ Отличия 65с02 от 6502]<br />
<br />
== Документация ==<br />
* [[MOS Technology 6502/Система команд|Полная система команд 6502/6510]]<br />
* {{txt||Микропроцессор 6502|datasheets/processors/6502/6502.rus.txt}}<br />
* {{www}} [http://www.zophar.net/tech/files/6502ref.html 65C02 Reference Manual] {{ref-en}}<br />
* {{www}} [http://6502.org/tutorials/interrupts.html Описание механизма прерываний] {{ref-en}}<br />
* {{txt||6502/6510/8500/8502 instruction set] + undoc|datasheets/processors/6502/c64doc.txt}} {{ref-en}}<br />
* {{pdf||UMC UM6502 datasheet|datasheets/processors/6502/UM6502.pdf}} {{ref-en}}<br />
* {{pdf||WDC W65C02S datasheet|datasheets/processors/6502/W6502S.pdf}} {{ref-en}}<br />
* {{zip||Commodore Semicounductor Group 6508 datasheet|datasheets/processors/6502/6508.zip}} {{ref-en}}<br />
* {{zip||Commodore Semicounductor Group 6509 datasheet|datasheets/processors/6502/6509-8610.zip}} {{ref-en}}<br />
* {{txt||6502 bugs list|datasheets/processors/6502/6502.bugs.txt}} {{ref-en}}<br />
* {{www}} [http://www.atariarchives.org/mlb/ Machine Language For Beginners] by Richard Mansfield, published 1983 {{ref-en}}<br />
<br />
[[Категория:MOS 6502]]</div>Pantherhttps://emuverse.ru/w/index.php?title=MOS_Technology_6502/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4&diff=3733MOS Technology 6502/Система команд2024-01-08T20:49:25Z<p>Panther: jsr, rts уточнение</p>
<hr />
<div>{{Emuverse}}<br />
<small>{{TOCright}}</small><br />
== Регистры ==<br />
* A — аккумулятор, 8 бит;<br />
* X, Y — индексные регистры, 8 бит;<br />
* PC — счетчик команд, 16 бит;<br />
* S — указатель стека, 8 бит;<br />
* P — регистр состояния;<br />
** <tt>C (P0)</tt> — перенос;<br />
** <tt>Z (P1)</tt> — ноль;<br />
** <tt>I (P2)</tt> — запрет внешних прерываний — IRQ (I=0 — прерывания разрешены);<br />
** <tt>D (P3)</tt> — режим BCD для инструкций сложения и вычитания с переносом;<br />
** <tt>B (P4)</tt> — обработка прерывания (B=1 после выполнения команды BRK);<br />
** <tt>1 (P5)</tt> — не используется, равен 1;<br />
** <tt>V (P6)</tt> — переполнение;<br />
** <tt>N (P7)</tt> — знак. Равен старшему биту значения, загруженного в A, X или Y в результате выполнения операции (кроме TXS).<br />
<br />
== Режимы адресации и страницы ==<br />
Вся адресуемая 6502 память разбита на страницы по 256 байт. Если при обработке команды происходит пересечение границы страницы, инструкции могут выполняться несколько по-другому, что описано ниже. Две страницы имеют особое значение — страница 0 (00H-FFH), называемая «нулевой» — для этой страницы выделен особый режим адресации с однобайтовым адресом. Другая особая страница — № 1 (100H-1FFH), отведенная под стек. Так как регистр указателя стека восьмиразрядный, при обращении к стеку к значению регистра всегда добавляется 100H.<br />
<br />
Многие команды могут работать с несколькими режимами адресации, которые перечислены ниже:<br />
<br />
{| class=border<br />
! Название англ.<br />
! Название русск.<br />
! Описание<br />
! Обозначение<br />
! Пример<br />
! Код<br />
|-<br />
| Immediate<br />
| Непосредственная<br />
| Операнд располагается сразу за кодом инструкции<br />
| #<br />
| LDA #$0A<br />
| A9 02<br />
|-<br />
| Absolute<br />
| Абсолютная (прямая)<br />
| Адрес операнда располагается сразу за кодом инструкции<br />
|<br />
| LDA $1234<br />
| AD 34 12<br />
|-<br />
| Zeropage<br />
| Абсолютная на нулевой странице (для адресов 00H-0FFH)<br />
|<br />
|<br />
| LDA $2F<br />
| A5 2F<br />
|-<br />
| Accumulator/Implied<br />
| Аккумуляторная/Неявная<br />
| Операнд подразумевается самой командой.<br />
|<br />
| TAX<br />
| AA<br />
|-<br />
| Absolute, x<br />Absolute, y<br />
| Абсолютная индексная<br />
| Адрес, указанный за кодом операции, складывается со значением индексного регистра<br />
| ADDR, X<br /> ADDR, Y<br />
| nowrap | LDA $1234, X<br /> LDA $1234, Y<br />
| nowrap | D9 34 12<br />DD 34 12<br />
|-<br />
| Zeropage, x<br />Zeropage, y<br />
| Абсолютная индексная на нулевой странице<br />
|<br />
| ADDR, X<br /> ADDR, Y<br />
| LDA $2F, X<br />
| B5 2F<br />
|-<br />
| Indirect<br />
| Косвенная<br />
| Только в команде JMP. Новый адрес для счетчика команд берется из памяти, по адресу, указанному за кодом команды<br />
| (ADDR)<br />
| JMP ($1234)<br />
| 6С 34 12<br />
|-<br />
| Indirect, x<br />
| Индексно-косвенная на нулевой странице<br />
| Адрес операнда складывается из байта, следующего за кодом команды и содержимого регистра X. Важно! Старший байт суммы отбрасывается!<br />
| (ADDR, X)<br />
| LDA ($3E, X)<br />
| A1 3E<br />
|-<br />
| Indirect, y<br />
| Косвенно-индексная<br />
| Адрес операнда складывается из двух байт в нулевой странице по адресу, указанному вторым байтом команды, и регистра Y.<br />
| (ADDR), Y<br />
| LDA ($4C), Y<br />
| B1 4C<br />
|-<br />
| Relative<br />
| Относительная<br />
| Используется в условных переходах. Второй байт команды (как число со знаком от −128 до +127) добавляется к счетчику команд при выполнении условия. Важно! При сложении используется адрес команды, следующей за командой условного перехода, а не адрес выполняемой команды!<br />
|<br />
| BEQ $A7<br />
| F0 A7<br />
|}<br />
<br />
== Алфавитный список команд ==<br />
Влияние на флаги:<br />
* «*» — влияет;<br />
* «-» — не влияет;<br />
* «0» — устанавливает в 0;<br />
* «1» — устанавливает в 1;<br />
<br />
Тайминги<br />
* «*» означает, что время увеличивается на 1 такт, если код команды пересекает границу страницы;<br />
* «+» означает время в случае перехода в пределах страницы;<br />
* «++» означает время в случае перехода за пределы текущей страницы;<br />
<br />
{{Команда<br />
| Обозначение = ADC<br />
| Операция = A + M + C -> A, C<br />
| Описание = Сложение с переносом<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| IMM | ADC #Oper | 69 | 2 | 2<br />
| ZP | ADC Oper | 65 | 2 | 3<br />
| ZP, X | ADC Oper,X | 75 | 2 | 4<br />
| ABS | ADC Oper | 6D | 3 | 4<br />
| ABS, X | ADC Oper,X | 7D | 3 | 4*<br />
| ABS, Y | ADC Oper,Y | 79 | 3 | 4*<br />
| IND, X | ADC (Oper,X) | 61 | 2 | 6<br />
| IND, Y | ADC (Oper),Y | 71 | 2 | 5*<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = AND<br />
| Операция = A and M -> A<br />
| Описание = Логическое AND<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | AND #Oper | 29 | 2 | 2<br />
| ZP | AND Oper | 25 | 2 | 3<br />
| ZP, X | AND Oper,X | 35 | 2 | 4<br />
| ABS | AND Oper | 2D | 3 | 4<br />
| ABS, X | AND Oper,X | 3D | 3 | 4*<br />
| ABS, Y | AND Oper,Y | 39 | 3 | 4*<br />
| IND, X | AND (Oper,X) | 21 | 2 | 6<br />
| IND, Y | AND (Oper),Y | 31 | 2 | 5<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ASL<br />
| Операция = C <- [A или M] <- 0<br />
| Описание = Арифметический сдвиг влево<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ACC | ASL A | 0A | 1 | 2<br />
| ZP | ASL Oper | 06 | 2 | 5<br />
| ZP, X | ASL Oper,X | 16 | 2 | 6<br />
| ABS | ASL Oper | 0E | 3 | 6<br />
| ABS, X | ASL Oper,X | 1E | 3 | 7<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BCC<br />
| Операция = Branch on Carry Clear<br />
| Описание = Условный переход, если нет переноса<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BCC Oper | 90 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BCS<br />
| Операция = Branch on Carry Set<br />
| Описание = Условный переход, если перенос<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BCS Oper | B0 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BEQ<br />
| Операция = Branch on Equal<br />
| Описание = Условный переход, если равно (Z=1)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BEQ Oper | F0 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BIT<br />
| Операция = (A and M) == 0 -> Z, M7 -> N, M6 -> V<br />
| Описание = Проверка битов<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * -<br />
| ZP | BIT Oper | 24 | 2 | 3<br />
| ABS | BIT Oper | 2C | 3 | 4<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BMI<br />
| Операция = Branch on Minus<br />
| Описание = Условный переход, если отрицательно (S=1)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BMI Oper | 30 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BNE<br />
| Операция = Branch on Not Equal<br />
| Описание = Условный переход, если не равно (Z=0)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BNE Oper | D0 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BPL<br />
| Операция = Branch on Plus<br />
| Описание = Условный переход, если положительно (S=0)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BPL Oper | 10 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BRK<br />
| Операция = PC+2 -> (S+1200), P -> (S-2), S-3 -> S, ($FFFE) -> PC<br />
| Описание = Программное прерывание<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - 1 - 1 - -<br />
| IMP | BRK | 00 | 1 | 7<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BVC<br />
| Операция = Branch on Overflow Clear<br />
| Описание = Условный переход, если нет переполнения (V=0)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BVC Oper | 50 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = BVS<br />
| Операция = Branch on Overflow Set<br />
| Описание = Условный переход, если переполнение (V=1)<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| REL | BVS Oper | 70 | 2 | 2<br>3+<br>4++<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLC<br />
| Операция = 0 -> C<br />
| Описание = Очистка флага переноса<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - 0<br />
| IMP | CLC | 18 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLD<br />
| Операция = 0 -> D<br />
| Описание = Очистка флага BCD<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - 0 - - -<br />
| IMP | CLD | D8 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLI<br />
| Операция = 0 -> I<br />
| Описание = Очистка флага запрета прерываний<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - 0 - -<br />
| IMP | CLI | 58 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CLV<br />
| Операция = 0 -> V<br />
| Описание = Очистка флага переполнения<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - 0 - - - - - -<br />
| IMP | CLV | B8 | 1 | 2<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CMP<br />
| Операция = A – M<br />
| Описание = Сравнение аккумулятора с памятью<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | CMP #Oper | C9 | 2 | 2 <br />
| ZP | CMP Oper | C5 | 2 | 3<br />
| ZP, X | CMP Oper,X | D5 | 2 | 4<br />
| ABS | CMP Oper | CD | 3 | 4<br />
| ABS, X | CMP Oper,X | DD | 3 | 4*<br />
| ABS, Y | CMP Oper,Y | D9 | 3 | 4*<br />
| IND, X | CMP (Oper,X) | C1 | 2 | 6<br />
| IND, Y | CMP (Oper),Y | D1 | 2 | 5*<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CPX<br />
| Операция = X – M<br />
| Описание = Сравнение X с памятью<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | CPX *Oper | E0 | 2 | 2<br />
| ZP | CPX Oper | E4 | 2 | 3<br />
| ABS | CPX Oper | EC | 3 | 4<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = CPY<br />
| Операция = Y – M<br />
| Описание = Сравнение Y с памятью<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | CPY *Oper | C0 | 2 | 2 <br />
| ZP | CPY Oper | C4 | 2 | 3 <br />
| ABS | CPY Oper | CC | 3 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DEC<br />
| Операция = M – 1 -> M<br />
| Описание = Декремент памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ZP | DEC Oper | C6 | 2 | 5 <br />
| ZP, X | DEC Oper,X | D6 | 2 | 6 <br />
| ABS | DEC Oper | CE | 3 | 6 <br />
| ABS, X | DEC Oper,X | DE | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DEX<br />
| Операция = X – 1 -> X<br />
| Описание = Декремент X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | DEX | CA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DEY<br />
| Операция = Y – 1 -> Y<br />
| Описание = Декремент Y<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | DEY | 88 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = EOR<br />
| Операция = A xor M -> A<br />
| Описание = Логическое XOR<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | EOR #Oper | 49 | 2 | 2 <br />
| ZP | EOR Oper | 45 | 2 | 3 <br />
| ZP, X | EOR Oper,X | 55 | 2 | 4 <br />
| ABS | EOR Oper | 4D | 3 | 4 <br />
| ABS, X | EOR Oper,X | 5D | 3 | 4* <br />
| ABS, Y | EOR Oper,Y | 59 | 3 | 4* <br />
| IND, X | EOR (Oper,X) | 41 | 2 | 6 <br />
| IND, Y | EOR (Oper),Y | 51 | 2 | 5* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = INC<br />
| Операция = M + 1 -> M<br />
| Описание = Инкремент памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ZP | INC Oper | E6 | 2 | 5 <br />
| ZP, X | INC Oper,X | F6 | 2 | 6 <br />
| ABS | INC Oper | EE | 3 | 6 <br />
| ABS, X | INC Oper,X | FE | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = INX<br />
| Операция = X + 1 -> X<br />
| Описание = Инкремент X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | INX | E8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = INY<br />
| Операция = Y + 1 -> Y<br />
| Описание = Инкремент Y<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | INY | C8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = JMP<br />
| Операция = (PC+1) -> PC или ((PC+1)) -> PC<br />
| Описание = Безусловный переход<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS | JMP Oper | 4C | 3 | 3 <br />
| IND | JMP (Oper) | 6C | 3 | 5 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = JSR<br />
| Операция = PC+2 -> (S+3000), S - 2 -> S, (PC+1) -> PC<br />
| Описание = Вызов подпрограммы<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS | JSR Oper | 20 | 3 | 6 <br />
| Примечание = В стек помещается адрес следующей команды минус один байт!<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LDA<br />
| Операция = M -> A<br />
| Описание = Загрузка аккумулятора<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LDA #Oper | A9 | 2 | 2 <br />
| ZP | LDA Oper | A5 | 2 | 3 <br />
| ZP, X | LDA Oper,X | B5 | 2 | 4 <br />
| ABS | LDA Oper | AD | 3 | 4 <br />
| ABS, X | LDA Oper,X | BD | 3 | 4* <br />
| ABS, Y | LDA Oper,Y | B9 | 3 | 4* <br />
| IND, X | LDA (Oper,X) | A1 | 2 | 6 <br />
| IND, Y | LDA (Oper),Y | B1 | 2 | 5* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LDX<br />
| Операция = M -> X<br />
| Описание = Загрузка X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LDX #Oper | A2 | 2 | 2 <br />
| ZP | LDX Oper | A6 | 2 | 3 <br />
| ZP, Y | LDX Oper,Y | B6 | 2 | 4 <br />
| ABS | LDX Oper | AE | 3 | 4 <br />
| ABS, Y | LDX Oper,Y | BE | 3 | 4* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LDY<br />
| Операция = M -> Y<br />
| Описание = Загрузка Y<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LDY #Oper | A0 | 2 | 2 <br />
| ZP | LDY Oper | A4 | 2 | 3 <br />
| ZP, X | LDY Oper,X | B4 | 2 | 4 <br />
| ABS | LDY Oper | AC | 3 | 4 <br />
| ABS, X | LDY Oper,X | BC | 3 | 4* <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LSR<br />
| Операция = 0 -> [A или M] -> С<br />
| Описание = Логический сдвиг вправо<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = 0 - - - - - * *<br />
| ACC | LSR A | 4A | 1 | 2 <br />
| ZP | LSR Oper | 46 | 2 | 5 <br />
| ZP, X | LSR Oper,X | 56 | 2 | 6 <br />
| ABS | LSR Oper | 4E | 3 | 6 <br />
| ABS, X | LSR Oper,X | 5E | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = NOP<br />
| Операция = No operation<br />
| Описание = Пустая операция<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | NOP | EA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ORA<br />
| Операция = A or M -> A<br />
| Описание = Логическое OR<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | ORA #Oper | 09 | 2 | 2 <br />
| ZP | ORA Oper | 05 | 2 | 3 <br />
| ZP, X | ORA Oper,X | 15 | 2 | 4 <br />
| ABS | ORA Oper | 0D | 3 | 4 <br />
| ABS, X | ORA Oper,X | 1D | 3 | 4* <br />
| ABS, Y | ORA Oper,Y | 19 | 3 | 4* <br />
| IND, X | ORA (Oper,X) | 01 | 2 | 6 <br />
| IND, Y | ORA (Oper),Y | 11 | 2 | 5 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PHA<br />
| Операция = A -> (S + 3700), S - 1 -> S<br />
| Описание = Поместить аккумулятор в стек<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | PHA | 48 | 1 | 3 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PHP<br />
| Операция = P -> (S + 3800), S - 1 -> S<br />
| Описание = Поместить слово состояния в стек<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | PHP | 08 | 1 | 3 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PLA<br />
| Операция = S + 1 -> S, (S + 3900) -> A<br />
| Описание = Загрузить аккумулятор из стека<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | PLA | 68 | 1 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = PLP<br />
| Операция = S + 1 -> S, (S + 4000) -> P<br />
| Описание = Загрузить слово состояния из стека<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - * * * * *<br />
| IMP | PLP | 28 | 1 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ROL<br />
| Операция = <- [A или M] <- C <-<br />
| Описание = Циклический сдвиг влево<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ACC | ROL A | 2A | 1 | 2 <br />
| ZP | ROL Oper | 26 | 2 | 5 <br />
| ZP, X | ROL Oper,X | 36 | 2 | 6 <br />
| ABS | ROL Oper | 2E | 3 | 6 <br />
| ABS, X | ROL Oper,X | 3E | 3 | 7 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ROR<br />
| Операция = -> C -> [A или M] -><br />
| Описание = Циклический сдвиг вправо<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ACC | ROR A | 6A | 1 | 2 <br />
| ZP | ROR Oper | 66 | 2 | 5 <br />
| ZP, X | ROR Oper,X | 76 | 2 | 6 <br />
| ABS | ROR Oper | 6E | 3 | 6 <br />
| ABS, X | ROR Oper,X | 7E | 3 | 7 <br />
| Примечание = Инструкция ROR доступна в микропроцессорах MCS650X с июня 1976 г.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = RTI<br />
| Операция = (4300 + S + 1) -> P, (4300 + S + 2) -> PC, S + 3 -> S<br />
| Описание = Возврат из прерывания<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - * * * * *<br />
| IMP | RTI | 40 | 1 | 6 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = RTS<br />
| Операция = (4400 + S + 1) -> PС, S + 2 -> S<br />
| Описание = Возврат из подпрограммы<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | RTS | 60 | 1 | 6 <br />
| Примечание = После извлечения адреса возврата из стека к нему прибавляется единица!<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SBC<br />
| Операция = A - M - C -> A, C<br />
| Описание = Вычитание с займом<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| IMM | SBC #Oper | E9 | 2 | 2 <br />
| ZP | SBC Oper | E5 | 2 | 3 <br />
| ZP, X | SBC Oper,X | F5 | 2 | 4 <br />
| ABS | SBC Oper | ED | 3 | 4 <br />
| ABS, X | SBC Oper,X | FD | 3 | 4* <br />
| ABS, Y | SBC Oper,Y | F9 | 3 | 4* <br />
| IND, X | SBC (Oper,X) | E1 | 2 | 6 <br />
| IND, Y | SBC (Oper),Y | F1 | 2 | 5 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SEC<br />
| Операция = 1 -> C<br />
| Описание = Установка флага переноса<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - 1<br />
| IMP | SEC | 38 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SED<br />
| Операция = 1 -> D<br />
| Описание = Установка флага BCD<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - 1 - - -<br />
| IMP | SED | F8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SEI<br />
| Операция = 1 -> I<br />
| Описание = Установка флага запрета прерываний<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - 1 - - -<br />
| IMP | SEI | 78 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = STA<br />
| Операция = A -> M<br />
| Описание = Сохранить аккумулятор в памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | STA Oper | 85 | 2 | 3 <br />
| ZP, X | STA Oper,X | 95 | 2 | 4 <br />
| ABS | STA Oper | 8D | 3 | 4 <br />
| ABS, X | STA Oper,X | 9D | 3 | 5 <br />
| ABS, Y | STA Oper, Y | 99 | 3 | 5 <br />
| IND, X | STA (Oper,X) | 81 | 2 | 6 <br />
| IND, Y | STA (Oper),Y | 91 | 2 | 6 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = STX<br />
| Операция = X -> M<br />
| Описание = Сохранить X в памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | STX Oper | 86 | 2 | 3 <br />
| ZP, Y | STX Oper,Y | 96 | 2 | 4 <br />
| ABS | STX Oper | 8E | 3 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = STY<br />
| Операция = Y -> M<br />
| Описание = Сохранить Y в памяти<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | STY Oper | 84 | 2 | 3 <br />
| ZP, X | STY Oper,X | 94 | 2 | 4 <br />
| ABS | STY Oper | 8C | 3 | 4 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TAX<br />
| Операция = A -> X<br />
| Описание = Передать A в X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TAX | AA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TAY<br />
| Операция = A -> Y<br />
| Описание = Передать A в X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TAY | A8 | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TSX<br />
| Операция = S -> X<br />
| Описание = Передать S в X<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TSX | BA | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TXA<br />
| Операция = X -> A<br />
| Описание = Передать X в A<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TXA | 8A | 1 | 2 <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TXS<br />
| Операция = X -> S<br />
| Описание = Передать X в S<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IMP | TXS | 9A | 1 | 2 <br />
| Примечание = В отличие от других операций загрузки, не влияет на флаг N<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = TYA<br />
| Операция = Y -> A<br />
| Описание = Передать Y в A<br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMP | TYA | 98 | 1 | 2 <br />
}}<br />
<br />
== Особенности ==<br />
=== Пересечение границ страниц в разных режимах адресации ===<br />
В режиме адресации к нулевой странице верхний байт вычисленного адреса всегда обнуляется, поэтому последовательность<br />
<br />
LDX #1<br />
LDA $FF,X<br />
<br />
Загрузит значение из адреса 0000H, а не 0100H, как можно было бы ожидать.<br />
<br />
При косвенной (Indirect) адресации двухбайтовый адрес не может быть извлечен через границу страницы, поэтому все варианты<br />
<br />
LDA ($FF),Y<br />
<br />
LDX #$00<br />
LDA ($FF,X)<br />
<br />
LDX #$FF<br />
LDA ($00,X)<br />
Извлекут младший байт из адреса 00FFH, а младший из 0000H.<br />
<br />
JMP (92FF)<br />
<br />
Получит младший байт из адреса 12FFH, а старший из 1200H.<br />
<br />
=== Внешняя установка флага V ===<br />
В некоторых моделях процессоров есть внешний сигнал -SO, устанавливающий флаг V. Назначение такого сигнала — прерывание ожидания вызова от внешнего устройства в бесконечном цикле команды BVC ($50 $FE).<br />
<br />
=== Флаг B при совпадении BRK и NMI ===<br />
В случае если в момент обработки BRK приходит аппаратное прерывание NMI, процессор переходит по адресу ($FFFA) вместо ($FFFE), а в стек попадает значение P с установленным флагом B.<br />
<br />
=== Работа команд ADC, SBC и ARR в режиме BCD ===<br />
В режиме BCD данные команды работают с числами не двоичном режиме, а BCD-представлении. Фактически, из особенностей нужно упомянуть только влиянии этого режима на установку флагов N, Z и V.<br />
<br />
* Z устанавливается по значению, эквивалентному двоичной, а не BCD-операции.<br />
Например, код<br />
<br />
SED<br />
CLC<br />
LDA #$80<br />
ADC #$80<br />
<br />
Даст в результате A=$60, но при этом Z=1.<br />
<br />
* Флаги N и V устанавливаются после исправления нижнего полубайта, но до исправления верхнего.<br />
<br />
Общий алгоритм работы команды ADC в режиме BCD следующий:<br />
<pre><br />
беззнаковые<br />
A, /* Аккумулятор */<br />
AL, /* нижняя половина аккумулятора */<br />
AH, /* верхняя половина аккумулятора */<br />
<br />
C, /* Флаг переноса */<br />
Z, /* Флаг нуля */<br />
V, /* Флаг переполнения */<br />
N, /* Флаг знака */<br />
<br />
s; /* значение, прибавляемое к аккумулятору */<br />
<br />
AL = (A & 15) + (s & 15) + C; /* Вычисляем нижнюю половину. */<br />
<br />
AH = (A >> 4) + (s >> 4) + (AL > 15); /* Вычисляем верхнюю половину. */<br />
<br />
if (AL > 9) AL += 6; /* BCD-исправление нижней половины. */<br />
<br />
Z = ((A + s + C) & 255 != 0); /* Флаг нуля устанавливается<br />
Как обычно. */<br />
<br />
/* Флаги знака и переполнения устанавливаются как обычно,<br />
но до исправления верхней половины */<br />
<br />
N = (AH & 8 != 0);<br />
V = ((AH << 4) ^ A) & 128 && !((A ^ s) & 128);<br />
<br />
if (AH > 9) AH += 6; /* BCD-исправление верхней половины. */<br />
<br />
/* Перенос – единственный, кто устанавливается в самом конце. */<br />
<br />
C = (AH > 15);<br />
A = ((AH << 4) | (AL & 15)) & 255;<br />
</pre><br />
<br />
С SBC проще. На установку флагов после нее флаг D не влияет.<br />
<br />
<pre><br />
беззнаковые<br />
A, /* Аккумулятор */<br />
AL, /* нижняя половина аккумулятора */<br />
AH, /* верхняя половина аккумулятора */<br />
<br />
C, /* Флаг переноса */<br />
Z, /* Флаг нуля */<br />
V, /* Флаг переполнения */<br />
N, /* Флаг знака */<br />
<br />
s; /* значение, вычитаемое из аккумулятора */<br />
<br />
AL = (A & 15) - (s & 15) - !C; /* Вычисляем нижнюю половину. */<br />
<br />
if (AL & 16) AL -= 6; /* BCD-исправление нижней половины. */<br />
<br />
AH = (A >> 4) - (s >> 4) - (AL & 16); /* Вычисляем верхнюю половину. */<br />
<br />
if (AH & 16) AH -= 6; /* BCD-исправление верхней половины. */<br />
<br />
/* Все флаги устанавливаем как обычно. */<br />
<br />
C = (A - s - !C) & 256 != 0;<br />
Z = (A - s - !C) & 255 != 0;<br />
V = ((A - s - !C) ^ s) & 128 && (A ^ s) & 128;<br />
N = (A - s - !C) & 128 != 0;<br />
<br />
A = ((AH << 4) | (AL & 15)) & 255;<br />
</pre><br />
<br />
=== Другие особенности ===<br />
* Процессор всегда прочитывает второй байт команды условного перехода. Если происходит переход с пересечением границы страницы, то процессор сначала читает байт из текущей страницы, и только потом из нужной.<br />
* Если граница страницы пересекается в других режимах адресации, процессор всегда сначала читает ошибочный байт со страницы, на 1 меньшую, чем нужная.<br />
* Команды вида «Прочитать-Изменить-Записать» выполняют две операции записи — сначала неизмененное значение, затем измененное (то есть INC физически выполняется как LDX loc; STX loc; INX; STX loc).<br />
* В цикле записи сигнал -RDY игнорируется, поэтому перед выполнением DMA его нужно держать не менее 3 циклов подряд, так как это максимально возможное подряд число циклов записи, вызываемое переходом на обработчик прерывания).<br />
* При отработке сигнала -RESET значения в регистрах, за исключением PC, остаются неизменными.<br />
* Процессор всегда прочитывает байт, следующий за кодом команды. Так как многие команды двух-трехбайтовые, это достаточно эффективно.<br />
* Если команда в своем последнем цикле не сохраняет результат в память, то процессор в этот момент читает код следующей команды. Поэтому для таких команд в таблицах обычно указывается время исполнения, на 1 меньше реального.<br />
<br />
=== Обработка прерываний ===<br />
Обработка NMI и IRQ занимает 7 циклов, их обработка в целом похожа на команду BRK. IRQ и BRK устанавливают флаг I, в то время как NMI — нет.<br />
<br />
Перед обработкой прерывания процессор ожидает завершения выполнения текущей команды. Чтобы прерывание было обработано до следующей команды, оно должно быть получено не позднее последнего цикла текущей команды. Исключение есть только для команды BRK. Если прерывание приходит до 4-го цикла (сохранение флагов), то команда игнорируется и происходит переход на обработчик аппаратного прерывания. Обычно это не вызывает проблем, так как в случае совпадения BRK и IRQ все равно устанавливается флаг B, обработчик считает, что выполняется BRK, а IRQ срабатывает по возвращении из обработки BRK. С другой стороны, совпадение BRK и NMI более фатально. Если флаг B не проверяется в обработчике NMI, и перед возвращением адрес возврата не уменьшается на 2, то команда BRK будет потеряна.<br />
<br />
При совпадении IRQ и NMI, процессор, теоретически, должен перейти на обработку NMI, а потом сразу на IRQ, хотя это и не проверено на практике.<br />
<br />
Обработка RESET занимает 6 циклов с момента снятия сигнала. Все регистры сохраняются, кроме PC.<br />
<br />
=== Отличия NMOS и CMOS вариантов ===<br />
* Индексная адресация при пересечении границы страницы:<br />
** NMOS: Дополнительное чтение по неправильному адресу;<br />
** CMOS: Дополнительное чтение последнего байта инструкции;<br />
* Выполнение команд с недопустимыми кодами:<br />
** NMOS: Вешают процессор до выполнения принудительного сброса;<br />
** CMOS: Исполняются как NOP (Резерв на будущее)<br />
* Переход по косвенному адресу, когда операнд пересекает границу страницы (xxFFH):<br />
** NMOS: Второй байт берется из первого байта текущей страницы;<br />
** CMOS: Второй байт берется со следующей страницы, ко времени исполнения добавляется 1 такт.<br />
* Команды вида «Прочитать-Изменить-Записать»<br />
** NMOS: Одна лишняя запись (см. выше);<br />
** CMOS: Одно лишнее чтение.<br />
* Флаг D<br />
** NMOS: После сброса не определен;<br />
** CMOS: Сбрасывается в 0 после аппаратного сброса или прерывания.<br />
* Флаги в режиме BCD<br />
** NMOS: Значения некорректны (см. выше);<br />
** CMOS: Значения правильные, но добавляется 1 цикл.<br />
* Прерывания в момент выборки команды BRK:<br />
** NMOS: Происходит переход по вектору прерывания, а не BRK;<br />
** CMOS: Сначала исполняется команда BRK, потом срабатывает прерывание.<br />
<br />
== Недокументированные команды ==<br />
<br />
Многие недокументированные команды реально не выполняют операцию AND между регистрами. Это происходит автоматически, когда два значения помещаются одновременно на внутреннюю шину с открытыми коллекторами.<br />
<br />
=== NOP ===<br />
Команда NOP, помимо кода 90, может выполняться с другими методами адресации. В этом случае она эквивалентна команде LDA, за исключением того, что она не сохраняет результат и не влияет на флаги.<br />
<br />
{{Команда<br />
| Обозначение = ANE<br />
| Операция = Вар. 1: A = ((A and #581 and X) or ( #$EE and X)) and #byte; Вар. 2: X and #byte -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | ANE #byte | 8B | 2 | ? <br />
| Примечание = В реальности параметр #581 может принимать значения #580, #58 или #$00, что зависит от значения, оставленного на шине видеоконтроллером после прерывания команды в режиме DMA.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ANC<br />
| Операция = Вар. 1: A and #byte -> A, ASL A; Вар. 2: предыдущее без ASL<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | ANC #Oper | 0B | 2 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ANC?<br />
| Операция = Вар. 1: A and #byte -> A, ROL A; Вар. 2: предыдущее без ROL<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | ANC #Oper | 2B | 2 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ARR (ADC + ROR)<br />
| Операция = D=0: A and #byte -> A, ROR, A7->S, A6->V, (A==0)->Z, A6 xor A5 -> C<br><br />
D=1: см. код ниже<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| IMM | ARR #byte | 6B | 2? | ? <br />
| Примечание = Алгоритм для BCD-режима:<br />
<pre><br />
A, /* Аккумулятор */<br />
AL, /* нижняя половина аккумулятора */<br />
AH, /* верхняя половина аккумулятора */<br />
<br />
C, /* Флаг переноса */<br />
Z, /* Флаг нуля */<br />
V, /* Флаг переполнения */<br />
N, /* Флаг знака */<br />
<br />
t, /* вспомогательная переменная */<br />
s; /* байт-параметр команды */<br />
<br />
t = A & s; /* Выполняем AND. */<br />
<br />
AH = t >> 4; /* Делим результат */<br />
AL = t & 15; /* на части. */<br />
<br />
N = C; /* Флаг знака */<br />
Z = !(A = (t >> 1) | (C << 7)); /* Z как обычно */<br />
V = (t ^ A) & 64; /* a V магически. */<br />
<br />
if (AL + (AL & 1) > 5) /* «заплатка» BCD для нижней половины. */<br />
A = (A & 0xF0) | ((A + 6) & 0xF);<br />
<br />
if (C = AH + (AH & 1) > 5) /* Перенос. */<br />
A = (A + 0x60) & 0xFF; /* «заплатка» BCD для верхней половины. */<br />
</pre><br />
}}<br />
<br />
{{Команда<br />
| Обозначение = ASR<br />
| Операция = A and #byte -> A, LSR A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | ASR #Oper | 4B | 2 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = DCP (DEC + CMP)<br />
| Операция = M + 1 -> M, A – M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | DCP Oper | C7 | 2 | ? <br />
| ZP, X | DCP Oper,X | D7 | 2 | ? <br />
| ABS | DCP Oper | CF | 3 | ? <br />
| ABS, X | DCP Oper,X | DF | 3 | ? <br />
| ABS, Y | DCP Oper, Y | DB | 3 | ? <br />
| IND, X | DCP (Oper,X) | C3 | 2 | ? <br />
| IND, Y | DCP (Oper),Y | D3 | 2 | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = ISB (INC + SBC)<br />
| Операция = M + 1 -> M, A – M -> A <br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| ZP | ISB Oper | E7 | 2 | ? <br />
| ZP, X | ISB Oper,X | F7 | 2 | ? <br />
| ABS | ISB Oper | EF | 3 | ? <br />
| ABS, X | ISB Oper,X | FF | 3 | ? <br />
| ABS, Y | ISB Oper, Y | FB | 3 | ? <br />
| IND, X | ISB (Oper,X) | E3 | 2 | ? <br />
| IND, Y | ISB (Oper),Y | F3 | 2 | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = LAS<br />
| Операция = M and S -> A, X, S<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ABS, Y | LAS Oper, Y | BB | 3 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LAX<br />
| Операция = M -> A, X<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| ZP | LAX Oper | A7 | 2 | ? <br />
| ZP, Y! | LAX Oper,Y | B7 | 2 | ? <br />
| ABS | LAX Oper | AF | 3 | ? <br />
| ABS, Y | LAX Oper,Y | BF | 3 | ? <br />
| IND, X | LAX (Oper,Y) | A3 | 2 | ? <br />
| IND, Y | LAX (Oper),Y | B3 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = LXA<br />
| Операция = Вар. 1: A = X = ANE; Вар. 2: A = X = (A & #byte); Вар. 3: A = X = #byte;<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * -<br />
| IMM | LXA #byte | AB | 2? | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = RLA<br />
| Операция = ROL M, A and M -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | RLA Oper | 27 | 2 | ? <br />
| ZP, X | RLA Oper,X | 37 | 2 | ? <br />
| ABS | RLA Oper | 2F | 3 | ? <br />
| ABS, X | RLA Oper,X | 3F | 3 | ? <br />
| ABS, Y | RLA Oper, Y | 3B | 3 | ? <br />
| IND, X | RLA (Oper,X) | 23 | 2 | ? <br />
| IND, Y | RLA (Oper),Y | 33 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = RRA<br />
| Операция = ROR M, ADC(A, M) -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * * - - - - * *<br />
| ZP | RRA Oper | 67 | 2 | ? <br />
| ZP, X | RRA Oper,X | 77 | 2 | ? <br />
| ABS | RRA Oper | 6F | 3 | ? <br />
| ABS, X | RRA Oper,X | 7F | 3 | ? <br />
| ABS, Y | RRA Oper, Y | 7B | 3 | ? <br />
| IND, X | RRA (Oper,X) | 63 | 2 | ? <br />
| IND, Y | RRA (Oper),Y | 73 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SAX<br />
| Операция = A and X -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ZP | SAX Oper | 87 | 2 | ? <br />
| ZP, Y! | SAX Oper,Y | 97 | 2 | ? <br />
| ABS | SAX Oper | 8F | 3 | ? <br />
| IND, X | SAX (Oper,X) | 83 | 2 | ? <br />
}}<br />
<br />
<br />
{{Команда<br />
| Обозначение = SBX (CMP + DEX)<br />
| Операция = (A and X) - #byte -> X<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| IMM | SBX #byte | CB | 2 | ? <br />
| Примечание = От CMP осталось вычитание, от DEX – сохранение результата в X. AND берется из одновременного подключения A и X к АЛУ.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHA<br />
| Операция = A & X & (ADDR_HI + 1)) -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| IND, Y | SHA (Oper),Y | 93 | 2 | ?<br />
| ABS, Y | SHA Oper,Y | 9F | 3 | ?<br />
| Примечание = ADDR_HI, вероятно, старший байт адреса M?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHS<br />
| Операция = A and X -> S, S and ADDR_HI -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS, Y | SHS Oper,Y | 9B | 3 | ?<br />
| Примечание = ADDR_HI, вероятно, старший байт адреса M?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHX<br />
| Операция = Вар. 1: X and (ADDR_HI + 1) -> M; Вар. 2: X and ADDR_HI -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS, Y | SHX Oper,Y | 9E | 3 | ?<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SHY<br />
| Операция = Вар. 1: Y & (ADDR_HI + 1) -> M; Вар. 2: Y and ADDR_HI -> M<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = - - - - - - - -<br />
| ABS, Y | SHY Oper,Y | 9C | 3 | ?<br />
| Примечание = По другому источнику, режим адресации ABS, X.<br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SLO (ASL + ORA)<br />
| Операция = ASL M -> M, A or M -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | SLO Oper | 07 | 2 | ? <br />
| ZP, X | SLO Oper,X | 17 | 2 | ? <br />
| ABS | SLO Oper | 0F | 3 | ? <br />
| ABS, X | SLO Oper,X | 1F | 3 | ? <br />
| ABS, Y | SLO Oper, Y | 1B | 3 | ? <br />
| IND, X | SLO (Oper,X) | 03 | 2 | ? <br />
| IND, Y | SLO (Oper),Y | 13 | 2 | ? <br />
}}<br />
<br />
{{Команда<br />
| Обозначение = SRE<br />
| Операция = LSR M -> M, A xor M -> A<br />
| Описание = <br />
| Флаги = N V 1 B D I Z C<br />
| Изменение флагов = * - - - - - * *<br />
| ZP | SRE Oper | 47 | 2 | ? <br />
| ZP, X | SRE Oper,X | 57 | 2 | ? <br />
| ABS | SRE Oper | 4F | 3 | ? <br />
| ABS, X | SRE Oper,X | 5F | 3 | ? <br />
| ABS, Y | SRE Oper, Y | 5B | 3 | ? <br />
| IND, X | SRE (Oper,X) | 43 | 2 | ? <br />
| IND, Y | SRE (Oper),Y | 53 | 2 | ? <br />
}}<br />
<br />
== Порядок декодирования команд ==<br />
<br />
Любую команду 6502 можно представить следующим образом:<br />
<br />
XXXYYYZZ<br />
└┬┘└┬┘└┤<br />
│ │ └── Группа команд<br />
│ └───── Режим адресации<br />
└──────── Код команды<br />
<br />
Таким образом, для уменьшения сравнений можно использовать следующий алгоритм:<br />
<br />
swith ZZ:<br />
case 0:<br />
switch XXX:<br />
case 0:<br />
//Команды 000yyy00<br />
Do_Command_0(yyy);<br />
break;<br />
case 1:<br />
//Команды 001yyy00<br />
Do_Command_1(yyy);<br />
break;<br />
// etc<br />
end;<br />
case 1:<br />
switch XXX:<br />
case 0:<br />
//Команды 000yyy01<br />
Do_Command_2(yyy);<br />
break;<br />
case 1:<br />
//Команды 001yyy01<br />
Do_Command_3(yyy);<br />
break;<br />
// etc<br />
end;<br />
break<br />
end; <br />
<br />
Далее все команды сгруппированы по этому принципу.<br />
* «*» отмечены недокументированные команды)<br />
* HALT обозначает зависание процессора<br />
* «*NOP mode» обозначает, что команда эквивалента «LDA mode», но результат не сохраняется и флаги не меняются.<br />
<br />
??? 000xxx00<br />
000 BRK<br />
001 *NOP zp<br />
010 PHP<br />
011 *NOP abs<br />
100 BPL<br />
101 *NOP zp,x<br />
110 CLC<br />
111 *NOP abs,x<br />
<br />
??? 001xxx00<br />
000 JSR<br />
001 BIT zp<br />
010 PLP impl<br />
011 BIT abs<br />
100 BMI rel<br />
101 *NOP zp,x<br />
110 SEC impl<br />
111 *NOP abs,x<br />
<br />
??? 010xxx00<br />
000 RTI<br />
001 *NOP zp<br />
010 PHA impl<br />
011 JMP abs<br />
100 BVC rel<br />
101 *NOP zp,x<br />
110 CLI impl<br />
111 *NOP abs,x<br />
<br />
??? 011xxx00<br />
000 RTS<br />
001 *NOP zp<br />
010 PLA impl<br />
011 JMP (abs)<br />
100 BVS rel<br />
101 *NOP zp,x<br />
110 SEI impl<br />
111 *NOP abs,x<br />
<br />
??? 100xxx00<br />
000 *NOP<br />
001 STY zp<br />
010 DEY impl<br />
011 STY abs<br />
100 BCC rel<br />
101 STY zp,x<br />
110 TYA impl<br />
111 *SHY abs,x<br />
<br />
??? 101xxx00<br />
000 LDY<br />
001 LDY zp<br />
010 TAY impl<br />
011 LDY abs<br />
100 BCS rel<br />
101 LDY zp,x<br />
110 CLV impl<br />
111 LDY abs,x<br />
<br />
??? 110xxx00<br />
000 CPY<br />
001 CPY zp<br />
010 INY impl<br />
011 CPY abs<br />
100 BNE rel<br />
101 *NOP zp,x<br />
110 CLD impl<br />
111 *NOP abs,x<br />
<br />
??? 111xxx00<br />
000 CPX<br />
001 CPX zp<br />
010 INX impl<br />
011 CPX abs<br />
100 BEQ rel<br />
101 *NOP zp,x<br />
110 SED impl<br />
111 *NOP abs,x<br />
<br />
ORA 000xxx01<br />
000 ind,x<br />
001 zp<br />
010 immed<br />
011 abs<br />
100 ind,y<br />
101 zp,x<br />
110 abs,y<br />
111 abs,x<br />
<br />
AND 001xxx01<br />
EOR 010xxx01<br />
ADC 011xxx01<br />
STA 100xxx01<br />
LDA 101xxx01<br />
CMP 110xxx01<br />
SBC 111xxx01<br />
<br />
ASL 000xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
ROL 001xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
LSR 010xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
ROR 011xxx10<br />
000 *HALT<br />
001 zp<br />
010 accum<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
STX 100xxx10<br />
000 *NOP(HALT)<br />
001 zp<br />
010 TXA (accum)<br />
011 abs<br />
100 *HALT<br />
101 zp,y<br />
110 TXS<br />
111 *SHX**y)<br />
<br />
LDX 101xxx10<br />
000 imm<br />
001 zp<br />
010 TAX (accum)<br />
011 abs<br />
100 *HALT<br />
101 zp,y<br />
110 TSX<br />
111 *y)<br />
<br />
DEC 110xxx10<br />
000 *NOP(HALT)<br />
001 zp<br />
010 DEX (impl)<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
INC 111xxx10<br />
000 *NOP(HALT)<br />
001 zp<br />
010 NOP (impl)<br />
011 abs<br />
100 *HALT<br />
101 zp,x<br />
110 *NOP<br />
111 abs,x<br />
<br />
*SLO 000xxx11<br />
000 *SLO ind,x<br />
001 *SLO zp<br />
010 *ANC imm<br />
011 *SLO abs<br />
100 *SLO ind,y<br />
101 *SLO zp,x<br />
110 *SLO abs,y<br />
111 *SLO abs,x<br />
<br />
*RLA 001xxx11<br />
000 *RLA ind,x<br />
001 *RLA zp<br />
010 *ANC imm<br />
011 *RLA abs<br />
100 *RLA ind,y<br />
101 *RLA zp,x<br />
110 *RLA abs,y<br />
111 *RLA abs,x<br />
<br />
*SRE 010xxx11<br />
000 *SRE ind,x<br />
001 *SRE zp<br />
010 *ASR imm<br />
011 *SRE abs<br />
100 *SRE ind,y<br />
101 *SRE zp,x<br />
110 *SRE abs,y<br />
111 *SRE abs,x<br />
<br />
*RRA 011xxx11<br />
000 *RRA ind,x<br />
001 *RRA zp<br />
010 *ARR imm<br />
011 *RRA abs<br />
100 *RRA ind,y<br />
101 *RRA zp,x<br />
110 *RRA abs,y<br />
111 *RRA abs,x<br />
<br />
*??? 100xxx11<br />
000 *SAX ind,x<br />
001 *SAX zp<br />
010 *ANE imm<br />
011 *SAX abs<br />
100 *SHA ind,y<br />
101 *SAX* y)<br />
110 *SHS abs,y<br />
111 *SHA**y)<br />
<br />
*??? 101xxx11<br />
000 *LAX ind,x<br />
001 *LAX zp<br />
010 *LXA imm<br />
011 *LAX abs<br />
100 *LAX ind,y<br />
101 *LAX* y)<br />
110 *LAS abs,y<br />
111 *LAX* y)<br />
<br />
*DCP 110xxx11<br />
000 *DCP ind,x<br />
001 *DCP zp<br />
010 *SBX imm<br />
011 *DCP abs<br />
100 *DCP ind,y<br />
101 *DCP zp,x<br />
110 *DCP abs,y<br />
111 *DCP abs,x<br />
<br />
*ISB 111xxx11<br />
000 *ISB ind,x<br />
001 *IBS zp<br />
010 *SBC imm<br />
011 *ISB abs<br />
100 *ISB ind,y<br />
101 *ISB zp,x<br />
110 *ISB abs,y<br />
111 *ISB abs,x<br />
<br />
== Источники ==<br />
* http://www.oxyron.de/html/opcodes02.html<br />
* https://emuverse.ru/downloads/datasheets/processors/6502/c64doc.txt<br />
<br />
<br />
<br />
[[Категория:MOS 6502]]</div>Pantherhttps://emuverse.ru/w/index.php?title=MOS_Technology_6502&diff=3732MOS Technology 65022024-01-08T20:43:44Z<p>Panther: /* Документация */ +ints</p>
<hr />
<div>{{Emuverse}}<br />
<br />
[[Изображение:MOS 6502AD 4585 top.jpg|thumb|Процессор 6502 в пластмассовом корпусе DIL-40]]<br />
'''MOS Technology 6502''', '''6502''', — 8-ми разрядный микропроцессор, первоначально разрабртанный компанией MOS Technology.<br />
<br />
== Варианты ==<br />
* 6501 — исходная версия процессора, весь тираж уничтожен из-за лицензионных проблем с Motorola;<br />
* 6502 — основная версия процессора, вариант 6501 с измененным внешним интерфейсом и встроенным двухфазным тактовым генератором;<br />
* 6507 — упрощенная версия 6502 без внешних прерываний и урезанной шиной адреса;<br />
* 6508 — микроконтроллер с ядром 6502, 8-ми битнытным портом ввода-вывода и 256 байтами статической ОЗУ;<br />
* 6509 — вариант 6502, способный адресовать 1 Мб внешней памяти с помощью встроенного блока переключения банков;<br />
* 6510 — вариант 6502 с 8-ми битным портом ввода-вывода (в большинстве вариантов были доступны 6 бит. Применялся в компьютере [[Commodore 64]];<br />
* 8500 — HMOS-версия 6510;<br />
* 7501/8501 — полностью совместимые версии 6510;<br />
* 8502 — версия 6510, имеющая отличия в исполнении некоторых недокументированных команд;<br />
* 65C02 — обновленная версия 6502, имеющая несколько новых команд;<br />
* 65CE02 — ядро, применявшееся в микроконтроллере [[MOS Technology 4510]];<br />
* [[65816|WDC 65816/65802]] — 16-ти разрядный микропроцессор, усовершенствованный 6502. Имеет режим полной эмуляции 6502. 65802 полностью совместим с 6502 по внешним выводам и может быть использован вместо него в старых компьютерах;<br />
<br />
== Системы на основе 6502 ==<br />
* Игровые приставки [[Atari 2600]] (6507), [[Nintendo Entertainment System]];<br />
* [[Apple II]];<br />
* [[Правец 8]];<br />
* [[Агат]] (Клон 6502 болгарского производства, оригинальные процессоры со спиленной маркировкой);<br />
* [[Commodore 64]] (6510).<br />
<br />
== Рекомендуемая литература ==<br />
* ''Морер&nbsp;У.'' Язык Ассемблера для персонального компьютера ЭПЛ.&nbsp;— М.: Мир, 1987. 430&nbsp;с.<br />
<br />
== Ссылки ==<br />
* [http://www.6502.org/ www.6502.org]{{ref-en}}<br />
* [https://github.com/Klaus2m5/6502_65C02_functional_tests Тесты команд]<br />
<br />
== Документация ==<br />
* [[MOS Technology 6502/Система команд|Полная система команд 6502/6510]]<br />
* {{txt||Микропроцессор 6502|datasheets/processors/6502/6502.rus.txt}}<br />
* {{www}} [http://www.zophar.net/tech/files/6502ref.html 65C02 Reference Manual] {{ref-en}}<br />
* {{www}} [http://6502.org/tutorials/interrupts.html Описание механизма прерываний] {{ref-en}}<br />
* {{txt||6502/6510/8500/8502 instruction set] + undoc|datasheets/processors/6502/c64doc.txt}} {{ref-en}}<br />
* {{pdf||UMC UM6502 datasheet|datasheets/processors/6502/UM6502.pdf}} {{ref-en}}<br />
* {{pdf||WDC W65C02S datasheet|datasheets/processors/6502/W6502S.pdf}} {{ref-en}}<br />
* {{zip||Commodore Semicounductor Group 6508 datasheet|datasheets/processors/6502/6508.zip}} {{ref-en}}<br />
* {{zip||Commodore Semicounductor Group 6509 datasheet|datasheets/processors/6502/6509-8610.zip}} {{ref-en}}<br />
* {{txt||6502 bugs list|datasheets/processors/6502/6502.bugs.txt}} {{ref-en}}<br />
* {{www}} [http://www.atariarchives.org/mlb/ Machine Language For Beginners] by Richard Mansfield, published 1983 {{ref-en}}<br />
<br />
[[Категория:MOS 6502]]</div>Pantherhttps://emuverse.ru/w/index.php?title=MOS_Technology_6502&diff=3731MOS Technology 65022024-01-07T08:32:14Z<p>Panther: /* Ссылки */ + tests</p>
<hr />
<div>{{Emuverse}}<br />
<br />
[[Изображение:MOS 6502AD 4585 top.jpg|thumb|Процессор 6502 в пластмассовом корпусе DIL-40]]<br />
'''MOS Technology 6502''', '''6502''', — 8-ми разрядный микропроцессор, первоначально разрабртанный компанией MOS Technology.<br />
<br />
== Варианты ==<br />
* 6501 — исходная версия процессора, весь тираж уничтожен из-за лицензионных проблем с Motorola;<br />
* 6502 — основная версия процессора, вариант 6501 с измененным внешним интерфейсом и встроенным двухфазным тактовым генератором;<br />
* 6507 — упрощенная версия 6502 без внешних прерываний и урезанной шиной адреса;<br />
* 6508 — микроконтроллер с ядром 6502, 8-ми битнытным портом ввода-вывода и 256 байтами статической ОЗУ;<br />
* 6509 — вариант 6502, способный адресовать 1 Мб внешней памяти с помощью встроенного блока переключения банков;<br />
* 6510 — вариант 6502 с 8-ми битным портом ввода-вывода (в большинстве вариантов были доступны 6 бит. Применялся в компьютере [[Commodore 64]];<br />
* 8500 — HMOS-версия 6510;<br />
* 7501/8501 — полностью совместимые версии 6510;<br />
* 8502 — версия 6510, имеющая отличия в исполнении некоторых недокументированных команд;<br />
* 65C02 — обновленная версия 6502, имеющая несколько новых команд;<br />
* 65CE02 — ядро, применявшееся в микроконтроллере [[MOS Technology 4510]];<br />
* [[65816|WDC 65816/65802]] — 16-ти разрядный микропроцессор, усовершенствованный 6502. Имеет режим полной эмуляции 6502. 65802 полностью совместим с 6502 по внешним выводам и может быть использован вместо него в старых компьютерах;<br />
<br />
== Системы на основе 6502 ==<br />
* Игровые приставки [[Atari 2600]] (6507), [[Nintendo Entertainment System]];<br />
* [[Apple II]];<br />
* [[Правец 8]];<br />
* [[Агат]] (Клон 6502 болгарского производства, оригинальные процессоры со спиленной маркировкой);<br />
* [[Commodore 64]] (6510).<br />
<br />
== Рекомендуемая литература ==<br />
* ''Морер&nbsp;У.'' Язык Ассемблера для персонального компьютера ЭПЛ.&nbsp;— М.: Мир, 1987. 430&nbsp;с.<br />
<br />
== Ссылки ==<br />
* [http://www.6502.org/ www.6502.org]{{ref-en}}<br />
* [https://github.com/Klaus2m5/6502_65C02_functional_tests Тесты команд]<br />
<br />
== Документация ==<br />
* [[MOS Technology 6502/Система команд|Полная система команд 6502/6510]]<br />
* {{txt||Микропроцессор 6502|datasheets/processors/6502/6502.rus.txt}}<br />
* {{www}} [http://www.zophar.net/tech/files/6502ref.html 65C02 Reference Manual] {{ref-en}}<br />
* {{txt||6502/6510/8500/8502 instruction set] + undoc|datasheets/processors/6502/c64doc.txt}} {{ref-en}}<br />
* {{pdf||UMC UM6502 datasheet|datasheets/processors/6502/UM6502.pdf}} {{ref-en}}<br />
* {{pdf||WDC W65C02S datasheet|datasheets/processors/6502/W6502S.pdf}} {{ref-en}}<br />
* {{zip||Commodore Semicounductor Group 6508 datasheet|datasheets/processors/6502/6508.zip}} {{ref-en}}<br />
* {{zip||Commodore Semicounductor Group 6509 datasheet|datasheets/processors/6502/6509-8610.zip}} {{ref-en}}<br />
* {{txt||6502 bugs list|datasheets/processors/6502/6502.bugs.txt}} {{ref-en}}<br />
* {{www}} [http://www.atariarchives.org/mlb/ Machine Language For Beginners] by Richard Mansfield, published 1983 {{ref-en}}<br />
<br />
[[Категория:MOS 6502]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0/%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&diff=3730Заглавная страница/Новости2024-01-06T19:57:01Z<p>Panther: </p>
<hr />
<div>* 13.09.2023 Сервер обновлен на актуальные версии ПО.<br />
* 06.01.2024 Вышел первый релиз эмулятора [https://github.com/Ptr314/ecat3 eCat 3-й версии].<br />
<!--<br />
* 25.08.2016 Отсканирован комплект технических описаний [[Искра-1030|Искра-1030.11 исполнение 5]]<br />
* 18.06.2016 Отсканирован комплект технических описаний [[Искра-1030|Искра-1030М]]<br />
* 08.06.2016 Отсканирован комплект документации [[Нейрон И9.66]]<br />
* 20.12.2015 Отсканирован альбом схем [[EC-184x|ЕС-1841]]<br />
* 12.12.2015 Включена поддержка SVG<br />
* 07.10.2015 Добавлены материалы по [[УКНЦ]]<br />
* 29.09.2015 Добавлена статья [[Формат дисков CP/M 2.2]];<br />
* 11.07.2015 Отсканирован альбом схем [[Т3-29]];<br />
* 03.04.2015 Отсканировано Руководство пользователя [[Т3-29]];<br />
* 28.02.2014 Выложены прошивки контроллеров ИРПС и НГМД компьютера [[Поиск]];<br />
* 23.02.2014 Отсканировано техническое описание [[Т3-29]];<br />
* 21.02.2014 Выложены прошивки клавиатуры [[Искра-1030]] и контроллера КЖД [[EC-184x|ЕС-1841]];<br />
* 19.02.2014 Выложены прошивки [[Электроника Т3-29]] и [[Искра-1030|Искра-1030М]];<br />
* Загружена статья о [[Контроллер дисковода: схемотехника и принципы работы|схемотехнике и принципах работы контроллеров дисководов]];<br />
* Собран из частей альбом схем ПК «[[Партнер]]»<br />
* [[Корвет|Выложена вся имеющаяся документация по «Корвету»]]<br />
* [[Юниор|Схема и руководство от компьютера «Юниор»]]<br />
* [[Teledisk|Описание формата Teledisk]]<br />
* [[FDC 1793|Описание контроллера КР1818ВГ93&nbsp;/ FDC&nbsp;1793]]<br />
* [[MOS Technology 6502/Система команд|Система команд 6502]]<br />
* [[Орион-Про|Авторская документация по «Орион-Про»]]<br />
* [[Ириша|Отсканирована и размещена в DjVu книга «Персональный компьютер «Ириша»]]<br />
* [[Эрик/Радиолюбитель 1994/Персональный компьютер «Эрик»|Персональный компьютер «Эрик» — статья из журнала «Радиолюбитель»]]<br />
* [[Партнёр/Радиолюбитель 1994/Большие возможности ПК «Партнёр»|ПК «Партнёр» — статья из журнала «Радиолюбитель»]]<br />
* [[:Категория:Микро-80/Публикации|Публикации по Микро-80]]<br />
* [[Радиолюбитель 1994-02,03/Спектрум-128|Архитектура Спектрум-128]]<br />
* [[Zilog Z80/Система команд|Система команд Z80]<br />
--><br />
<small>[https://emuverse.ru/w/index.php?title=Заглавная_страница/Новости&action=edit редактировать]</small></div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0/%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&diff=3729Заглавная страница/Новости2024-01-06T19:56:34Z<p>Panther: eCat 3.0.0</p>
<hr />
<div>* 13.09.2023 Сервер обновлен на актуальные версии ПО<br />
* 06.01.2024 Вышел первый релиз эмулятора [https://github.com/Ptr314/ecat3 eCat 3-й версии].<br />
<!--<br />
* 25.08.2016 Отсканирован комплект технических описаний [[Искра-1030|Искра-1030.11 исполнение 5]]<br />
* 18.06.2016 Отсканирован комплект технических описаний [[Искра-1030|Искра-1030М]]<br />
* 08.06.2016 Отсканирован комплект документации [[Нейрон И9.66]]<br />
* 20.12.2015 Отсканирован альбом схем [[EC-184x|ЕС-1841]]<br />
* 12.12.2015 Включена поддержка SVG<br />
* 07.10.2015 Добавлены материалы по [[УКНЦ]]<br />
* 29.09.2015 Добавлена статья [[Формат дисков CP/M 2.2]];<br />
* 11.07.2015 Отсканирован альбом схем [[Т3-29]];<br />
* 03.04.2015 Отсканировано Руководство пользователя [[Т3-29]];<br />
* 28.02.2014 Выложены прошивки контроллеров ИРПС и НГМД компьютера [[Поиск]];<br />
* 23.02.2014 Отсканировано техническое описание [[Т3-29]];<br />
* 21.02.2014 Выложены прошивки клавиатуры [[Искра-1030]] и контроллера КЖД [[EC-184x|ЕС-1841]];<br />
* 19.02.2014 Выложены прошивки [[Электроника Т3-29]] и [[Искра-1030|Искра-1030М]];<br />
* Загружена статья о [[Контроллер дисковода: схемотехника и принципы работы|схемотехнике и принципах работы контроллеров дисководов]];<br />
* Собран из частей альбом схем ПК «[[Партнер]]»<br />
* [[Корвет|Выложена вся имеющаяся документация по «Корвету»]]<br />
* [[Юниор|Схема и руководство от компьютера «Юниор»]]<br />
* [[Teledisk|Описание формата Teledisk]]<br />
* [[FDC 1793|Описание контроллера КР1818ВГ93&nbsp;/ FDC&nbsp;1793]]<br />
* [[MOS Technology 6502/Система команд|Система команд 6502]]<br />
* [[Орион-Про|Авторская документация по «Орион-Про»]]<br />
* [[Ириша|Отсканирована и размещена в DjVu книга «Персональный компьютер «Ириша»]]<br />
* [[Эрик/Радиолюбитель 1994/Персональный компьютер «Эрик»|Персональный компьютер «Эрик» — статья из журнала «Радиолюбитель»]]<br />
* [[Партнёр/Радиолюбитель 1994/Большие возможности ПК «Партнёр»|ПК «Партнёр» — статья из журнала «Радиолюбитель»]]<br />
* [[:Категория:Микро-80/Публикации|Публикации по Микро-80]]<br />
* [[Радиолюбитель 1994-02,03/Спектрум-128|Архитектура Спектрум-128]]<br />
* [[Zilog Z80/Система команд|Система команд Z80]<br />
--><br />
<small>[https://emuverse.ru/w/index.php?title=Заглавная_страница/Новости&action=edit редактировать]</small></div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%9E%D1%80%D0%B8%D0%BE%D0%BD-128&diff=3728Орион-1282023-12-27T18:27:07Z<p>Panther: /* Ссылки */ +1</p>
<hr />
<div>{{Википедия}}<br />
<br />
'''«Орион-128»''' — любительский 8-разрядный [[персональный компьютер]]. Разработан радиолюбителями из подмосковья — Вячеславом Сафроновым, Владиславом Сугоняко, Константином Коненковым. Схема и описание компьютера были опубликованы в [[Радио (журнал)|журнале «Радио»]] № 1/[[1990]], другие материалы по теме публиковались в этом журнале до [[1996]] года.<br />
<br />
Технические характеристики:<br />
* Процессор: [[КР580ВМ80А]] на частоте 2,5 МГц, быстродействие 625 тысяч оп/сек.<br />
* Память: [[ОЗУ]] — 128 Кб с возможностью наращивания до 256 Кб, [[ПЗУ]] — 2&nbsp;Kб<br />
* Устройство вывода: телевизор; работа в графическом режиме 384&nbsp;&times;&nbsp;256 точек; 25 строк по 64 символа при использовании стандарного шрифта; цветность: монохромный, 4, 16 цветов<br />
* Внешняя память: бытовой магнитофон, ROM-диск 64 Кб, DD дисковод<br />
* Клавиатура: 64 клавиши в матрице 8*8 плюс 3 отдельных или промышленная клавиатура MS7007<br />
<br />
== Программное обеспечение ==<br />
* Монитор 1/2/3<br />
* Операционные системы: ORDOS 2.40/4.03, [[CP/M]] 2.2, SPDOS, [http://orion-128.narod.ru DSDOS]<br />
* Написанные любителями и адаптированные игры<br />
<br />
== См. также ==<br />
* [[Орион-Про]]<br />
<br />
== Ссылки ==<br />
* [http://emu80.org/ Эмулятор Ориона Виктора Пыхонина]<br />
* [https://github.com/serge-404/OriZEmu Эмулятор Ориона Orion/Z от Error404]<br />
* [http://rdk.regionsv.ru/orion128-soft.htm Софт Орион-128, Орион Экспресс 512, Орион ПРО, прошивки, системные программы, описание]<br />
* [http://www.computer-museum.ru/histussr/orion.htm История компьютера «Орион» на сайте Виртуального компьютерного музея]<br />
* <s>[http://orion-z.hoter.ru/ Исполняемые файлы и исходные тексты эмулятора Орион/Z (Орион + Z80), вспомогательных утилит, архивы игр и программ Ориона]</s><br />
* <s>[http://gri.irk.ru/orion/ Сайт эмулятора Ориона на процессоре КР580ВМ80 (i8080)]</s><br />
* <s>[http://orion128.nikom.biz/ Информация о истории и развитии Ориона (документация, программы Ориона)]</s><br />
<br />
== Документация ==<br />
* [[:Категория:Орион-128/Публикации|Публикации в журнале Радио]]<br />
* [[Орион-128/Техническая информация|Техническая информация]]<br />
* [[Орион-128/Радио 12-92/Контроллер НГМД|Контроллер дисковода]] (Вариант 1, SP-DOS)<br />
* [[Орион-128/Радио 05,06-93/СР/М-80. Контроллер дисковода|Контроллер дисковода]] (Вариант 2, CP/M)<br />
* {{djvu}}{{статья<br />
|заглавие = Операционная система СР/М-80 для ПРК «Орион-128»<br />
|издание = журнал «Радиолюбитель»<br />
|номер = 11, 12, 1, 2, 3<br />
|год = 1992, 1993<br />
|ссылка = https://emuverse.ru/downloads/computers/Orion-128/docs/Orion-128_CPM.djvu<br />
}}<br />
* {{djvu}}{{статья<br />
|заглавие = «Орион-128»: контроллер дисковода<br />
|издание = журнал «Радиолюбитель»<br />
|номер = 5-7<br />
|год = 1993<br />
|ссылка = https://emuverse.ru/downloads/computers/Orion-128/docs/Orion-128_FDC.djvu<br />
}}<br />
* [[Орион-128/ZCard-II|Установка Z80]] («Ленинградский вариант», Z80Card-II, ставший стандартом де-факто)<br />
* [[Орион-128/Радио 04,06-96/Z80 CARD|Установка Z80]] («Орион-Сервис», «Московский», Z80Card)<br />
<br />
=== Схемы ===<br />
* {{rar}} [https://emuverse.ru/downloads/computers/Orion-Pro/docs/OrionPro-PCAD.rar Комплект схем]. Авторские схемы в формате PCAD 4.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/Scheme_corrected.png Схема 1]. Оригинал из журнала, с исправлениями.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/Orion_scheme.png Схема 2]. Авторский доработанный вариант.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/ROMDISK_scheme.png ROM-DISK].<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/Z80-1.png Установка Z80]. Авторский вариант, плата в панель ВМ80.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/Z80CardII.png Z80Card-II]. «Ленинградский вариант» Чистякова.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/KTR.png Контроллер дисковода]. Авторский вариант.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/FDC-Altair-Scheme.png Контроллер дисковода]. Вариант «Altair» Чистякова.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/512VI1_orion.GIF RTC]. Часы реального времени. Вариант [http://orion-z.hoter.ru Error404].<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/IDE-RTC.gif IDE+RTC]. «Смоленский» вариант.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/COM-AY.gif COM+AY]. Установка RS-232 и AY-8910.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/scr400x256-AY8910.jpg 400х256+AY]. Отключение 400х256 и AY-8910.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/11MHz-scr480x256-Turbo3,9.jpg Турбо+480х256]. Два турбо-режима и расширенный экран.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/turbo3,5-kempston-RAM_protect.jpg Турбо+Kempston+RAM]. Турбо-режим, джойстик, полное использование RAM.<br />
<br />
== Файлы ==<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_M1.rom Монитор-1]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_M2.rom Монитор-2]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_M31.rom Монитор-3]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_RomDisk1.rom Образ ROM-диска 1]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_RomDisk4.rom Образ ROM-диска 2]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/RAM_TEST.BIN RAM-TEST]<br />
<br />
[[Категория:Орион-128|*]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%9E%D1%80%D0%B8%D0%BE%D0%BD-128&diff=3727Орион-1282023-12-26T17:10:39Z<p>Panther: /* Ссылки */ +1</p>
<hr />
<div>{{Википедия}}<br />
<br />
'''«Орион-128»''' — любительский 8-разрядный [[персональный компьютер]]. Разработан радиолюбителями из подмосковья — Вячеславом Сафроновым, Владиславом Сугоняко, Константином Коненковым. Схема и описание компьютера были опубликованы в [[Радио (журнал)|журнале «Радио»]] № 1/[[1990]], другие материалы по теме публиковались в этом журнале до [[1996]] года.<br />
<br />
Технические характеристики:<br />
* Процессор: [[КР580ВМ80А]] на частоте 2,5 МГц, быстродействие 625 тысяч оп/сек.<br />
* Память: [[ОЗУ]] — 128 Кб с возможностью наращивания до 256 Кб, [[ПЗУ]] — 2&nbsp;Kб<br />
* Устройство вывода: телевизор; работа в графическом режиме 384&nbsp;&times;&nbsp;256 точек; 25 строк по 64 символа при использовании стандарного шрифта; цветность: монохромный, 4, 16 цветов<br />
* Внешняя память: бытовой магнитофон, ROM-диск 64 Кб, DD дисковод<br />
* Клавиатура: 64 клавиши в матрице 8*8 плюс 3 отдельных или промышленная клавиатура MS7007<br />
<br />
== Программное обеспечение ==<br />
* Монитор 1/2/3<br />
* Операционные системы: ORDOS 2.40/4.03, [[CP/M]] 2.2, SPDOS, [http://orion-128.narod.ru DSDOS]<br />
* Написанные любителями и адаптированные игры<br />
<br />
== См. также ==<br />
* [[Орион-Про]]<br />
<br />
== Ссылки ==<br />
* [http://emu80.org/ Эмулятор Ориона]<br />
* [http://rdk.regionsv.ru/orion128-soft.htm Софт Орион-128, Орион Экспресс 512, Орион ПРО, прошивки, системные программы, описание]<br />
* [http://www.computer-museum.ru/histussr/orion.htm История компьютера «Орион» на сайте Виртуального компьютерного музея]<br />
* <s>[http://orion-z.hoter.ru/ Исполняемые файлы и исходные тексты эмулятора Орион/Z (Орион + Z80), вспомогательных утилит, архивы игр и программ Ориона]</s><br />
* <s>[http://gri.irk.ru/orion/ Сайт эмулятора Ориона на процессоре КР580ВМ80 (i8080)]</s><br />
* <s>[http://orion128.nikom.biz/ Информация о истории и развитии Ориона (документация, программы Ориона)]</s><br />
<br />
== Документация ==<br />
* [[:Категория:Орион-128/Публикации|Публикации в журнале Радио]]<br />
* [[Орион-128/Техническая информация|Техническая информация]]<br />
* [[Орион-128/Радио 12-92/Контроллер НГМД|Контроллер дисковода]] (Вариант 1, SP-DOS)<br />
* [[Орион-128/Радио 05,06-93/СР/М-80. Контроллер дисковода|Контроллер дисковода]] (Вариант 2, CP/M)<br />
* {{djvu}}{{статья<br />
|заглавие = Операционная система СР/М-80 для ПРК «Орион-128»<br />
|издание = журнал «Радиолюбитель»<br />
|номер = 11, 12, 1, 2, 3<br />
|год = 1992, 1993<br />
|ссылка = https://emuverse.ru/downloads/computers/Orion-128/docs/Orion-128_CPM.djvu<br />
}}<br />
* {{djvu}}{{статья<br />
|заглавие = «Орион-128»: контроллер дисковода<br />
|издание = журнал «Радиолюбитель»<br />
|номер = 5-7<br />
|год = 1993<br />
|ссылка = https://emuverse.ru/downloads/computers/Orion-128/docs/Orion-128_FDC.djvu<br />
}}<br />
* [[Орион-128/ZCard-II|Установка Z80]] («Ленинградский вариант», Z80Card-II, ставший стандартом де-факто)<br />
* [[Орион-128/Радио 04,06-96/Z80 CARD|Установка Z80]] («Орион-Сервис», «Московский», Z80Card)<br />
<br />
=== Схемы ===<br />
* {{rar}} [https://emuverse.ru/downloads/computers/Orion-Pro/docs/OrionPro-PCAD.rar Комплект схем]. Авторские схемы в формате PCAD 4.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/Scheme_corrected.png Схема 1]. Оригинал из журнала, с исправлениями.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/Orion_scheme.png Схема 2]. Авторский доработанный вариант.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/ROMDISK_scheme.png ROM-DISK].<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/Z80-1.png Установка Z80]. Авторский вариант, плата в панель ВМ80.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/Z80CardII.png Z80Card-II]. «Ленинградский вариант» Чистякова.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/KTR.png Контроллер дисковода]. Авторский вариант.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/FDC-Altair-Scheme.png Контроллер дисковода]. Вариант «Altair» Чистякова.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/512VI1_orion.GIF RTC]. Часы реального времени. Вариант [http://orion-z.hoter.ru Error404].<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/IDE-RTC.gif IDE+RTC]. «Смоленский» вариант.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/COM-AY.gif COM+AY]. Установка RS-232 и AY-8910.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/scr400x256-AY8910.jpg 400х256+AY]. Отключение 400х256 и AY-8910.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/11MHz-scr480x256-Turbo3,9.jpg Турбо+480х256]. Два турбо-режима и расширенный экран.<br />
* [https://emuverse.ru/downloads/computers/Orion-128/docs/schemes/turbo3,5-kempston-RAM_protect.jpg Турбо+Kempston+RAM]. Турбо-режим, джойстик, полное использование RAM.<br />
<br />
== Файлы ==<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_M1.rom Монитор-1]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_M2.rom Монитор-2]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_M31.rom Монитор-3]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_RomDisk1.rom Образ ROM-диска 1]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/Orion128_RomDisk4.rom Образ ROM-диска 2]<br />
* {{rom}} [https://emuverse.ru/downloads/computers/Orion-128/firmware/RAM_TEST.BIN RAM-TEST]<br />
<br />
[[Категория:Орион-128|*]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&diff=3716Заглавная страница2023-11-10T16:47:53Z<p>Panther: </p>
<hr />
<div><center><br />
{{Раздел заглавной страницы | x=0 | y=0 | Содержание=<br />
<div style="font-size:162%; border:0; margin:0; padding:.1em; color:#000">Добро пожаловать в [[Emuverse:Описание|Emuverse]]</div><br />
техническую энциклопедию, в которой собирается информация о любых электронных устройствах, <br>поддающихся эмуляции на современном компьютере. <br />
<div style="top:0.2em; font-size:95%"> Сейчас в Emuverse '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' {{plural:{{NUMBEROFARTICLES}}|статья|статьи|статей}}.</div><br />
<div style="color: red; margin-bottom: 10px;">Внимание! В связи с наплывом спамеров регистрация новых пользователей пока заблокирована. Если вы хотите редактировать статьи, пожалуйста, свяжитесь со [[User:Panther|мной]].</div><br />
}}<br />
</center><br />
{| width="100%"<br />
| width="75%" valign=top | {{Раздел заглавной страницы | x=1 | y=1 | Содержание=<br />
<span style="font-weight:bold">Основные категории</span><br />
<ncl style=compact maxdepth=2 headings=bullet headstart=2 showcats=1 showarts=0>Категория:Всё</ncl><br />
}}<br />
| &nbsp;&nbsp;<br />
| width="25%" valign=top | {{Раздел заглавной страницы | x=1 | y=1 | Содержание=<br />
<span style="font-weight:bold">Новости</span><br />
{{/Новости}}<br />
}}<br />
|}<br />
<div style="background-color:#E0E0E0;font-size:1px;height:8px;border:1px solid #AAAAAA;-moz-border-radius-topright:0.5em;-moz-border-radius-topleft:0.5em;"></div><br />
<div style="border:1px solid #AAAAAA;border-top:0px solid white;padding:5px 5px 10px 5px;margin-bottom:3ex;"><br />
<span style="font-weight:bold">Правовая информация</span><br />
<br />
В силу того, что основная часть доступной технической документации защищена авторскими правами и не может распространяться под свободными лицензиями, в энциклопедии Emuverse принята следующая лицензионная политика:<br />
* Все материалы должны содержать указание на источник и правовой статус в виде специального шаблона в начале страницы;<br />
* Материалы, взятые из источников со свободными лицензиями, распространяются на условиях исходной лицензии;<br />
* Материалы, созданные специально для Emuverse, распространяются под лицензией [http://creativecommons.org/licenses/by-sa/3.0/ CC-BY-SA 3.0];<br />
* Материалы, защищённые авторскими правами, загружаются в Emuverse на условиях добросовестного использования для образовательных некоммерческих целей, то есть не могут распространяться далее вопреки этим условиям;<br />
* Защищённое авторскими правами программное обеспечение может загружаться только в объёме, необходимом для создания и тестирования эмуляторов.<br />
<br />
<!--div style="font-weight:bold; margin-top:20px;">Как стать редактором</div><br />
<br />
В связи с засильем спамеров, редактирование закрыто для участников с неподтвержденными email. Если у вас возникли проблемы, свяжитесь со [[User:Panther|мной]].<br />
--><br />
</div></div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%A1%D0%9C1810&diff=3575СМ18102023-09-18T18:55:17Z<p>Panther: links</p>
<hr />
<div>{{Emuverse}}<br />
Ряд «Систем Малых» ЭВМ построенных на Процессорах К1810ВМ86 (аналог Intel 8086) и системной шине И41 (аналог Multibus).<br />
<br />
'''СМ1810.13 (Нивка)''' — IBM XT совместимая машина<br />
Исполнение - Тумба 4.115.056 (Tower)<br />
Платы: <br />
СМ1810/002<br />
СМ1810.2204.03 1/2N МЦП-16<br />
СМ1810.2204.03 2/2N МЦП 16<br />
Контроллер НМД и НГМД СМ 1810.5126.M1<br />
Видеоконтроллер цветной СМ 1810.7006 (аналог CGA) <br />
<br />
'''СМ1810.21''' Для работы под Большой операционной системой БОС1810 (аналог Intel RMX-86)<br />
Исполнение - Тумба СМ1810.0103<br />
Платы:<br />
1 слот - СМ1810.2005 Модуль системного контроля<br />
2 слот - СМ1810.2204.02 1/2N МЦП-16<br />
3 слот - СМ1810.2204.02 2/2N МЦП 16<br />
4 слот - СМ1800.2202.09 1/2N МЦП-1<br />
5 слот - СМ1800.2202.09 2/2N МЦП-1<br />
6 слот - СМ1810.5125 1/2N Контроллер ГМД<br />
7 слот - СМ1810.5125 2/2N Контроллер ГМД<br />
8 слот - СМ1810.4106 Модуль сопряжения с ИРПС 4 канала<br />
9 слот - пустой<br />
10 слот Блок питания В253.01<br />
<br />
'''СМ1810.42''' Для работы под Большой операционной системой БОС1810 (аналог Intel RMX-86)<br />
Исполнение - Стойка 4.115.048-8<br />
Платы: <br />
Н3 слот - пустой<br />
Н2 слот - пустой<br />
Н1 слот - пустой<br />
Н0 слот - СМ1810.3516.03 1/2N (ОЗУ)<br />
У слот - СМ1810.3516.03 2/2N (Контролёр)<br />
О1 слот - СМ1810.2010 Модуль системного контроля<br />
О2 слот - СМ1810.2204.06 1/2N МЦП-16<br />
О3 слот - СМ1810.2204.06 2/2N МЦП 16<br />
О4 слот - СМ1810.4106 Модуль сопряжения с ИРПС 4 канала<br />
О5 слот - пустой <br />
О6 слот - СМ1810.5126 1/2N Контроллер НМД и НГМД<br />
О7 слот - СМ1810.5126 2/2N Контроллер НМД и НГМД<br />
О8 слот - пустой<br />
О9 слот - пустой<br />
О10 слот - пустой<br />
О11 слот Блок питания В253.01<br />
О12 слот Блок питания В253.03<br />
<br />
== Документация ==<br />
* {{pdf}} {{книга<br />
|автор = <br />
|заглавие = Средства вычислительной техники. Ряд микроЭВМ: СМ 1803, СМ 1804, СМ 1810, СМ 1814<br />
|место = М.<br />
|издательство = ЦНИИТЭИприборостроения, 1988.<br />
|том = <br />
|isbn = <br />
|ссылка = https://emuverse.ru/downloads/computers/SM1810/docs/sm18xx.pdf<br />
}}<br />
* {{djvu}} {{книга<br />
|автор = <br />
|заглавие = Операционная система МДОС 1810<br />
|место = М.<br />
|издательство = Эврика.<br />
|том = <br />
|isbn = <br />
|ссылка = https://emuverse.ru/downloads/computers/SM1810/docs/Operacionnaya_Sistema_MDOS_1810.djvu<br />
}}<br />
== Файлы ==<br />
* Источник: [https://emuverse.ru]<br />
** {{rom}} [https://emuverse.ru/downloads/computers/SM1810/firmware/SM1810.13.zip СМ1810.13(Нивка) ROM]<br />
** {{rom}} [https://emuverse.ru/downloads/computers/SM1810/firmware/SM1810.42.zip СМ1810.42 ROM]<br />
** {{rom}} [https://emuverse.ru/downloads/computers/SM1810/firmware/SM1810.5126-fdd-hdd.zip ПЗУ контроллера 5126 НГМД-НМЖД]<br />
[[Категория:Отечественные компьютеры]]</div>Pantherhttps://emuverse.ru/w/index.php?title=%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_%D0%BF%D1%83%D0%BB%D1%8C%D1%82%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D1%80%D0%B5%D0%B6%D0%B8%D0%BC%D0%B0_%D0%94%D0%92%D0%9A&diff=3574Команды пультового режима ДВК2023-09-18T18:54:02Z<p>Panther: links</p>
<hr />
<div>{{Emuverse}}<br />
<br />
== ПЗУ 134 ==<br />
* <tt>/</tt> открыть текущую ячейку.<br />
** <tt>aaaaaaaa/</tt> открыть ячейку с адресом aaaaaaaa (aaaaaaaa — 8 восьмеричных цифр).<br />
* <tt>_</tt> открыть ячейку с адресом, равным адресу текущей ячейки+2+содержимое ячейки.<br />
** <tt>oooooo_</tt> занести oooooo в текущую ячейку и открыть ячейку с адресом, равным адресу текущей ячейки+2+oooooo<br />
* <tt>^</tt> открыть предыдущую ячейку.<br />
* <tt>@</tt> открыть ячейку с адресом, равным содержимому текущей ячейки.<br />
** <tt>aaaaaa@</tt> занести aaaaaa в текущую ячейку и перейти на адрес aaaaaa (aaaaaa — 6 восьмеричных цифр).<br />
* <tt>dddddd^</tt> занести dddddd в текущую ячейку и открыть предыдущую ячейку.<br />
* <tt>LF</tt> (Клавиша ПС, Ctrl+J) открыть следующую ячейку.<br />
** <tt>ddddddLF</tt> занести dddddd в текущую ячейку и открыть следующую ячейку.<br />
* <tt>CR</tt> (ввод) завершает работу команд модификации ячеек и выводит приглашение.<br />
** <tt>ddddddCR</tt> заносит dddddd в текущую ячейку и выходит на приглашение.<br />
* <tt>&gt;</tt> перейти по смещению команды ветвления в текущей ячейке.<br />
* <tt>bbbbbb&gt;</tt> занести код команды ветвления bbbbbb в текущую ячейку и перейти по смещению команды ветвления. <br />
** Возможна проблема со смещением в командах SOB и MARK, так как они имеют меньше 6 разрядов в поле смещения, вместо 8 у других команд ветвления.<br />
* <tt>Rn/</tt> открыть регистр Rn, где n 0..7.<br />
** После открытия команды <tt>^ LF</tt> будут работать с регистрами процессора таким же образом, как с ячейками, перебирая их вверх-вниз, а @ откроет ячейку, на которую указывает текущий регистр).<br />
* <tt>RS/</tt> открыть регистр состояния процессора.<br />
* <tt>;</tt> отменить ввод числа.<br />
* <tt>BS</tt> (забой) стереть последний введённый символ, однако при записи в ячейки или регистры учитываются только последние 6 цифр числа.<br />
* <tt>G</tt> запустить программу с адреса, находящегося в R7.<br />
** <tt>aaaaaaaaG</tt> запустить программу с указанного адреса.<br />
*** Адрес не может находиться в расширенной памяти, так как команда запуска программы делает сброс всем устройствам, в том числе и диспетчеру памяти. Поэтому допустимые адреса 0..157776 и 17760000..17777776, последние подставляются в адресное пространство вместо 160000..177776.<br />
* <tt>P</tt> продолжить остановленную программу по кнопке Пульт, либо инструкции halt. Если кнопка пульт нажата, то выполняется одна инструкция и управление возвращается в пульт.<br />
* <tt>M</tt> получить сообщение о причине выхода в пульт.<br />
* <tt>B</tt> вызвать диспетчер загрузчиков, далее после $ вводится имя устройства и номер привода.<br />
* <tt>Tn</tt> запустить тест с номером n, где 0 запускает тесты 1,2,3,6 подряд и заполняет всю память нулями, при этом кнопка пульт должна быть отжата. Тест 4 тестирует память, тест 5 — принтер, тесты 1,2,3,6 — контрольную сумму пзу, пультовое озу, частично процессор.<br />
<br />
== ПЗУ 377 ==<br />
* {{djvu}} [https://emuverse.ru/downloads/computers/DVK/docs/DVK_pult_377.djvu Программа пультового (HALT) режима]<br />
[[Категория:ДВК]]</div>Pantherhttps://emuverse.ru/w/index.php?title=PLx45D.5&diff=3573PLx45D.52023-09-18T18:50:48Z<p>Panther: links</p>
<hr />
<div>{{Emuverse}}<br />
'''PLx45D.5''' — 5" дисковод. <br />
<br />
== Документация ==<br />
* {{djvu}} [https://emuverse.ru/downloads/computers/@FDD/PLx45D.5_TO.djvu Техническое описание]<br />
* {{djvu}} [https://emuverse.ru/downloads/computers/@FDD/PLx45D.5_E3.djvu Альбом схем]<br />
<br />
[[Категория:Дисководы]]</div>Pantherhttps://emuverse.ru/w/index.php?title=MF_54/58&diff=3572MF 54/582023-09-18T18:50:34Z<p>Panther: links</p>
<hr />
<div>{{Emuverse}}<br />
'''МF 54D, МF 54S, МF 58D, МF 58S''' — 5" дисковод. <br />
<br />
== Документация ==<br />
* {{djvu}} [https://emuverse.ru/downloads/computers/@FDD/MF_58D_PS.djvu Паспорт]<br />
* {{djvu}} [https://emuverse.ru/downloads/computers/@FDD/MF_58D_TO.djvu Техническое описание]<br />
<br />
[[Категория:Дисководы]]</div>Panther