Здравствуйте, гость ( Вход | Регистрация )
| kazamul |
6.2.2026, 11:34
Сообщение
#1
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
Помню, что в свое время было много отличных эмуляторов под Windows.
У меня Mac, поэтому запустить их нет возможности. Появилось время, решил написать свой эмулятор на Java. БК-0010 эмулируется нормально, а с БК-0011М пока проблемы. Если кто-то сможет глянуть и подсказать, что не так — буду очень признателен. Могу при необходимости выложить весь код на GitHub. |
![]() ![]() |
| SuperMax |
6.2.2026, 23:16
Сообщение
#2
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 373 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 |
надо более детальное описание
но основное на что надо смотреть - на сколько корректно эмулируются регистры внешних устройств - тут есть отличия от БК-0010 -------------------- Живы будем - Не помрем !
|
| kazamul |
7.2.2026, 7:43
Сообщение
#3
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
надо более детальное описание но основное на что надо смотреть - на сколько корректно эмулируются регистры внешних устройств - тут есть отличия от БК-0010 да вроде как корректно - я по крайней мере ничего не нашел вот что мне удалось понять 1. Ядро цикла ожидания (Idle Loop) Этот участок кода — «сердце» простоя. Процессор разрешает прерывания, ждет одну инструкцию и снова запрещает их, чтобы проверить флаги. Код PC=0147600: MTPS #00 ; Разрешить прерывания (Priority 0). Здесь может сработать таймер или клавиатура. PC=0147604: NOP ; Пустая операция. Дает "окно" для срабатывания прерывания. PC=0147606: MTPS #0340 ; Запретить прерывания (Priority 7). Начало критической секции. PC=0147612: BR 0147574 ; Переход на проверку диспетчера. 2. Вызов диспетчера задач (Polling) Система прыгает в подпрограмму, чтобы узнать: «Есть ли работа?» Код PC=0147572: JSR R7, 0147410 ; Вызов подпрограммы проверки очереди задач. ... PC=0147412: MOV #041714, R5 ; R5 указывает на структуру данных (очередь задач или буфер). PC=0147416: TST (R5)+ ; Проверка: есть ли задачи в очереди? PC=0147420: BEQ 0147456 ; Если 0 (пусто), идем проверять системные флаги. 3. Проверка системных флагов Здесь проверяется конкретный бит в системной переменной (вероятно, статус клавиатуры или запрос на переключение задач). Код PC=0147454: BIT #040000, 040454; Проверка бита 14 в ячейке 040454. ; В БК-0011М это часто связано с флагами консоли или драйверов. PC=0147462: BEQ 0147544 ; Если бит не установлен (событий нет), уходим на выход. 4. Возврат с неудачей (Nothing to do) Так как задач нет и флаги чисты, подпрограмма возвращает управление с установленным флагом переноса (CARRY), сигнализируя: «Работы нет». Код PC=0147544: SEC ; Set Carry (Установить флаг C). PC=0147546: RTS R7 ; Возврат из подпрограммы. 5. Переключение контекста (Overlay/Paging) БК-0011М имеет страничную организацию памяти. Код по адресу 0142xxx — это системный код (скорее всего, в ПЗУ или скрытой странице ОЗУ), который управляет переключением страниц. Видно активное взаимодействие с регистром управления памятью: Код PC=0142536: MOV @#0114, @#0177716; Восстановление страницы памяти (запись в регистр управления страницами 177716). ... PC=0142400: MOV #054002, @#0177716; Включение системной страницы памяти (054002 — управляющее слово). Что происходит в блоке 0142xxx:
Итог холостой ход (Idle Loop) БК-0011М.
|
kazamul эмулятор БК-0011М 6.2.2026, 11:34
kazamul в принципе проблема вот в чем - я загружаю конфигу... 6.2.2026, 11:57
kazamul
надо более детальное описание
но основное на что ... 7.2.2026, 7:44
kazamul могу подтвердить что 041714 это кольцевой буффер к... 8.2.2026, 7:27
kazamul у меня есть подозрение что я не правильно делаю сб... 9.2.2026, 10:02
SuperMax у меня есть подозрение что я не правильно делаю с... 9.2.2026, 10:22
kazamul спасибо
ссылка на 11 а не на 11М 11.2.2026, 7:33
SuperMax спасибо
ссылка на 11 а не на 11М
11М в той же т... 11.2.2026, 15:04
kazamul ну что - небольшое обновление - уже почти все рабо... 22.2.2026, 11:33
SuperMax ну что - небольшое обновление - уже почти все раб... 23.2.2026, 12:44
kazamul
супер!
могу предоставить поддомен на [url=htt... 24.2.2026, 10:34
kazamul диск вроде тоже починил - andos и mkdos грузятся н... 25.2.2026, 11:24
SuperMax диск вроде тоже починил - andos и mkdos грузятся ... 25.2.2026, 22:26
kazamul а тогда такой вопрос - что в БК11М происходит когд... 28.2.2026, 14:18
SuperMax а тогда такой вопрос - что в БК11М происходит ког... 28.2.2026, 23:42
kazamul
важный момент - обычная RT11 на БКшке не пойдет -... 1.3.2026, 8:14
kazamul
важный момент - обычная RT11 на БКшке не пойдет -... 1.3.2026, 9:40
kazamul CSI dos так-же не работает - вообще не понимаю что... 8.3.2026, 9:36
SuperMax трейс бы
дабы посмотреть что выполняется и где па... 9.3.2026, 13:02![]() ![]() |
| Текстовая версия | Сейчас: 1.4.2026, 23:48 |