- Пара вопросов по эмулятору ув. gid
- [+] Старые сообщения (1122)
-
? Alexander "Sandro" Tishin@ - 12.09.2023 10:11
> Экспериментальные изменения со сбросом бита готовности в 177660, он теперь сбрасывается через некоторое время после чтения регистра 177662.
¤
¤
А каков смысл этого? Реальное железо сбрасывает сразу.
-
? gid - 12.09.2023 11:02
Это нужно для игры Bolder Dash 3, у которой в заставке клавиатура в эмуляторе ведёт себя неадекватно из-за того, что разрешены и обрабатываются прерывания от клавиатуры, и делается опрос получения нового кода клавиши в цикле командами tstb @177660 bpl .-4
Чтобы бит 7 в 177660 не успел сброситься при чтении регистра 177662 в обработчике прерывания.
¤
Может причина в чём-то другом, может в не правильной обработке прерываний. Может вообще где-то глюк, из-за которого сбрасывается бит 7 в PSW. Но этот хак улучшает ситуацию.
-
? Alexander "Sandro" Tishin@ - 12.09.2023 23:09
Это какая их проблемных версий болдера? Я в них запутался уже, мне страшно чинить поддержку болдеров ;)
¤
На самом дела на реале в такой ситуации код должен глючить, но таки ловить нажатие примерно в 60% случаев. Так как проверка прерываний происходит при чтении очередного опкода, кто не успел -- ждёт следующей команды. А за время декодирования опкода битик в порту может и перекинуться ...
¤
Но так делать с флагом как бы некорректно. Я бы лично наоборот выставлял прерывание после битика с задержкой на команду. Или даже на две. ИМХО, так корректней.
-
? gid - 13.09.2023 03:01
В этой теме, начиная с этого поста.
https://zx-pk.ru/threads/9907-pomogite-vspomnit-igru-).html?p=1182523&viewfull=1#post1182523
Там дальше и ссылки будут и описание проблемы.
Как ведёт себя игра на реале, я так и не проверил. Но в эмуляторе, нажатие и ловится если быстро-быстро долбить клавишу.
Я не могу выставлять прерывания произвольно. у меня цикл - { проверка запросов на прерывание, и если есть - генерация, если нету - чтение и выполнение опкода }. Попытки как-то модифицировать цикл приводят к разного рода глюкам, так что я его не трогаю.
Запрос на прерывание от клавиатуры генерируется при нажатии на клавишу клавиатуры ПК асинхронно, а обработается тогда, когда в цикле время придёт.
-
? Shestipalov@ - 07.10.2023 17:11
Сергей, привет!
¤
В Руководстве пользователя эмулятора, в Приложении 2 — Описание ключей в файле «bk.ini», там, где приведены названия конфигураций эмулятора, у тебя адская подстава — в названии конфигурации «BK-0011М» М - русская. В результате, если скопировать название конфигурации из Руководства в cmd-файл, получится нехорошо, конфигурация не включится, и гражданин будет ломать голову, почему :-)
-
? gid - 09.10.2023 08:33
А писал бы гражданин собственными ручками, вместо копипастенья, то и проблем бы у него не возникало.
Русская буква попала туда из-за массовой автозамены. В тексте повсеместно упоминается БК-0011М, вот и получилось так, как получилось.
-
? Дмитрий - 24.10.2023 22:23
gid, я уже чет ваще подзабыл - в БК как ведут себя регистры состояния/ошибки при отсутствующем винте? Как определяем, что винта нет? Drive Ready отсутствует - это понятно, а Busy выставлен всегда? Или только регистр падает в бесконечный Busy после посылки любой команды? В сырцы глянул, но не нашел - видать к ночи башка плохо варит.
-
? gid - 25.10.2023 08:41
Регистры ведут себя как обычно, выдают какую-то информацию.
ПЗУ СМК например проверяет наличие винта так:
Ждёт когда пропадёт сигнал BSY в регистре состояния 1F7, и когда пропал, ждёт, когда появится сигнал DRDY, если появился, значит винт есть, если за достаточно долгое время не появился, значит винта нет или неисправен.
Если винта физически нет, то с шины читаются нули, но данные считаются инверсными, т.е. полагается что все биты установлены, т.е. считается что BSY всегда установлен, и до проверки DRDY не доходит, после довольно долгого ожидания, BSY так и не снимается и всё, считается что винта нету.
-
? Шестипалов@ - 06.12.2023 20:42
Сергей, привет.
.
В телеграммовском чате нашли неточность в эмуляторе:
.
На реальной БК11М в режиме БК10 (с загруженным монитором тобишь) комбинация СУ-АР2-Ж включает режим ЗАП.В эмуляторе — нет.
.
Простенькая программа позволяет понять, что реальной БК11М СУ-АР2-Ж вырабатывает код 226, а в эмуляторе код 266.
.LA 1000
1$: EMT 6
MOV R0,R2
CALL OCTOUT ;вывод восьм числа из R2
MOV #12,R0
EMT 16
BR 1$
Есть мнение, что надо исправить. БК0010-01 не проверяли, но очевидно, поведение такое же.
-
? gid - 07.12.2023 09:33
Там дело не в типе БК и не в загруженном мониторе.
Там опечатка, или старый не подчищенный хвост от переделки эмуляции клавиатуры. Ошибка в таблице раскладки виртуальной кнопочной клавиатуры, там сканкод кнопки V/Ж вместо 0126 стоит 0166, т.е. строчная буква, вот всё и не работает. В виртуальной плёночной клавиатуре такой ошибки нет. И если руками комбинации клавиш нажимать, тоже ошибки нету, единственное неудобство - надо смотреть на раскладку клавиатуры, в русской раскладке надо жать СУ-АР2-Ж, в латинской - СУ-АР2-V
¤
Т.е. СУ-АР2-Ж криво работает только в одном единственном случае из трёх возможных вариантов.
Вот неохота из-за такой мелочи новую версию делать.
¤
Тут вот меня на zx-pk на идею натолкнули - в окошке настроек, где монтируются образы дискет и hdd сделать кнопку для генерации новой чистой дискеты, и чтобы она в дисковод монтировалась. (и сразу предупрежу, с hdd это не прокатит, и не просите) Это сделать совсем не трудно, но вот надо ли? Я такие действия в файловом менеджере делаю, просто копирую первый попавшийся образ под новым именем и использую его как новую дискету. Делать такие вещи из-под эмулятора мне и в голову не приходило. Нужна вообще такая фича кому-нибудь?
-
? Shestipalov@ - 12.12.2023 09:12
>Нужна вообще такая фича кому-нибудь?
.
Лично я поступаю так же — копирую существующий образ, потому инициализирую как надо и так далее. Думаю, и остальные делают так же. Т.е., прям вот такой жёсткой необходимости в этом нет. С другой стороны, инструмент, позволяющий создать образ дискеты вообще с нуля — всё-таки наверно нужен. В общем, лично моё мнение — фишка не помешает, но от её отсутствия сильно страдать никто не будет. Есть более важные точки приложения сил в эмуляторе :-)
-
? Manwe - 12.12.2023 11:22
Чистые диски нужны – их плюс в том, что они забиты нулями и хорошо упаковываются. Я часто делаю образы дискет, на которых мало данных (например, записана одна демка), и мне хочется чтобы размер архива отражал реальный размер программы.
А если просто инициализировать каталог старого образа дискеты, она останется забита мусором и не упакуется.
-
? Shestipalov@ - 19.01.2024 07:02
Сергей, привет.
.
Ещё ошибку в эмуляторе нашли — на виртуальной клавиатуре невозможно ввести символ = (знак равенства).
И на плёночной, что кнопочной не получается.
-
? gid - 19.01.2024 08:57
Качайте новую версию. Там этой ошибки уже нету.
-
? Shestipalov@ - 21.01.2024 17:50
Спасибо за новую версию! На сей раз ошибку в документации нашли:
.
https://gid.pdp-11.ru/books/00001-01.32.03.html#_Toc381877523
.
В Приложении 3 (Таблица кодов символов Микро-ЭВМ) не указана клавиша ТАБ (код 200).
-
? gid - 21.01.2024 18:48
Не вижу никаких ошибок. Я просмотрел оба имеющихся у меня варианта бумажных изданий документа 00001-01.32.03. Нигде клавиша ТАБ (код 200) не указана. Значит её официально нет. Это недокументированная фича.
-
? Shestipalov@ - 21.01.2024 19:06
Вот те раз, клавиша есть, а описания — нету. Почти анекдот :-) Ну может имеет смысл в документации вставить строку с кодом ТАБ рядом с ПОВТ (адрес вектора прерывания — 274), и указать, что в оригинальной документации эта строка отсутствует. Это же явная ошибка.
-
? gid - 22.01.2024 08:32
Ну добавить то не трудно. Тем более что я в распознанных документах исправляю опечатки и замеченные ошибки без указаний, что в оригинальном документе тут ошибка или опечатка.
А как насчёт остальных кодов, которых нет в таблице? Мне вот честно говоря было лень перепроверять по исходникам монитора, что там и как.
-
? litwr - 16.07.2024 13:44
Интерсный глюк обозначился. Давно не gid-бк не запускал, больше года. И сразу обнаружился приятный сюрприз, автор смог осилить полный газ, возможно единственный из всех отечественных эмулятороделов. Может автора уже эвакуировали? Но скорее ещё нет, так как глюк. Полный газ сделан явно не на импортных технологиях, которые отлично работают уж лет более 30, а на каких-то аналоговнетных. В АнДОС или МкДОС мой калькулятор числа пи работает с полным газом отлично, но запускаю ОС БК-11 и начинается аналоговнет. Все тайминги на полном газу рушатся. :(
-
? gid - 16.07.2024 14:24
Чорт. Мне так стыдно. Я не знаю, а что такое полный газ?
Итакида, БК - это полный аналоговнет, там есть уникальная микросхема К1801ВП1-037, которой нету больше ни у кого, и на загнивающем западе такое тоже не смогли придумать.
-
? litwr - 17.07.2024 00:23
В старом эмуляторе БК Брухиса полный газ есть, но включается только в командной строке. Прикрутил к нему клавишу, которая переключает нормальную скорость и максимальную. Где-то в телеграме выкладывал сорцы. Так что дело не в уникальных чипах. При полном газе, машинка работает внутренне как обычно, но без синхронизации с реальным временем. Типа нажали на клавишу R быстро, а она раз 50 успевает отжаться RRRRRRRRRRRRRRRRRRRRRR... :) У вас так примерно и работает с большинством программ, а под ОС БК-11 глючит. И это что-то реально аналоговнетное. Типа проц разгоняется в реальном времени, а таймер отмораживается. И не могу понять зачем разгонять в реальном времени, когда есть стандартные реальные частоты 3, 4 и 6?... Кстати, Леонид эвакуировался уж лет 30 как.
- << Форум