-
- ? Shestipalov
- 21.01.2024 19:06
Вот те раз, клавиша есть, а описания — нету. Почти анекдот :-) Ну может имеет смысл в документации вставить строку с кодом ТАБ рядом с ПОВТ (адрес вектора прерывания — 274), и указать, что в оригинальной документации эта строка отсутствует. Это же явная ошибка.
- ? Shestipalov
- 21.01.2024 17:50
Спасибо за новую версию! На сей раз ошибку в документации нашли:
.
https://gid.pdp-11.ru/books/00001-01.32.03.html#_Toc381877523
.
В Приложении 3 (Таблица кодов символов Микро-ЭВМ) не указана клавиша ТАБ (код 200).
- ? Shestipalov
- 19.01.2024 07:02
Сергей, привет.
.
Ещё ошибку в эмуляторе нашли — на виртуальной клавиатуре невозможно ввести символ = (знак равенства).
И на плёночной, что кнопочной не получается.
- ? Shestipalov
- 12.12.2023 09:12
>Нужна вообще такая фича кому-нибудь?
.
Лично я поступаю так же — копирую существующий образ, потому инициализирую как надо и так далее. Думаю, и остальные делают так же. Т.е., прям вот такой жёсткой необходимости в этом нет. С другой стороны, инструмент, позволяющий создать образ дискеты вообще с нуля — всё-таки наверно нужен. В общем, лично моё мнение — фишка не помешает, но от её отсутствия сильно страдать никто не будет. Есть более важные точки приложения сил в эмуляторе :-)
- ? Шестипалов
- 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 не проверяли, но очевидно, поведение такое же.
- ? Shestipalov
- 07.10.2023 17:11
Сергей, привет!
¤
В Руководстве пользователя эмулятора, в Приложении 2 — Описание ключей в файле «bk.ini», там, где приведены названия конфигураций эмулятора, у тебя адская подстава — в названии конфигурации «BK-0011М» М - русская. В результате, если скопировать название конфигурации из Руководства в cmd-файл, получится нехорошо, конфигурация не включится, и гражданин будет ломать голову, почему :-)
- ? Shestipalov
- 04.09.2023 12:16
Сергей, привет!
Не знаю, может, известный глюк, но тем не менее — перезадание битов джойстика не работает. Изменённые данные не сохраняются. Неработающие контролы на картинке: https://ibb.co/wCTf6tD
Изменить можно, только напрямую редактируя ini.
- ? Shestipalov
- 31.07.2023 10:03
>Да скачайте уже таки свежую версию https://gid.pdp-11.ru/f/HDDImageMaker.rar и узбагойтесь наконец
.
Не работает ссылка: «Такая страница не найдена. Возможно её даже физически не существует.»
- ? Shestipalov
- 12.05.2023 18:30
В общем, изменение поведения регистра 177702 работает нормально. Это Принцу надо обязательно прочитать из регистра то, что он туда записал, иначе считает, что работает на реальном железе, поэтому тайминги съезжают.
- ? Shestipalov
- 12.05.2023 16:26
Сергей, привет!
.
в версии v3.13.2305.10355 отключение эмуляции поведения регистра 177702 через ini не работает почему-то. В ini так:
Emulate C Bug = Yes
Emulate 177702 behavior = No
Emulate CPU 1801VM1G = No
Emulate EIS Instructions Set = No
Emulate FIS Instructions Set = No
.
но в Принце тайминги всё равно съехавшие. Проверь, пожалуйста. На заставке хорошо видно.
- ? Shestipalov
- 11.05.2023 07:32
Сергей, привет!
.
Вопрос про новую версию эмулятора:
.
>Сэмулировано поведение регистра 177702, теперь, если в него что-нибудь записать, он исчезает, пока не будет выполнена команда EMT или перезагрузка.
.
Вот, к примеру, Prince of Persia (и, возможно, некоторые демы KUVO) по поведению этого регистра определял, на реальной БК он запущен или на эмулируемой, и соответственно, выставлял требуемые тайминги. Способ определения, кстати, посоветовал именно ты :-) Сейчас, получается, корректно определить, на чём запущена программа, не получается (или получится, но другим способом, и Prince окажется в пролёте). Можно ли эмуляцию поведения этого регистра сделать опциональной? И как лучше определять, что программа запущена под эмулятором? Нужен корректный способ, гарантированно работающий во всех версиях эмулятора.
- ? Shestipalov
- 26.02.2023 12:09
>Точно по вектору 100 ?
.
Точно. Эта кнопка вызывает прерывание по вектору 100.
.
>Результат должен что делать? Сохранять копию экрана в файл на дискету или распечатывать его на принтере?
.
Нет, ничего такого. Результатом нажатия на кнопку должно быть просто прерывание по вектору 100 (название «PrintScreen» не совсем корректное, но так уж повелось :-) ). А что должно происходить дальше — зависит от загруженного в данный момент обработчика прерывания. Snipper, например, позволяет текст на экране записать в ТЕКСТОВЫЙ файл, т.е., он сканирует изображение и распознаёт символы. Graphix2 делает графическую копию экрана. Можно сделать любой другой свой обработчик, например, догрузку к Paradise, которая будет передавать управление в отладчик при нажатии кнопки. Или, например, сохранение состояния игры (ну или содержимого памяти) для 10-х игр. Ну или что ещё фантазия подскажет :-)
.
>Т.е. мы уже может получить скриншот экрана без всяких новых кнопок.
.
Так речь идёт не просто о возможности получить скриншот, а об эмуляции доработки реального БК0010-01/0011(М), которая делали на реальных БК. Это такая же доработка, как Covox, AY, кнопка Reset, например. Поэтому было бы невредно иметь и её эмуляцию, раз уж она была в реальности.
- ? Shestipalov
- 25.02.2023 22:06
Сергей, есть предложение добавить эмуляцию кнопки «Printscreen». Использовалась в разных программах, Snipper, например, Graphix ot RDC. Это которая посылает сигнал прерывания по вектору 100. Схема подключения есть в документации на Snipper. Вот тут скриншот https://pastenow.ru/6d3da0ac150e449351d60b858f08ca6b
- ? Shestipalov
- 21.02.2023 07:59
Сергей, привет!
.
>20.02.2023 13:21:12 // Исходники игры King's Valley
.
Нету на сайте их. По-крайней мере, я не нашёл.
- ? Shestipalov
- 10.02.2023 11:23
И ещё одно, давно хотел предложить, всё время забывал. В окне «Дамп регистров CPU» есть переключатель DEC/HEX. Предлагаю дополнить его ещё байтовым представлением, чтобы видеть отдельно содержимое старших и младших байтов регистров. Иногда (сильно иногда) бывает полезно.
Просто предложение, на твоё усмотрение, нужно или нет :-)
- ? Shestipalov
- 09.02.2023 11:50
Если включена опция «эмулировать ввод-вывод дисковода» — то грузится. Если эта опция выключена — то не грузится.
- ? Shestipalov
- 09.02.2023 10:52
Сергей, «и снова здравствуйте» :-)
.
В сборке v3.13.2301.10250 загрузка с диска A: в конфигурации БК11М+СМК512 невозможна. Вывод строку с названием контроллера и виснет.
- ? Shestipalov
- 30.01.2023 14:51
Сергей, привет!
.
Вопрос такой. Пытаюсь грузить bin-файл в эмулятортакоф командой:
BK.exe /D MYFILE /L 1000
Экземпляр эмулятора уже запущен, файл грузится, но всегда по адресу, указанному в заголовке bin-файла, параметр /L не имеет никакого значения — что ни указывай, адрес всегда один и тот же — из заголовка. Это я неправильно понял документацию или ошибка в эмуляторе? :-)
- ? Shestipalov
- 20.01.2023 17:22
>То, что ты предлагаешь - это модификация исходника.
Не совсем. Одно дело в исходнике постоянно руками менять дату компиляции, и совсем другое написать, например, что-то типа такого (на синтаксис и логику внимание не обращать, это только пример для демонстрации идеи):
.LA 1000
MOV #MSG,R1
CLR R2
EMT 20
EMT 6
HALT
DATE: .BLKW 10
.SCRIPT:
MOV ${currentdate},@#DATE
.ENDS
.END
.
Тогда при компиляции можно руками дату в исходнике не менять — сама подставится. Это как раз модификация бинарника. Хотя, наверно, можно как решить эту задачу и без использования скриптов, средствами текстовых редакторов каких-нибудь... Не знаю. В общем, нет так нет, тебе виднее :-)
.
А пауза при сохранении действительно работает, спасибо! )
- ? Shestipalov
- 20.01.2023 15:29
Переименование регистров, ИМХО, может сильно помочь в плане читаемости программы. Мне было бы полезно, по крайней мере. Ну и ещё такая мысль появилась, насчёт скриптов. Было бы полезно иметь возможность использовать в скриптах системны переменные, типа системной даты, времени, может, ещё чего. Тогда будет возможно автоматически вносить в текст программы дату компиляции, например. Номер версии тоже не помешал бы. Правда, возможный механизм реализации этого я плохо себе представляю, но, может, ты придумаешь :-)
.
PS. И ещё, не помню, предлагал или нет сделать такую штуку в эмуляторе — когда нажимается кнопка «Сохранить состояние эмулятора», он автоматически ставится на паузу. Это будет логично, если учесть, что я хочу сохранить именно тот момент, когда нажал на кнопку «сохранить», а не тот, когда я ввёл имя файла сохранения в диалоговом окне. За это время много чего может произойти, например, в «Принце Персии» ГГ убьют )))
- ? Shestipaloff
- 20.01.2023 08:38
Сергей, привет
.
Нашёл небольшую ошибку в документации на BKTurbo8 — в начале написано, что псевдокоманды .ENABL и .DSABL отсутствуют (от старой доки осталось), а ниже в тексте они указаны как действующие.
- ? Shestipalov
- 05.07.2022 14:18
[В общем, сейчашняя версия эмулятора, которая у меня, по команде LDMount H:LOG1 A: не падает]
.
По поводу LDMount — это я затупил, скорее всего. Очевидно, валит эмулятор не сама LDMount, а демка Однажды, диск с которой я монтирую и с которого я эту демку загружаю. Она (демка) использует СМК, и, видимо, именно попытка работы с СМК валит эмулятор, как и в Принце.
- ? Shestipalov
- 05.07.2022 10:03
вот отсюда можно забрать https://disk.yandex.ru/d/iSJxDfrskOSVSg
- ? Shestipalov
- 05.07.2022 07:30
уточнение — в версии от 15 апреля 3.12.2204.9393 «Принц» тоже не работает. Загрузка там проходит, но заставка сразу пропускается, загружается игровой экран и нет реакции на нажатия клавиш.
- ? Shestipalov
- 05.07.2022 00:06
3.12 от 15 апреля работает вроде нормально. Следующие уже валятся. Из ещё гарантированных ошибок — эмулятор падает, если с помощью утилиты Manwe LDMount примонтировать логдиск как дисковод A: и загрузиться с него. У меня падает при задании таких параметров: LDMount O:ODNAZDY A: BOOT
- ? Shestipalov
- 04.07.2022 17:38
Уточню пост выше. В нескольких последних версиях эмулятора наблюдаются падения в разных ситуациях. Самая простая воспроизводимая ошибка — попытка запуска «Принца Персии», эмулятор валится стопроцентно на окне загрузки.
- ? Shestipalov
- 29.06.2022 13:41
Спасибо! Только на сайте опечатка — написано, версия от 29.09.2022 :-)
- ? Shestipalov
- 29.06.2022 10:20
Сергей, привет
.
Хоть и перерыв, но всё-же :-) В версии эмулятора от 27-05-2022 изменён порядо страниц в карте памяти, теперь буфера экранов оказались в разных закладках. Сообщество демомейкеров :-) считает, что это неудобно — экраны это логически связанные вещи, и лучше, если можно визуально оценить их содержимое одновременно. Лучше всё-таки им быть на одной закладке.
- ? Shestipalov
- 19.03.2022 18:44
По уму, посмотреть бы, как она работает на реальном железе. Но я не могу — нету :-)
- ? Shestipalov
- 19.03.2022 18:43
Возможно, что-то не так с утилитой. Я к тому, что в предыдущих версиях эмулятора она вела себя по-другому, более корректно. Поэтому подозреваю, что с эмуляцией всё-таки что-то неладно.
- ? Shestipalov
- 19.03.2022 12:08
И всё-таки что-то не то с эмуляцией HDD. Вот, к примеру, в версии от 17-03-2022 в утилите ANFORM, если выбрать «Verify» диск C, то утилита дойдёт жо 5-й дорожки и остановится, затем опять лаги и ошибки счтывания с HDD. В предыдущих версиях тоже было остановка на 5-й дорожке, но не было лагов и последующих ошибок чтения.
- ? Shestipalov
- 17.03.2022 12:49
Сергей, привет.
В версии эмулятора от 9 марта 2022, похоже, перестал работать SERVICE2. После выхода небольшой лаг на несколько секунд и ошибка чтения HDD. Также не работает «Тест накопителя —> Внутренняя диагностика» и тест чтения HDD. Воспроизводится на версии x86.
- ? Shestipalov
- 10.02.2022 14:02
Ага. И сразу пример опечатки в коде, в той же книге Зальцмана:
.
; Инициализация драйвера
MOV PC,R0 ; Вычислить адрес
ADD (PC)+,R0 ; супервизора
.@SQN+2 ; в перемещаемом формате
MOV R0,@#274 ; Записать новый вектор @#274
HALT ; Стоп
; Супервизорная программа - обработка прерывания по "АР2"
SON: CMPB #17,@#177662 ; Клавиша "ЛАТ" по регистру "АР2"? –
BNE 0 ; Нет - выход
CALL GRK ; Графическая копия экрана
0: JMP @#101362 ; Передача управления в драйвер
; клавиатуры БК-0010
.
Имя метки сначала SQN, потом SON. Не смертельно, но тем не менее.
- ? Shestipalov
- 08.02.2022 19:12
Сергей, привет.
.
Нашёл небольшую опечатку в книге Зальцмана на сайте. Сейчас так:
.
126-150 адрес очередного байта текста текущего «ключа».
126-150 - адреса (по порядку) начала текстов программируемых «ключей», соответствующих клавишам «0», «1»,...«9».
.
Надо:
.
124 — адрес очередного байта текста текущего «ключа».
126-150 - адреса (по порядку) начала текстов программируемых «ключей», соответствующих клавишам «0», «1»,...«9».
- ? Shestipalov
- 06.01.2022 23:17
>Глюк не критичный, если адресов регистров HDD в окне дампа не видно во время работы HDD, то о нём никто и не узнает.
.
Ну это как сказать. Если будет открыто окно дампа с регистрами HDD во время записи на образ диска — можно обзавестись множеством битых файлов.
- ? Shestipalov
- 06.01.2022 18:08
Проверил сборку эмулятора от 2022-01-06, глюка теперь нет.
- ? Шестипалов
- 05.01.2022 19:13
Сергей, привет!
.
в версии эмулятора от 2021-12-03 (а может, и более ранних) обнаружился глюк. Воспроизводится в конфигурации БК0011М+СМК, другие не проверял, но, очевидно, должно воспроизводиться и там. Алгоритм воспроизведения может быть такой:
1. Открываем окно дампа памяти, стартовый адрес указываем 177700. У меня окно дампа большое, диапазон показываемых адресов переходит через 0.
2. Запускаем что-то, что активно читает или пишет на винчестер. Я проверял на Принце Персии, тот грузит много данных, и ошибки чтения сразу видны.
3. Ошибки могут быть как в виде покорёженной заставки, битых спрайтов или вылетов в процессе игры.
4. Ошибки возникают как по чтению с винчестера, так и по записи на него.
- ? Shestipalov
- 03.10.2021 08:40
В новой версии проблемы с полным экраном только если в качестве рендера экрана выбран Direct3D. Рендеры OpenGL и Direct2D работают нормально.
.
Правильная ссылка на скачивание http://gid.pdp-11.ru/f/3.12.2110.8960/BK_v3.12_x64.rar
- ? Shestipalov
- 19.09.2021 21:56
>Как вы умудрились это сделать? Я так и не нашёл способа закрыть экран.
Окно экрана БК может быть закрыто, если произойдёт какая-нибудь ошибка, связанная с OpenGL или DX. У меня было так пару раз. Можно было открыть заново изменением Screen Render в настройках. Но штатного способа закрыть окно БК таки нет :-)
- ? Shestipalov
- 12.09.2021 12:25
Сергей, приветствую.
Два замечания по поводу новой сборки эмулятора, от сентября 2021 г.
1. Окно с параметрами сохранения дампа памяти может быть размещено частично за правым краем экрана, если окно дампа памяти находится справа. Например: http://ipic.su/img/img7/fs/SaveDump.1631437957.png
2. Очень неудобно, что не сохраняется режим выбранный пользователем режим экрана БК в меню «Вид — Установить размер экрана». Ну например:
- разворачиваем окно эмулятора во весь экран (не Ctrl-Alt-ScrollLock, а кнопкой «Развернуть» в правом верхнем углу).
— Выбираем «Вид—Установить размер экрана—1024х768 (х2)»
— Окно эмулятора уменьшится. Теперь, если я его опять разверну во весь экран, режим «1024х768 (х2)» не сохранится, а переключится на «Свой». Т.е., в новой сборке, если разворачивать окно эмулятора во весь экран, режим экрана БК возможен только «Свой», что очень неудобно, т.к. в этом режиме БКшный экран отрисовывается с искажениями.
Хотелось бы, чтоб выбранный пользователем размер экрана БК сохранялся при любом изменении размеров экрана эмулятора или док-окон, в случае, если ему хватает места. В старой сборке было именно так — можно было распахнуть эмулятор во весь экран и менять размеры док-окон, режим экрана БК не переключался в «Свой» до тех пор, пока ему хватало места.
- ? Shestipalov
- 15.04.2021 11:51
Сергей, привет.
У тебя на сайте выложен модифицированный DESS Михаила Королёва. Я внёс в исходники ещё несколько исправлений, может, выложишь исправленный вариант у себя на сайте?
.
Исправлено следующее:
1. Исправлен экран помощи. На первом экране было слишком много строк, поэтому происходил скролл на 1 строку, после чего экран DESSa отрисовывался с ошибками — например, сдвиг мнемоники текущей команды вверх.
2. Перенёс блок параметров драйвера дисковода для не-Андос систем на с адреса 400 на адрес 500. Теперь в DESSe работает командная строка в МКДОС и ключи в АНДОС. Раньше блок параметров затирал ключи. Это переменная DRVTAB, строка 140.
3. Сделал вид дополнительной информации сразу после запуска в виде двух восьмеричных байтов вместо десятичного значения. ИМХО байты полезнее :-) Это Переменные INFFLG и INF, строки в исходнике 105 и 106.
.
Модифицированный исходник тут:
https://drive.google.com/file/d/1pDYLiBaakwNcv_zLSeajf6ZSPaofLV8P/view?usp=sharing
- ? Shestipalov
- 19.02.2021 11:32
[Эмулятор не даст. Он захватывает образ и не даст никому туда ничего писать. ]
BKDE как-то ухитряется же перехватить запись в образ у эмулятора, почему другие не могут? Буквально на секунду )
- ? Shestipalov
- 18.02.2021 23:48
Сергей, привет.
.
Хотелось бы иметь возможность в BKDE вставлять файлы в образ через командную строку. Тогда можно будет скомпилированный в кроссассемблере файл вставлять в образ из _make.bat, не кликая мышкой. В эмуляторе останется только кнопку перечитывания каталога нажать. Очень удобно было бы.
- ? Шестипалов
- 14.02.2021 13:27
Сергей, привет.
В BKTurbo8 при генерации lst-файлов некорректно отображаются отрицательные числа. Вот такая конструкция получается:
28 0126460 FLAG =126460
29
30 37777777777 SE$DEF =-1 ;DEFAULT SCREEN EFFECT
31 0000004 PN$DEF =4 ;DEFAULT PAGE
.
PS генерировалось в 64х-битной версии, если это имеет значение.
- ? Shestipalov
- 20.01.2021 12:58
Сергей, привет.
Я так понимаю — с эмуляцией Менестреля всё очень грустно? Или есть надежда?
- ? Шестипалов
- 02.01.2021 20:10
>В любом случае, проблема синхронизации связана исключительно с тем, что почти все ОС для БК хранят в памяти копии таблиц файловой системы. Так-то образ можно править на лету, без проблем.
.
В ОС для БК существует защита от ошибочной записи на подменённый диск. Т.е., отслеживается ситуация, когда пользователь вставил диск в дисковод, прочитал каталог, заменил диск в дисководе и попытался записать каталог на новый диск. При записи ОС проверяет, записывается ли каталог на тот диск, откуда он был считан. Так что пляска с бубном с правкой образа в памяти эмулятора не нужна. Для ОС на БК это будет выглядеть, как будто пользователь вынул диск из дисковода и вставил другой.
- ? Shestipalov
- 04.12.2020 22:47
https://yadi.sk/d/CtaG5M0XrGEiiQ
.
1-3-5golosa_2000.wav — в трёх счетчиках правого канала звучит CDEFGAB 5-й октавы
1gol_2000_3gol_3000_5gol_4000.wav — в трёх счетчиках правого канала звучат CDEFGAB 5-й, 6-й и 7-й октав соответственно
1golos_2000.wav — в первом счетчике правого канала CDEFGAB 5-й октавы
.
двухголосые мелодии обещали сделать завтра :-)
.
в img также есть нотный файл Синти, который это играет.
- ? Shestipalov
- 04.12.2020 08:21
Сергей, скажи, какие файлы лучше сделать? Допустим,
1 файл: последовательность нот CDEFGAB пускаем только в счётчик 1 (одноголосая мелодия)
2 файл: последовательность нот CDEFGAB в счётчики 1,3,5 (трёхголосая мелодия, только правый канал)
3 файл: последовательность нот CDEFGAB в счётчики 1,2 (двухголосая мелодия, стерео)
.
Норм будет?
- ? Shestipalov
- 03.12.2020 17:14
А стоп. Наврал. Похоже, в присланном файле Синти воспроизводил одни и те же ноты во всех голосах всех каналов, так как на запрос «1-й голос с адреса ...», «2-й голос с адреса ...» указывался один и тот же адрес. Т.е. да, все счётчики всех каналов звучали.
.
Дело в том, что у меня нет реального Менестреля, я набираю нотный текст в эмуляторе. В руководстве сказано, что при воспроизведении можно отключить один канал или больше каналов, но, если я так сделаю — воспроизведение отключается полностью. Скорее всего этого глюк эмуляции. Поэтому приходится пускать одну и ту же мелодию во все каналы.
- ? Shestipalov
- 03.12.2020 16:23
Мне пояснили насчёт каналов и счётчиков. Получается, в присланном файле звучит один счётчик в одном, левом канале.
-
1 | 2 | »
?