Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
| kazamul |
6.2.2026, 11:34
Сообщение
#1
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
Помню, что в свое время было много отличных эмуляторов под Windows.
У меня Mac, поэтому запустить их нет возможности. Появилось время, решил написать свой эмулятор на Java. БК-0010 эмулируется нормально, а с БК-0011М пока проблемы. Если кто-то сможет глянуть и подсказать, что не так — буду очень признателен. Могу при необходимости выложить весь код на GitHub. |
| kazamul |
6.2.2026, 11:57
Сообщение
#2
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
в принципе проблема вот в чем - я загружаю конфигурацию БК-0011М с BASIC
все начинает работать нормально пишется Монитор БК-0011 В1.8 бежит снизу вверх - а потом все заканчивается в следующем бесконечном цикле - вот что дает debug кто-нибудь может объяснить что здесь происходит - исходников не нашел - disassemble BOS.rom не дает нормального понимания Код PC=0147454: BIT #040000, 040454 (opcode=0032767) PC=0147462: BEQ 0147544 (opcode=0001427) PC=0147542: CLR (R2) (opcode=0005012) PC=0147544: SEC (opcode=0000261) PC=0147546: RTS R7 (opcode=0000207) PC=0142460: BCS 0142502 (opcode=0103407) PC=0142500: INC @#0152 (opcode=0005237) PC=0142504: CLR @#0156 (opcode=0005037) PC=0142510: MOV (R6)+, R0 (opcode=0012600) PC=0142512: MOV (R6)+, R1 (opcode=0012601) PC=0142514: MOV (R6)+, R2 (opcode=0012602) PC=0142516: MOV (R6)+, R3 (opcode=0012603) PC=0142520: MOV (R6)+, R4 (opcode=0012604) PC=0142522: MOV (R6)+, R5 (opcode=0012605) PC=0142524: MOV 040436, @#04 (opcode=0016737) PC=0142532: MOV 040434, R6 (opcode=0016706) PC=0142536: MOV @#0114, @#0177716 (opcode=0013737) PC=0142544: MOV @#0152, (R6) (opcode=0013716) PC=0142550: MOV @#0150, -(R6) (opcode=0013746) PC=0142554: BIT #04, @#0156 (opcode=0032737) PC=0142562: BNE 0142574 (opcode=0001003) PC=0142564: TST @#0177716 (opcode=0005737) PC=0142570: RTT (opcode=0000006) PC=0147576: BCC 0147616 (opcode=0103006) PC=0147600: MTPS #00 (opcode=0106427) PC=0147604: NOP (opcode=0000240) PC=0147606: MTPS #0340 (opcode=0106427) PC=0147612: BR 0147574 (opcode=0000767) PC=0147572: JSR R7, 0147410 (opcode=0004767) PC=0147406: JSR R7, 0142360 (opcode=0004767) PC=0142356: CLC (opcode=0000241) PC=0142360: MFPS @#0152 (opcode=0106737) PC=0142364: MTPS #0340 (opcode=0106427) PC=0142370: MOV (R6)+, @#0156 (opcode=0012637) PC=0142374: MOV (R6), @#0150 (opcode=0011637) PC=0142400: MOV #054002, @#0177716 (opcode=0012737) PC=0142406: MOV R6, 040434 (opcode=0010667) PC=0142412: TST @#0177716 (opcode=0005737) PC=0142416: MOV @#04, 040434 (opcode=0013767) PC=0142424: MOV #0142602, @#04 (opcode=0012737) PC=0142432: MOV #044512, R6 (opcode=0012706) PC=0142436: MOV R5, -(R6) (opcode=0010546) PC=0142440: MOV R4, -(R6) (opcode=0010446) PC=0142442: MOV R3, -(R6) (opcode=0010346) PC=0142444: MOV R2, -(R6) (opcode=0010246) PC=0142446: MOV R1, -(R6) (opcode=0010146) PC=0142450: MOV R0, -(R6) (opcode=0010046) PC=0142452: MOV R6, R2 (opcode=0010602) PC=0142454: JSR R7, @0160 (opcode=0004777) PC=0147412: MOV #041714, R5 (opcode=0012705) PC=0147416: TST (R5)+ (opcode=0005725) PC=0147420: BEQ 0147456 (opcode=0001415) PC=0147454: BIT #040000, 040454 (opcode=0032767) |
| SuperMax |
6.2.2026, 23:16
Сообщение
#3
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 373 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 |
надо более детальное описание
но основное на что надо смотреть - на сколько корректно эмулируются регистры внешних устройств - тут есть отличия от БК-0010 -------------------- Живы будем - Не помрем !
|
| kazamul |
7.2.2026, 7:43
Сообщение
#4
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 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 |
7.2.2026, 7:44
Сообщение
#5
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
надо более детальное описание но основное на что надо смотреть - на сколько корректно эмулируются регистры внешних устройств - тут есть отличия от БК-0010 Вероятное предназначение 041714 и 040454 1. Адрес 041714 (Очередь задач / Буфер клавиатуры) В трассировке мы видим: Код MOV #041714, R5 TST (R5)+ ; Проверка: не ноль ли там? Это классическая проверка кольцевого буфера ввода или очереди сообщений.
2. Адрес 040454 (Системные флаги / Статус) Код проверяет конкретный бит: Код BIT #040000, 040454; Бит 14 (восьмеричное 040000 = бинарное 0100 0000 0000 0000) Это Слово Состояния Системы (System Status Word). В БК-0011М системные переменные часто лежат в области 04xxxx, когда подключена системная страница. Кто туда пишет? Сюда пишут асинхронные события (прерывания), которые происходят «за кадром»:
|
| kazamul |
8.2.2026, 7:27
Сообщение
#6
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
могу подтвердить что 041714 это кольцевой буффер клавиатуры - но кто и что может писать по адресу 040454 - не могу понять
|
| kazamul |
9.2.2026, 10:02
Сообщение
#7
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
у меня есть подозрение что я не правильно делаю сборку ROM
есть где-нибудь конкретная документация что где должно располагаться в зависимости от конфигурации БК-0011М например ничего не подключено 140000 - БОС + EXT 160000 - ???? где должен располагаться бейсик? там есть 3 файла по 8кб 100000 - basic1 + ???? 100000 - basic2 + basic3 подключен дисковод FDD 140000 - BOS + EXT 160000 - FDD и т/д/ вообще ничего не могу найти |
| SuperMax |
9.2.2026, 10:22
Сообщение
#8
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 373 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 |
у меня есть подозрение что я не правильно делаю сборку ROM есть где-нибудь конкретная документация что где должно располагаться в зависимости от конфигурации БК-0011М например ничего не подключено 140000 - БОС + EXT 160000 - ???? где должен располагаться бейсик? там есть 3 файла по 8кб 100000 - basic1 + ???? 100000 - basic2 + basic3 подключен дисковод FDD 140000 - BOS + EXT 160000 - FDD и т/д/ вообще ничего не могу найти вот к примеру документация https://forum.maxiol.com/index.php?showtopic=5068 на 160000 всегда ПЗУ FDD (за исключением AZБК, там динамическое управление ПЗУ) -------------------- Живы будем - Не помрем !
|
| kazamul |
11.2.2026, 7:33
Сообщение
#9
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
спасибо
ссылка на 11 а не на 11М |
| SuperMax |
11.2.2026, 15:04
Сообщение
#10
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 373 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 |
спасибо ссылка на 11 а не на 11М 11М в той же теме, смотрите внимательно -------------------- Живы будем - Не помрем !
|
| kazamul |
22.2.2026, 11:33
Сообщение
#11
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
ну что - небольшое обновление - уже почти все работает
диск читается/МТСД - тесты проходят кроче клавиатуры диск читается - но не пишется проблемы с клавиатурой если кто хочет/может помочь - могу выложить все куда-нибудь (github или еще куда) |
| SuperMax |
23.2.2026, 12:44
Сообщение
#12
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 373 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 |
ну что - небольшое обновление - уже почти все работает диск читается/МТСД - тесты проходят кроче клавиатуры диск читается - но не пишется проблемы с клавиатурой если кто хочет/может помочь - могу выложить все куда-нибудь (github или еще куда) супер! могу предоставить поддомен на https://pdp-11.ru/ и соответственно бесплатный хостинг под проект -------------------- Живы будем - Не помрем !
|
| kazamul |
24.2.2026, 10:34
Сообщение
#13
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
супер! могу предоставить поддомен на https://pdp-11.ru/ и соответственно бесплатный хостинг под проект спасибо - но я просто пока могу WIP (work in progress) код выкладывать - на самом деле клавиатуру починил - а вот с диском проблемы - читает нормально но каждый раз когда пишет все портит - я уже об стену убился не понимаю как это должно работать на самом деле |
| kazamul |
25.2.2026, 11:24
Сообщение
#14
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
диск вроде тоже починил - andos и mkdos грузятся нормально - читают и пишут на диск тоже нормально
вот с rt-11 какие-то проблемы - там что другой формат диска? *.dsk отличается от *.img? |
| SuperMax |
25.2.2026, 22:26
Сообщение
#15
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 373 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 |
диск вроде тоже починил - andos и mkdos грузятся нормально - читают и пишут на диск тоже нормально вот с rt-11 какие-то проблемы - там что другой формат диска? *.dsk отличается от *.img? нет не отличаются -------------------- Живы будем - Не помрем !
|
| kazamul |
28.2.2026, 14:18
Сообщение
#16
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
а тогда такой вопрос - что в БК11М происходит когда пытаются писать в ROM?
у меня у эмуляторе вижу вот такие логи: Код 02:13:36.272 TRACE Kbd177660 - [KBD177660] write 0000000 (masked 0000000) 02:13:36.272 DEBUG KeyboardDevice - [KBDDEV] IE enabled, triggering pending interrupt 02:13:38.597 INFO FloppyDrive - [FloppyDrive] Preparing track 0 side 0 02:13:39.770 INFO FloppyDrive - [FloppyDrive] Preparing track 0 side 0 02:13:40.504 ERROR PagedMemoryStrategy - [MEM 0140000] BOS/EXT ROM write error 02:13:40.504 ERROR PagedMemoryStrategy - [MEM 0144000] BOS/EXT ROM write error 02:13:40.504 ERROR PagedMemoryStrategy - [MEM 0150000] BOS/EXT ROM write error 02:13:40.504 ERROR PagedMemoryStrategy - [MEM 0154000] BOS/EXT ROM write error 02:13:40.504 ERROR PagedMemoryStrategy - [MEM 0160000] BOS/EXT ROM write error 02:13:40.504 ERROR PagedMemoryStrategy - [MEM 0164000] BOS/EXT ROM write error 02:13:41.704 INFO FloppyDrive - [FloppyDrive] Preparing track 0 side 1 02:13:41.755 INFO FloppyDrive - [FloppyDrive] Preparing track 1 side 1 02:13:41.799 INFO FloppyDrive - [FloppyDrive] Preparing track 2 side 1 02:13:41.847 INFO FloppyDrive - [FloppyDrive] Preparing track 3 side 1 02:13:41.901 INFO FloppyDrive - [FloppyDrive] Preparing track 4 side 1 02:13:41.956 INFO FloppyDrive - [FloppyDrive] Preparing track 5 side 1 02:13:42.910 ERROR PagedMemoryStrategy - [MEM 0165724] BOS/EXT ROM write error 02:13:42.910 ERROR PagedMemoryStrategy - [MEM 0165726] BOS/EXT ROM write error 02:13:42.911 ERROR PagedMemoryStrategy - [MEM 0165730] BOS/EXT ROM write error 02:13:42.911 ERROR PagedMemoryStrategy - [MEM 0165732] BOS/EXT ROM write error 02:13:42.911 ERROR PagedMemoryStrategy - [MEM 0165734] BOS/EXT ROM write error 02:13:42.911 ERROR PagedMemoryStrategy - [MEM 0165736] BOS/EXT ROM write error 02:13:42.911 ERROR PagedMemoryStrategy - [MEM 0165740] BOS/EXT ROM write error 02:13:42.912 ERROR PagedMemoryStrategy - [MEM 0165742] BOS/EXT ROM write error и так далее в конце получаю Код ?Boot-U-Conflicting SYSGEN options что там вообще происходит? |
| SuperMax |
28.2.2026, 23:42
Сообщение
#17
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 373 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 |
а тогда такой вопрос - что в БК11М происходит когда пытаются писать в ROM? у меня у эмуляторе вижу вот такие логи: Код 02:13:36.272 TRACE Kbd177660 - [KBD177660] write 0000000 (masked 0000000) 02:13:36.272 DEBUG KeyboardDevice - [KBDDEV] IE enabled, triggering pending interrupt 02:13:38.597 INFO FloppyDrive - [FloppyDrive] Preparing track 0 side 0 02:13:39.770 INFO FloppyDrive - [FloppyDrive] Preparing track 0 side 0 02:13:40.504 ERROR PagedMemoryStrategy - [MEM 0140000] BOS/EXT ROM write error 02:13:40.504 ERROR PagedMemoryStrategy - [MEM 0144000] BOS/EXT ROM write error 02:13:40.504 ERROR PagedMemoryStrategy - [MEM 0150000] BOS/EXT ROM write error 02:13:40.504 ERROR PagedMemoryStrategy - [MEM 0154000] BOS/EXT ROM write error 02:13:40.504 ERROR PagedMemoryStrategy - [MEM 0160000] BOS/EXT ROM write error 02:13:40.504 ERROR PagedMemoryStrategy - [MEM 0164000] BOS/EXT ROM write error 02:13:41.704 INFO FloppyDrive - [FloppyDrive] Preparing track 0 side 1 02:13:41.755 INFO FloppyDrive - [FloppyDrive] Preparing track 1 side 1 02:13:41.799 INFO FloppyDrive - [FloppyDrive] Preparing track 2 side 1 02:13:41.847 INFO FloppyDrive - [FloppyDrive] Preparing track 3 side 1 02:13:41.901 INFO FloppyDrive - [FloppyDrive] Preparing track 4 side 1 02:13:41.956 INFO FloppyDrive - [FloppyDrive] Preparing track 5 side 1 02:13:42.910 ERROR PagedMemoryStrategy - [MEM 0165724] BOS/EXT ROM write error 02:13:42.910 ERROR PagedMemoryStrategy - [MEM 0165726] BOS/EXT ROM write error 02:13:42.911 ERROR PagedMemoryStrategy - [MEM 0165730] BOS/EXT ROM write error 02:13:42.911 ERROR PagedMemoryStrategy - [MEM 0165732] BOS/EXT ROM write error 02:13:42.911 ERROR PagedMemoryStrategy - [MEM 0165734] BOS/EXT ROM write error 02:13:42.911 ERROR PagedMemoryStrategy - [MEM 0165736] BOS/EXT ROM write error 02:13:42.911 ERROR PagedMemoryStrategy - [MEM 0165740] BOS/EXT ROM write error 02:13:42.912 ERROR PagedMemoryStrategy - [MEM 0165742] BOS/EXT ROM write error и так далее в конце получаю Код ?Boot-U-Conflicting SYSGEN options что там вообще происходит? важный момент - обычная RT11 на БКшке не пойдет - нужна патченая под БК11М - см мои архивы и образы для AZБК -------------------- Живы будем - Не помрем !
|
| kazamul |
1.3.2026, 8:14
Сообщение
#18
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
|
| kazamul |
1.3.2026, 9:40
Сообщение
#19
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
важный момент - обычная RT11 на БКшке не пойдет - нужна патченая под БК11М - см мои архивы и образы для AZБК добавил прерывание по вектору 4-ре при обращении на запись в ROM стало лучше но не намного теперь вижу Код BY V3.3 Саяпин А.А.+Лобанов А.Ю. (C) 1994 и дальше мигающий курсор - но дальше не идет |
| kazamul |
8.3.2026, 9:36
Сообщение
#20
|
|
Пользователь ![]() ![]() Группа: Участники Сообщений: 16 Регистрация: 22.6.2016 Пользователь №: 34 773 |
CSI dos так-же не работает - вообще не понимаю что я делаю не так
|
![]() ![]() |
| Текстовая версия | Сейчас: 16.3.2026, 17:32 |