На 1801ВМ2 сначала прочитается в аккумулятор SRC и регистр будет увеличен на два. А затем уже при выполнении умножения он будет использован, как увеличенный на два.
Ссылка на микрокод, начало...
Тип: Сообщения; Пользователь: Alex_K; Ключевые слова:
На 1801ВМ2 сначала прочитается в аккумулятор SRC и регистр будет увеличен на два. А затем уже при выполнении умножения он будет использован, как увеличенный на два.
Ссылка на микрокод, начало...
ВМ3 и ВМ2 совершенно разные процессоры. ВМ3 он с MMU, а ВМ2 без. В НЕОНе MMU внешний и не такой, как в PDP-11. Если даже оставить работать ВМ3 в реальном режиме (без включения MMU), то реализация...
Прямо так взять и удалить не выйдет. Там в прошивке завязано на регистр SDH 161054. Часть этого регистра сделана в ПЛМ, но она реагирует только на запись. В ВГ7 он также пишется и его можно прочесть....
Без DMA нереально. Хотя бы буфер на СОЗУ, который будет управляться сигналами с контроллера. Потом этот буфер считывается. Но из-за такой реализации тормоза при чтении с дискеты будут приличными.
Ну на реале это можно проверить длинной последовательностью команд, например INC R0. В начале последовательности R0 очищается, а в конце сравнивается с ожидаемым значением.
Внешнее прерывание посреди команды не выполняется. Так что если команда из трёх слов, то все они будут выбраны из памяти. Посреди команды может прервать только внутреннее прерывание TRAP4.
Премудрости состоят в том, что в БК нет ячеек 176674 и 176676, в которых сохраняются PC и PSW при исключениях. При попытке сохранить PSW в 176676 срабатывает TRAP4 и процессор не успевает...
Проверяете разряд 2 в 177716, что это точно произошло исключение, в книге Зальцмана описано. Далее уже переходите на процедуру остановки, надо почистить стек, установить правильный указатель.
Для коррекции адреса возврата по сигналу HALT. Описание 1801ВМ1 на гитхабе Vslav - https://github.com/1801BM1/cpu11/blob/master/vm1/doc/1801vm1.pdf.
Исключения и прерывания пультового режима...
Да никакое не наследие. Запросы ВПО по обработке, такие как HBMOVE и WPRINT работают с описанием строк при выводе информации. Соответственно нужно, чтобы информация строки умещалась в одном сегменте....
Да, дискретность составляет 4 Кб. К тому же запросы ВПО при создании плоскости с таблицей ТАС требуют, чтобы смещение адреса видеостроки было меньше 010000.
И есть запросы выделения памяти, либо 8...
Там адрес ОЗУ 22-битный (4 Мб). При сложении делается так, чтобы самый старший 21-й разряд случайно не очистился и не запортилось самое начало ОЗУ. Т.е. если он уже был установлен в регистре...
Не могу сказать как в 1801ВМ1, а в 1801ВМ2 в этом случае, когда возникает прерывание VIRQ, то оно отрабатывается спустя одну команду. В UKNCBTL прерывание возникает сразу, потому такой же цикл с...
Ну если так хочется, то после 288 строк достаточно одну двухсловную запись, первое слово будет указывать на адрес пустой видеостроки, а адрес следующего элемента равен самому себе.
Эта игра LAND перетащена с ДВК с КГД. Там 286 строк. Плюс ещё верхняя информационная строка на УКНЦ - плюс 12 строк. Итого 298. Но реальная машина показывает только 288.
Когда я начинал программировать в ПП, у меня не было соответствующей документации "Работа с внешними устройствами". Код запуска в ПП я брал из программы ZWUK.SAV. Она там уже была со счётчиком пять,...
А чего тут знать-то? Блок параметров под меткой Z имеет адрес загрузки 30000. Тем более выделяют два блока, один на загрузку, другой на запуск. Никакой экономии памяти!!!
А вы обратили внимание, что там только две команды - передача в ОЗУ ПП (код 020) и запуск в ОЗУ ПП (код 030). Отсутствует команда выделения блока памяти в ОЗУ ПП (код 1). Здесь естественно сработает,...
Во всяком случае в 181-й прошивке КЦГД вектора HALT-режима сформированы так, что запуск сразу идёт в USER. Единственно, что все вектора (SEL000, SEL010, SEL170, SEL174, SEL274) указывают на один...
Посмотрел реализацию запроса блока памяти в ПЗУ. Обязательно надо ждать ответа. В блоке в слове со смещением 6 передаётся размер блока в словах при запросе памяти. А при передаче данных в ПП там...
Вы говорили про задержку. Я и высказался, что таким образом задержка будет неточной. В Тетрисе есть десять уровней сложности по скорости. Здесь надо подстраивать паузу под нужную скорость падения....
Развёрнутый цикл выполняется быстрее, место правда кушает. Но тест копирования памяти это показал.
Регистров маловато. Через них лучше делать адресацию к РА/РД. Ну впрочем у вас так и сделано.
...
Сама процедура PPSEN написана правильно. А вот рядом с ней к PPRUN у меня тоже есть претензии.
Вы считаете моё мнение неправильным, я ваше. Ну что ж, на том и разойдёмся.
- - - Добавлено - - -...
Взаимодействие при запуске своего кода в ПП: надо подать три запроса - выделить память (код 1), записать из памяти ЦП в память ПП (код 020), запустить п/п в памяти ПП (код 030). Если запросы с кодами...
Так предложите правильный вариант. Ваш вариант с циклом из четырёх байт и отсутствием проверки готовности в конце я считаю неправильным.