IPB

Здравствуйте, гость ( Вход | Регистрация )

> эмулятор БК-0011М, нужна помощь
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:44
Сообщение #3


Пользователь
**

Группа: Участники
Сообщений: 16
Регистрация: 22.6.2016
Пользователь №: 34 773



Цитата(SuperMax @ 6.2.2026, 11:16) *

надо более детальное описание
но основное на что надо смотреть - на сколько корректно эмулируются регистры внешних устройств - тут есть отличия от БК-0010


Вероятное предназначение 041714 и 040454

1. Адрес 041714 (Очередь задач / Буфер клавиатуры)
В трассировке мы видим:
Код
MOV #041714, R5
TST (R5)+      ; Проверка: не ноль ли там?


Это классическая проверка кольцевого буфера ввода или очереди сообщений.
  1. Кто туда пишет? Скорее всего, прерывание клавиатуры (вектор 060). Когда ты нажимаешь клавишу, происходит аппаратное прерывание. Процессор останавливает этот бесконечный цикл, переходит в обработчик прерывания клавиатуры, считывает код клавиши из регистра данных (177562) и кладет его в буфер, на который указывает или который начинается с 041714.
  2. Что происходит в цикле? Диспетчер проверяет: «Появились ли новые символы?». Если TST показывает ноль — буфер пуст. Если не ноль — система забирает символ и начинает его обрабатывать (выводит на экран, передает программе и т.д.).

2. Адрес 040454 (Системные флаги / Статус)
Код проверяет конкретный бит:
Код
BIT #040000, 040454; Бит 14 (восьмеричное 040000 = бинарное 0100 0000 0000 0000)


Это Слово Состояния Системы (System Status Word). В БК-0011М системные переменные часто лежат в области 04xxxx, когда подключена системная страница.

Кто туда пишет? Сюда пишут асинхронные события (прерывания), которые происходят «за кадром»:
  1. Сетевой таймер (50 Гц, вектор 100): Каждые 20 мс таймер обновляет счетчики времени и может выставлять флаги (например, для мигания курсора или повтора клавиши).
  2. Кнопка СТОП: Нажатие кнопки СТОП часто устанавливает отдельный флаг, чтобы система знала, что нужно прервать текущий процесс. Бит 14 (040000) — очень "высокий" бит, часто используемый для флагов типа "Запрос на прерывание программы" или "Ошибка ввода-вывода".
  3. Драйвер дисковода: Если была запущена операция чтения/записи, драйвер по завершении (по прерыванию) выставляет флаг "Готово".
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
kazamul   эмулятор БК-0011М   6.2.2026, 11:34
kazamul   в принципе проблема вот в чем - я загружаю конфигу...   6.2.2026, 11:57
SuperMax   надо более детальное описание но основное на что н...   6.2.2026, 23:16
kazamul   надо более детальное описание но основное на что ...   7.2.2026, 7:43
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 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 2.4.2026, 1:24