PDA

Просмотр полной версии : Эмулятор ДВК



Страницы : 1 2 3 4 5 6 7 [8]

Hunta
01.12.2020, 22:05
ну например набрать с 1000 адреса и 1000G
Сам спросил сам ответил.

ra3qdp
02.12.2020, 14:08
именно так и не работает. Поэтому и спрашивал. Но за несколько Ваших ответов - так и не понял.

https://cloud.mail.ru/public/3v2z/3PX2JpQHnhttps://cloud.mail.ru/public/3v2z/3PX2JpQHn

Hunta
02.12.2020, 14:28
HD (177720) disk driver v1.6 2017
SL V08.00 [SW] Сторожевых С.В. 1988
KZ V01.00 (C) ВЦ МИЭТ, НОЯБРЬ 1987

RT-11SB (Y) V05.07

.SET TT FORM

.SET TT SCOPE

.SET EDIT K52

.SET SL ON

.DAY
Время Дата
15:25:28 02-Дек-2020, Среда

.

.ASS HD6 KXX

.ASS HD1 DK

.
@ 143736
@1000/004417 5001
00001002/000001 5002
00001004/001000 60200
00001006/000400 77202
00001010/000000 77103
00001012/047161 0
@1000G
@ 001000
@P
@ 001002
@P
@ 001004
@P
@ 001006
@

ra3qdp
02.12.2020, 14:48
"по шагам" - понятно, а как запустить "на прогон"? Это ведь тестик быстродействия и надо засечь время выполнения.

Hunta
02.12.2020, 16:55
Отжать HALT

ra3qdp
02.12.2020, 20:21
спасибо - начало получаться. Но тест идет слишком долго - надо переделать программку.

ra3qdp
11.01.2021, 10:29
программка "эхо", не работает в эмуляторе. Что не так ?
1000/105737
1002/177560
1004/100375
1006/113701
1010/177562
1012/105737
1014/177564
1016/100375
1020/110137
1022/177566
1024/137

form
11.01.2021, 12:20
Что не так ?
Последняя команда незавершена - JMP @#ничего
А вообще можно сократить:
105737 177560 100375 105737 177564 100375 113737 177562 177566 766

ra3qdp
11.01.2021, 15:03
добавил в свою программку в конце 1000, запустил - висит(почему-то). Набрал Вашу - работает. Спасибо.

hobot
11.01.2021, 17:34
А вообще можно сократить:

Набрал Вашу - работает. Спасибо.

набил в отладке UKNCBTL )
1000 ИСП - и вперёд ;-)



ЛAТ

@ 1000
001000/ 000000 105737
001002/ 000000 177560
001004/ 000000 100375
001006/ 000000 105737
001010/ 000000 177564
001012/ 000000 100375
001014/ 000000 113737
001016/ 000056 177562
001020/ 000000 177566
001022/ 000000 766

SDFSDFSDFSDFDSFSDFS

ra3qdp
11.01.2021, 18:40
я именно про это и написал, вопрос был - почему не работает первая (после добавления адреса начала).

Hunta
12.01.2021, 00:39
Работает

ra3qdp
12.01.2021, 10:31
извините, это я напутал, все работает. Спасибо за помощь.

form
05.05.2021, 05:57
Выложил образ RSX-11M-PLUS V4.6 (https://pdp-11.online/~form/files/pdp-11/dvk/emul/) на эмуляторском HD.
Система включает все изменения, перечисленные здесь (https://zx-pk.ru/threads/28134-kontroller-psevdodiska-na-sd-karte-dlya-dvk-uknts-pdp-11-original-ethernet.html?p=1113574&viewfull=1#post1113574).
Для эмулятора ДВК на данный момент сделано следующее:
добавлена поддержка HD (драйвер DH) с возможностью загрузки/сохранения
добавлена поддержка крэш-драйвера DH
добавлена поддержка автоконфигурации DH
при обнаружении ВМ3 процессора SAV определяет его как 11/23+ независимо от наличия SWR (что позволяет использовать 4088Kb памяти и не наступать на возможные косяки с UNIBUS mapping)
HRC присваивает тип HD11 дискам, подключенным к HD
SYSGEN спрашивает параметры HD если нужно


Для работы требуется прописать в секции HD.INI конфигурационного файла параметр HD_InterfaceType = 3.
Также в секции Booter.ini должна быть отключена горячая загрузка.

form
05.05.2021, 21:21
Еще обновление RSX-11M-PLUS.
Теперь полная поддержка с автоконфигурацией и crash-драйвером.

Можно "выключить питание", закрыть эмулятор, потом когда нужно опять запустить и "восстановить питание".
Но к сожалению процесс не автоматизирован: чтобы можно было "восстановить питание" требуется в конфиге отключать автозагрузку. Если всегда выключать кнопкой Power прежде чем закрыть эмулятор, то в принципе можно обойтись и без автозагрузки в конфиге :)

http://pdp-11.online/~form/files/pdp-11/dvk/emul/rsxdvk.png

MiX
06.05.2021, 16:43
Когда так много терминалов, это уже немёк на DZ :)

Hunta
06.05.2021, 16:49
Когда так много терминалов, это уже немёк на DZ
Ну отчего же :) Пара четырёх-портовок плюс консольный порт :) Ну и, в принципе, можно ещё и DHV :)

form
06.05.2021, 17:02
Когда так много терминалов, это уже немёк на DZ
У меня на 11/83 первая карточка терминальная (не считая той что на проце) была DLVJ1 - 4 порта обычных DLV.
Потом появился 4-портовый DZQ, и уже после 8-портовый DHV :)

Здесь сделал вид что DLVJ1 стоит, а "родной" с адресацией не по правилам 176560/360 (его как раз автоконфиг не найдет пока все адреса до него не будут заполнены) зарезервировал под DECnet.

- - - Добавлено - - -

Я еще SWR+DR прицепил чтобы красивостями полюбоваться, а потом вспомнил что это RT-11 в явном виде в DR картинку выводит, а RSX полагается на то, что стоя на команде WAIT унибусный пульт будет показывать последние пересланные данные. Нужно пару команд добавить в SYSXT.MAC чтобы посмотреть как огоньки здесь бегабт :)

form
07.05.2021, 16:49
Обновление дистрибутива RSX-11M-PLUS V4.6 (http://pdp-11.online/~form/files/pdp-11/dvk/emul/).
В драйверах DA и DH более строго проверяется код функции.
Кроме того во время ожидания "бегающие лампочки" в явном виде показываются через регистр 177570 (если он есть). Базовая система не пересобиралась - в ней лампочки не бегают.

- - - Добавлено - - -

Проведен эксперимент по связыванию эмулятора ДВК по DECnet с SimH через TCP соединение.
Эксперимент удался.
Соединение стабильное, разрывов не наблюдается.

В файле конфигурации SimH v4 нужно настроить порт с ограничением скорости:

set dli enable lines=1
att dli0 2023;notelnet;nomessage,speed=9600
set dlo0 8b

CityAceE
04.06.2021, 08:08
Сообщение от пользователя, который не пожелал регистрироваться на форуме:



Добрый вечер.

Просто не вижу смысла в "клубных" заморочках ради нескольких сообщений.
Вот, например, скачал у вас эмулятор ДВК, просто потому что оказался на вашем сайте:
https://zx-pk.ru/threads/18351-emulyator-dvk.html
Запустил свою программу ТОР (в приложении) - она там еле шевелится, а в оригинале бегает с разной скоростью.
Видимо, не работает функция T1=SECNDS(0.), которая, насколько я помню, считывает текущее количество секунд из таймера и, таким образом, задаёт случайную задержку.
Программа TTSET не устанавливает режимы терминала и т.д.
Но разбираться что там не так и что-то выяснять уже нет ни времени, ни желания.

С уважением, Николай Дергунов

Hunta
04.06.2021, 10:21
Программа TTSET не устанавливает режимы терминала и т.д.
По тому, что программа выдаёт в справке, видно, что она рассчитана на КЦГД. КЦГД в эмуляторе Патрона нет.

AFZ
10.08.2021, 10:07
Коллеги, что-то у меня не получается включить эмуляцию перфолент. Взял файл родной default.cfg, скопировал его в ptape.cfg, в нем, вроде-бы, PC прописан и в секции [objects], и есть секция [PC.ini], и изба фигвам - 177550/ - Bus Error. Точно помню, гонял я эмуляцию перфолент, но с каким конфигом - не помню. Сильно подозреваю, что в секции [links]тоже должно быть что-то, относящееся к PC, но там, кроме MediaButton, PC нет. Отсюда вопрос: что делать?

MiX
10.08.2021, 12:29
AFZ, По перфолентам- здесь. (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=801290&viewfull=1#post801290)

AFZ
10.08.2021, 19:09
Это я видел, но понять из этого что-либо у меня не получилось. Но все же я разобрался. Оказывается, я неправильно запускал эмулятор - я пытался запустить его из командной строки с параметром в виде cfg-файла, он его принимал, но как-то криво. Если же запустить его, как и положено с ярлычка Windows, а потом из меню "Файл" скормить ему новый конфиг, все съедается нормально и работает. Более того, он где-то запоминает этот конфиг и в следующий раз с этого же ярлычка он уже запустится с новым конфигом.

vva
14.03.2022, 11:09
Ссылки на эмуляторы (как свежий так и предыдущие) не работают. Есть какие-либо другие рабочие?

form
14.03.2022, 11:34
Ссылки на эмуляторы (как свежий так и предыдущие) не работают. Есть какие-либо другие рабочие?
Похоже нововведения браузеров не все одинаково полезны.
Если скопировать ссылку и вставить в отдельном окне - работает.
Вот например http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_24.09.20_14-32.rar.
Думаю проблема решится если я добавлю имя в сертификат TLS для данного сайта.
Чуть позже сделаю.

- - - Добавлено - - -

Перевыпустил сертификат, перенес сайт под TLS, но ссылки на http: не работают - это видимо политика браузеров новая - не разрешить http ссылки из https страницы и наоборот.

Если сделать https ссылку (https://emulator.pdp-11.online/DVK/distr/DVK_Emulator_24.09.20_14-32.rar) - все работает.

Возможно где-то есть настройки браузера по теме, но лень копаться.
Нужно поменять ссылки в теме с http на https.

vva
14.03.2022, 12:29
Если скопировать ссылку и вставить в отдельном окне - работает.


https://emulator.pdp-11.org.ru/DVK/ -- Сообщение: Сайт на реконструкции.
https://emulator.pdp-11.org.ru/DVK/di...9.20_14-32.rar -- Сообщение: Not found

nslookup emulator.pdp-11.org.ru
Address: 8.8.8.8

Не заслуживающий доверия ответ:
Address: 178.205.143.174
Aliases: emulator.pdp-11.org.ru

form
14.03.2022, 12:34
Сообщение: Not found
Потому что скопирована не ссылка, а текст который вывел сайт "https://emulator.pdp-11.org.ru/DVK/di...9.20_14-32.rar", а настоящая ссылка копируется правой кнопкой мыши и выбором Copy link address (или как его там).

Я же привел рабочую ссылку выше https://emulator.pdp-11.online/DVK/distr/DVK_Emulator_24.09.20_14-32.rar - ее не нужно копировать - она нормально откроется поскольку https.

vva
14.03.2022, 12:43
OK. Работает . Спасибо.

form
14.03.2022, 19:10
Если у кого еще есть сайты на pdp-11.org.ru/pdp-11.online, и TLS не подключен - свистните - добавлю.

Xrust
28.05.2022, 13:49
form, почему-то у меня не открываются ссылки :(

Patron
22.06.2022, 18:37
почему-то у меня не открываются ссылки
Сейчас открыл эту ссылку: emulator.pdp-11.org.ru/DVK/distr/ (https://emulator.pdp-11.org.ru/DVK/distr/) - все файлы скачиваются.

form
22.06.2022, 18:43
Современные бровсеры не любят http ссылок с https страниц, поэтому если ссылка где-то вверху написана как http, нужно просто заменить на https.
Домен emulator.pdp-11.org.ru (и emulator.pdp-11.online - синоним) добавлен в сертификат, сертификат регулярно перевыпускается автоматом.

Можно также вручную скопировать в адресуню строку http ссылку - так сработает, но сервер в итоге переотправит на https.

Xrust
22.06.2022, 23:09
Сейчас открыл эту ссылку: emulator.pdp-11.org.ru/DVK/distr/ (https://emulator.pdp-11.org.ru/DVK/distr/) - все файлы скачиваются.

Теперь у меня тоже работает.

Patron
03.08.2022, 16:37
Здравствуйте! Пытаюсь составить конфиг для вашего эмулятора ДВК, что-то пока не очень выходит. Не сможете помочь?
Идея такая - точно как конфиг ДВК-3, только не встроенный терминал, а вывод на IP или COM порт.
Каналы передачи данных в эмуляторе могут разветвляться/объединяться без ограничений, поэтому можно оставить терминал как есть и просто подключить к тем же входному и выходному каналам ещё и IP/COM порт. Если хочется лишить себя возможности вводить байты с локальной клавиатуры - можно подключить локальный терминал только к выходному каналу, чтобы "параллельно" видеть, что именно сервер отправляет в порт. Также к любым каналам можно "параллельно" подключать консоль в одном из режимов "дампа" и получать (например) полный дамп байтов, приходящих в роли "данных клавиатуры" во входной канал из IP/COM порта.

Делается это в три этапа.

1. На первом этапе нужно создать интересующий объект, добавив строку создания объекта в секцию конфига [objects].

Для тренировки - создадим консоль, которая будет потом в режиме дампа показывать всё, что мы набираем на клавиатуре локального терминала.



[objects]
Con2 = Ядро:Console


Con2 - это имя экземпляра объекта, которое должно быть уникальным. Поэтому, если в дальнейшем нам пондобятся в этом конфиге ещё консоли - надо будет придумать для них другие уникальные имена (например: Con3, Con4 и т.д.).


2. На втором этапе нужно задать настройки объекта в секции конфига с именем этого объекта.

Как только мы первый раз откроем в эмуляторе конфиг, создающий заказанный нами новый экземпляр консоли - этот экземпляр сам при создании разместит в конфиге секцию со своим именем, куда сам запишет все свои настраиваемые параметры со значениями по-умолчанию. Но никто не мешает при добавлении нового объекта в конфиг сразу добавить и секцию настроек этого объекта.



[Con2.ini]
TabTitle = "Byte Dump"
InitialStateOf[StatusBar] = 0
SaveChangesFor[StatusBar] = 0
InitialStateOf[ControlBar] = 0
SaveChangesFor[ControlBar] = 0
InitialStateOf[Log]=0
SaveChangesFor[Log]=0
DumpMode=3
SeparateWindow_X0_px=0
SeparateWindow_Y0_px=0
SeparateWindow_DX_px=800
SeparateWindow_DY_px=600
InitialStateOf[SeparateWindow]=0
SaveChangesFor[SeparateWindow]=1
PrinterMode=0
Old_Logs_Mode=0


Подробнее про режимы дампа консоли можно посмотреть ЗДЕСЬ (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=562746&viewfull=1#post562746).


3. На третьем этапе нужно подключить новый объект к другим объектам эмулятора, добавив строку (или строки) подключения в секцию конфига [links].

Для получения дампа ввода с локального терминала, создаваемого в конфиге ДВК-3.cfg - добавления в конфиг будут следующими:



[links]
VT52 > Con2



Если теперь загрузить конфиг в эмуляторе и после начала эмуляции нажать один раз ввод, то содержимое окна локального терминала будет таким:

https://emulator.pdp-11.org.ru/pics/DVK3_1.png


А содержимое окна добавленной нами консоли будет таким:

https://emulator.pdp-11.org.ru/pics/DVK3_2.png


Отредактированный конфиг: ДВК-3+.cfg.zip (https://emulator.pdp-11.org.ru/misc/ДВК-3+.cfg.zip)


Теперь создадим объект для работы с COM-портом и подключим его ко входному и выходному каналам терминального порта эмулируемой ДВК.


1. Создаём объект ComPort.



[objects]
ComPort = Ядро:Terminal_ComPort_Adapter



2. Задаём настройки COM-порта.



[ComPort.ini]
PortName="COM5"
InitialStateOf[ShowPortUse]=1
SaveChangesFor[ShowPortUse]=1
InitialStateOf[StopReading]=0
SaveChangesFor[StopReading]=0
MinimalBreakTime_MKS=3000


Остальные настройки COM-порта находятся в файле Terminal_ComPort_Adapter.ini и любая из них может быть переназначена прямо в секции настроек объекта в конфиге.


3. Подключаем COM-порт к эмулируемому порту терминала.



[links]
TerminalPort <=> ComPort


Теперь COM-порт подключен полностью параллельно локальному терминалу.

Переключим консоль с дампом на ввод из COM-порта:



[links]
ComPort > Con2


Отредактированный конфиг: ДВК-3++.cfg.zip (https://emulator.pdp-11.org.ru/misc/ДВК-3++.cfg.zip) (в том же архиве есть конфиг COM_4.cfg для "проверки связи" через виртуальную пару портов COM5-COM4, который нужно загрузить в отдельном эмуляторе терминала).


https://emulator.pdp-11.org.ru/pics/DVK3_3.png

Видно, что эмулятор превратился в сервер и слушает порт COM5.


То же самое можно сделать и для IP-портов.

Вариант конфигов сервера и клиента для связи через порт 8023: ДВК-3+++.cfg.zip (https://emulator.pdp-11.org.ru/misc/ДВК-3+++.cfg.zip)

Radon17
03.08.2022, 18:57
Patron, Огромнейшее СПАСИБО за столь ёмкий и подробный ответ!!!!

Woxem
06.08.2022, 06:14
А можете добавить функцию передачи бинарного файла в консоль без ожидания @ отдельной кнопкой

Hunta
06.08.2022, 12:17
А можете добавить функцию передачи бинарного файла в консоль без ожидания @ отдельной кнопкой
Это уже обсуждалось, должен быть на другой стороне функционал, который его примет, а его нет

Woxem
07.08.2022, 21:06
У процессора м2 вшит этот функционал набираем 177560L и все можно скармливать absloader следо программу в lda формате
На процессоре 1801вм* нажимает L с опущенным пультом и меняем последнюю ячейку ОЗУ 157776 на 177560 поднимаем пульт и нажимаем P

Patron
03.09.2022, 21:37
У процессора м2 вшит этот функционал набираем 177560L и все можно скармливать absloader следо программу в lda формате
На процессоре 1801вм* нажимает L с опущенным пультом и меняем последнюю ячейку ОЗУ 157776 на 177560 поднимаем пульт и нажимаем P
Очень интересно, я про такое не знал.

Для проверки - сделал вариант перфоввода, который не на шину садится, а отправляет двоичное содержимое выбранного файла в байтовый канал. Всё заработало, но вылезла небольшая проблема - перфоленточный загрузчик берёт из LDA-файла информацию о длине данных и загружает с ленты ровно столько данных, сколько там указано, поэтому в конце перфолент дековцы взяли моду набивать дополнительную информацию, которая при создании образов перфолент попадает в эти образы. Поэтому, чтобы образы перфолент годились для "слепой загрузки через порт терминала" - их нужно подрезать.

Например, если через порт терминала загружать комплектный образ перфоленточного Бейсика - получается так:


@L 157744
@157776/177550 177560
@P 157500
@P
PDP-11 BASIC, VERSION 007A
*O B$$BB$$BB$$BL\



А если отрезать у образа последний блок - получается так:


@L 157744
@157776/177550 177560
@P 157500
@P
PDP-11 BASIC, VERSION 007A
*O



И когда после старта Бейсика нажимаем <Enter> - у родного образа Бейсик думает, что мы хотим выбрать опции:


@L 157744
@157776/177550 177560
@P 157500
@P
PDP-11 BASIC, VERSION 007A
*O B$$BB$$BB$$BL\
DO YOU NEED THE EXTENDED FUNCTIONS?
HIGH-SPEED READER/PUNCH?
SET UP THE EXTERNAL FUNCTION?
MEMORY?
READY


А у подрезанного образа - результат получается как при загрузке ленты через родной перфоввод:


@L 157744
@157776/177550 177560
@P 157500
@P
PDP-11 BASIC, VERSION 007A
*O
READY

Hunta
04.09.2022, 12:38
перфоленточный загрузчик берёт из LDA-файла информацию о длине данных и загружает с ленты ровно столько данных, сколько там указано

Не скажу за вышеуказанный загрузчик (но подозреваю, что ведёт себя так же), но,..

Уточнения

Вводная часть

Формат абсолютного загрузчика (тот самый LDA) - это некоторое количество записей. Структура записи - слово-заголовок (фиксированно - 1, а по байтово - 0 и 1), слово-счетчик байт, слово-адрес загрузки, байты (без проблем может быть нечетное количество), байт контрольной суммы. В счетчик входят - заголовок, сам счётчик и адрес загрузки, но не входит контрольная сумма - то есть количество байт данных - это счётчик-6.

Но есть нюансы.

Если счётчик равен шести - это запись о стартовом адресе (может быть нечётным - традиционно - 1, тогда будет останов, с выходом в пульт, если он есть).

Если счётчик равен пяти (по документации, реально я таких файлов пока не видел и вроде как стандартный absloader это не поймёт) - адрес будет в один байт и там будут содержаться биты 16 и 17 (вроде, в битах 0 и 1) адреса - для загрузки больше 64 кб (понятно, пойдёт в расширенную) или (просто) в расширенную память.

Про absloader

Absloader написан так, что он грузит данные, пока не дойдет до записи с длиной 6 байт, после чего переходит (или не переходит, если адрес нечётный) по адресу из этой записи, а остаток ленты, соотвественно - absloader-ом просто игнорируется.

Из замеченного - перед заголовком или после байта контрольной суммы может идти сколько угодно нулей (главное, что бы был считан хотя бы один нулевой байт) - они просто игнорируется, пока не попадём на байт, равный 1.

И я встречал варианты LDA файлов, которые разные по длине, но если очистить вот от этих лишних нулей - будут один в один. Поэтому в DisAsm-11 неожиданно (он не планировался, но остался от исследований) получился функционал - он создаёт "очищенный" вариант LDA файла, в котором нет этих нулей и - нет хвоста файла за стартовой записью.

Ну и DisAsm-11 не обрабатывает запись с длиной 5 - пока не понятно - чего с ней и как - в доках очень краткий абзац на эту тему. Попадётся или кто пришлёт - тогда и посмотрим - чего там :)

- - - Добавлено - - -

Вдогонку. Посмотрел по исходника - уточнение - DisAsm-11 создаёт "очишенный" LDA - если что то удалось почистить - то есть или встретились "лишние" нули или за стартовой записью что-то было :)

Patron
04.09.2022, 17:19
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_04.09.22_00-03 (https://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_04.09.22_00-03.rar)

Изменения:

1. В модуль Main_module.em добавлен объект BinSender, позволяющий отправить двоичное содержимое любого файла размером до 128 Кб в байтовый канал (в терминальный порт эмулятора, в IP-порт или COM-порт). Если установить для состояния Load этого объекта начальное значение 1 - отправка файла будет начинаться сразу после выбора образа файла в меню кнопки подключения образов.



[BinSender.ini]
InitialStateOf[Load] = 1


Это позволяет не использовать отдельную интерфейсную кнопку для отправки подключенного файла, хотя создать и использовать такую дополнительную кнопку при желании можно.

После начала отправки файла - прервать отправку или узнать о состоянии отправки невозможно, поэтому при отправке крупных образов перфолент по медленным каналам - нужно набраться терпения и понимать, что происходит.

2. Пример использования объекта BinSender добавлен в файл конфигурации default.cfg. Добавлен файл конфигурации ДВК-1_MX40+PC.cfg, позволяющий потренироваться в запуске перфолент на ДВК-1 как через штатный перфоввод, так и через порт терминала.

3. Образы перфолент в каталоге Paper Tapes\ заменены на совместимые с загрузкой через порт терминала.

MiX
05.09.2022, 23:06
После начала отправки файла - прервать отправку или узнать о состоянии отправки невозможно, поэтому при отправке крупных образов перфолент по медленным каналам - нужно набраться терпения и понимать, что происходит.
Если добавить в настройки BinSender > Dump для просмотра, разве не поможет?


так и через порт терминала.
Для этого нужен загрузчик типа DD.

Patron
07.09.2022, 20:13
Если добавить в настройки BinSender > Dump для просмотра, разве не поможет?
У адаптеров IP- и COM-портов в эмуляторе безразмерные буфера, куда они "мгновенно проглатывают" любые наборы байтов от объектов эмулятора из откуда уже по прерываниям передают через порты.



Для этого нужен загрузчик типа DD.
Имелось в виду - запустить на ДВК-1 или ДВК-2 любую программу из образа перфоленты.


Например, запуск перфоленточного Бейсика на ДВК-1 через порт терминала выглядит так:


1. Набрать в пульте (при выключенном таймере) команду "177560L" :

https://emulator.pdp-11.org.ru/pics/BIN-1.png



2. Выбрать в меню подключения образов для устройства BIN образ "Paper Tapes\LSI-11-AbsLoader.bin" :

https://emulator.pdp-11.org.ru/pics/BIN-2.png



3. Нажать на клавиатуре клавишу <P> :

https://emulator.pdp-11.org.ru/pics/BIN-3.png



4. Выбрать в меню подключения образов для устройства BIN образ "Paper Tapes\DEC-11-AJPB-PB.bin", после чего через 10 секунд запустится загруженный из образа перфоленты Бейсик :

https://emulator.pdp-11.org.ru/pics/BIN-4.png

==========

Нужно отметить, что при запуске перфолент через устройство PC - порядок действий должен быть другим. Надо сначала выбирать образ ленты для устройства PC и только после этого вводить команды с клавиатуры. Т.е. сначала подключить "Paper Tapes\LSI-11-AbsLoader.bin" к PC, потом набрать с клавиатуры "177560L", затем после появления приглашения пульта - сначала подключить к PC образ "Paper Tapes\DEC-11-AJPB-PB.bin" и только потом нажать клавишу <P>.

MiX
07.09.2022, 21:19
2. Выбрать в меню подключения образов для устройства BIN образ "Paper Tapes\LSI-11-AbsLoader.bin" :

Выбираю.

@177560L 157500
@
157502/024646
157504/010705
157506/062705 м
халт инструцтион
ю
157510/000112 м
халт инструцтион
юб
¤Е
юб
¤%
юм
халт инструцтион
юю
000112/000000
000114/177777 ю
177777/
бус еррор
юб
¤

ю7м
халт инструцтион
юм
халт инструцтион

И всё, дальше не реагирует.

Patron
07.09.2022, 21:25
И всё, дальше не реагирует.
Когда я готовил предыдущее сообщение - у меня почти так же получилось, но примерно через 15 секунд раздумий я понял, что пропустил пункт 3 - ПОСЛЕ появления промпта пульта @ и ДО выбора образа перфоленты с Бейсиком - нужно нажать на клавиатуре "P".

MiX
07.09.2022, 21:35
Когда я готовил предыдущее сообщение - у меня почти так же получилось, но примерно через 15 секунд раздумий я понял, что пропустил пункт 3 - ПОСЛЕ появления промпта пульта @ и ДО выбора образа перфоленты с Бейсиком - нужно нажать на клавиатуре "P".
К чему это сообщение? Я не доходил до пункта 3.

Patron
07.09.2022, 21:47
Я не доходил до пункта 3.

Когда на экране появился адрес останова 157500 и промпт пульта @ - это означает, что весь код абсолютного загрузчика считан из порта терминала в память подпрограммой выполнения команды L пульта. Когда я грузил через порт терминала необрезанный образ перфоленты - следом продолжали сыпаться передаваемые в порт терминала не относящиеся к делу завершающие байты из образа ленты. Но когда я обрезал образ ленты загрузчика до 406 байт, после выхода команды L в пульт - дополнительного мусора уже не приходило.

Мы видим, что команда пульта L штатно загрузила все байты абсолютного загрузчика и штатно вышла в пульт. Если после этого ничего не сыпется в порт терминала - как вообще может что-то происходить, ведь для этого на вход пульта из порта терминала должны поступить ещё какие-то байты..

MiX
07.09.2022, 22:26
Когда на экране появился адрес останова 157500 и промпт пульта @ - это означает, что весь код абсолютного загрузчика считан из порта терминала в память подпрограммой выполнения команды L
Тогда зачем абсолютный загрузчик загружать повторно? У меня выходит на адрес останова сразу после ввода 177560L.

- - - Добавлено - - -


и штатно вышла в пульт.
Не совсем, нет перевода строки.

@177560L 157500
@

- - - Добавлено - - -

Это относится к кофигурации ДВК-2, в кофигурации ДВК-1 удалось загрузить Бейсик.

Patron
07.09.2022, 22:36
Это относится к кофигурации ДВК-2, в кофигурации ДВК-1 удалось загрузить Бейсик.
Для ДВК-2 надо сначала при нажатой кнопке "Пульт" нажать L, потом изменить содержимое памяти прошивки, затем продолжить выполнение прошивки командой P и лишь потом перейти к пункту 2 "методички загрузки перфоленты" :


@L 157744
@157776/177550 177560
@P 157500
@P
PDP-11 BASIC, VERSION 007A
*O

MiX
07.09.2022, 23:43
затем продолжить выполнение прошивки командой P и лишь потом перейти к пункту 2 "методички загрузки перфоленты" :
Перед P отжать кнопку "Пульт".
Да работает.

Но для реальной ситуации это годится только где есть контроллер перфоввода. Без него на команду L будет сообщение DEVICE,S NOT AVAILABLE. Как вариант 1801ВП1-033 можно перевести на адрес 177550 и вектор 70.

Woxem
08.09.2022, 07:03
Или с отжатым пультом нажать L потом в верхнем адресе ОЗУ 157776 поменять значение на 177560 и нажать Р загрузка будет через порт терминала

Patron
08.09.2022, 11:51
Или с отжатым пультом нажать L потом в верхнем адресе ОЗУ 157776 поменять значение на 177560 и нажать Р загрузка будет через порт терминала
Думаю - это потому так, что в эмулируемой конфигурации не только присутствует на шине порт устройства PC, но к нему изначально подключен образ ленты абсолютного загрузчика. Поэтому если при эмуляции ДВК-2 в такой конфигурации просто нажать L - прошивка загрузит уже подключенный образ с кодом абсолютного загрузчика через штатный перфоввод.



Но для реальной ситуации это годится только где есть контроллер перфоввода. Без него на команду L будет сообщение DEVICE,S NOT AVAILABLE.
Действительно, если на шине ДВК-2 не отвечает адрес 177550 - заставить прошивку грузить перфоленту через порт терминала не выйдет:



@L DEVICE'S NOT AVAILABLE
@157776/154472



Но если повесить на единственный адрес шины 177550 доступное по чтению фиктивное устройство эмулятора CPUCSR - команда L перестаёт ругаться и можно патчить память и грузить перфоленту:



[objects]
CPUCSR = CPU_module:CPUCSR

[links]
bus & CPUCSR

[CPUCSR.ini]
CPUCSR_Address = 0177550




@L 157744
@157776/177550 177560
@P 157500
@P
PDP-11 BASIC, VERSION 007A
*O

MiX
08.09.2022, 20:23
Поэтому если при эмуляции ДВК-2 в такой конфигурации просто нажать L - прошивка загрузит уже подключенный образ с кодом абсолютного загрузчика через штатный перфоввод.
Именно так и произошло, потому при запуске эмулятора втихаря подключается образ ленты не смотря на то что в предыдущий раз образа не было.
Я закомментировал в настройках PC0 = Paper Tapes\LSI-11-AbsLoader.bin


Но если повесить на единственный адрес шины 177550 доступное по чтению фиктивное устройство эмулятора CPUCSR - команда L перестаёт ругаться и можно патчить память и грузить перфоленту:

Это излишне. В реале я переключил SA1.7 и SA1.8 и получил адрес перфоввода и перфоратора на МС1201.02


Например, запуск перфоленточного Бейсика на ДВК-1 через порт терминала выглядит так:
Для альтернативной прошивки 055alt такой метод годится.

MiX
14.09.2022, 23:55
Патрон здравствуйте.


Но если повесить на единственный адрес шины 177550 доступное по чтению фиктивное устройство эмулятора CPUCSR

Я бы попросил сделать регистр 177546 с отключением сетевого таймера, как это делает плата СМ1. Такая возможность давала бы удаленно отключать таймер если это необходимо. Например для загрузки перфоленты.

Спасибо.

***
В реале получается так:
Включаем ДВК в составе которого плата СМ1.
Включаем кнопку таймер.
Далее-

@T4
*** ТЕСТ ТЕРМИНАЛА ***
ВВЕДИТЕ СЛЕДУЮЩИЕ СИМВОЛЫ:
1 2 3 4 J C U K
ПРОВЕРКА ОКОНЧЕНА

@177546/000000 100
@T4
*** ТЕСТ ТЕРМИНАЛА ***
ВВЕДИТЕ СЛЕДУЮЩИЕ СИМВОЛЫ:
1 2 3 4 J C U K
1 2 3 4 000404
@177546/000000 0
@T4
*** ТЕСТ ТЕРМИНАЛА ***
ВВЕДИТЕ СЛЕДУЮЩИЕ СИМВОЛЫ:
1 2 3 4 J C U K
ПРОВЕРКА ОКОНЧЕНА

MiX
17.09.2022, 14:21
Одна особенность платы СМ1 (а точнее платы М6) в том что плате М6 для запуска необходим таймер. Даже если инвертировать функцию регистра, т.е. при включении по умолчанию таймер будет разрешён, то при запрете (запись в регистр) обратно будет не вернуть, процессор М6 остановится.

Что касается эмулятора то процессорным платам не требуется наличие таймера для запуска. Однако приоритет кнопки Таймер думаю определить так:
Запуск эмулятора видимо придется сделать с записью в регистр 177546. Далее если кнопка Таймер включена горит зелёным цветом. При этом если очистить регистр 177546 (запрет таймера) то кнопка остается нажатой но загорается жёлтым цветом и меняется название кнопки "Таймер откл.". Если кнопку отжать и нажать заново то загорается зелёным и происходит теневая запись в регистр 177546. В реале конечно такого нет, но этот вариант как компромисс между нажатой кнопкой и регистром.

Или сделать кнопку не фиксируемой. Просто меняет цвет и статус, повторное нажатие даёт зелёный и запись в регистр.

Разумеется это только для той конфигурации эмулятора где есть BDV11.

Hunta
18.09.2022, 00:34
Одна особенность платы СМ1 (а точнее платы М6) в том что плате М6 для запуска необходим таймер.
Возможно, при использовании СМ1 (BDV11), но самому М6 таймер вроде как по барабану - я его запускал и грузил без таймера

Patron
04.10.2022, 15:25
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_16.10.22_18-03 (https://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_16.10.22_18-03.rar)

Изменения:

1. Объекту MS7004_Converter добавлен параметр LK201_Mode со значением по-умолчанию 0. Пример - в файле конфигурации MS7004_Converter.cfg. Для подключения клавиатуры LK201 - значение параметра нужно изменить на 1:



[MS7004_Converter.ini]
LK201_Mode = 1

Patron
16.10.2022, 18:17
Релиз эмулятора обновлён. Исправлена ошибка - при замене таблицы скан-кодов МС7004 для LK201 была пропущена буква "L".

Hunta
25.06.2023, 14:28
Мне кажется, не совсем удачное поведение эмулятора, если привязывать HD к абсолютному пути, но без имени устройства, то есть вида \Dir1\Dir2 (как и \Dir1\Dir2\). Эмулятор добавляет в начало каталог, где располагается pdp11.exe (вроде) и получается фигня. Лучше или просто использовать путь как есть или добавлять только имя устройства, где располагается pdp11.exe или имя устройства от текущего (при запуске pdp11.exe) каталога

- - - Добавлено - - -

И вот в этом куске кода из драйвера HD пятой версии ошибка:


10$:
.IF EQ MMG$T
Mov (R2)+, 2(R3) ; Load data word from user buffer
.IFF
Call @$GTBYT ; Get even byte
Mov (SP)+, (PC)+
Word: .Byte 0
Byte1: .Byte 0
Call @$GTBYT ; Get odd byte
MovB (SP)+, Byte1
Mov Word, 2(R3) ; Send word to device
.ENDC

Судя по всему, надо так:


.ENABL LSB

10$:
.IF EQ MMG$T
Mov (R2)+, 2(R3) ; Load data word from user buffer
.IFF
Call @$GTBYT ; Get even byte
Mov (SP)+, (PC)+
Word: .Byte 0
Byte1: .Byte 0
Call @$GTBYT ; Get odd byte
MovB (SP)+, Byte1
Mov Word, 2(R3) ; Send word to device
.ENDC

.DSABL LSB

Patron
27.06.2023, 12:21
Мне кажется, не совсем удачное поведение эмулятора, если привязывать HD к абсолютному пути, но без имени устройства, то есть вида \Dir1\Dir2 (как и \Dir1\Dir2\). Эмулятор добавляет в начало каталог, где располагается pdp11.exe (вроде) и получается фигня.Согласен.



И вот в этом куске кода из драйвера HD пятой версии ошибка
В драйвере для контроллера HD v4 - такая же ошибка. В драйверах для контроллеров v1, v2 и v3 ошибки нет.

Hunta
27.06.2023, 12:46
Согласен.
Если получится поправить - будет супер :) Заранее спасибо!


В драйвере для контроллера HD v4 - такая же ошибка.
Там не смотрел :) Да и, как оказалось по результатам своих проверок, V5 мне не подошла, остался на V2, а там при сборке ошибки не вылезло - то есть да, ошибки нет

- - - Добавлено - - -


или имя устройства от текущего (при запуске pdp11.exe) каталога
Мне кажется, вот этот вариант будет оптимальным - достаточно часто запускаю pdp11 по абсолютному пути с другого диска

- - - Добавлено - - -

Кстати, путь вида ..\dir\file проходит без проблем, но тут точно добавляется имя диска, где расположен pdp11.exe.
И тут тоже мне видится, что более правильным будет добавление диска с текущего пути.

gid
27.06.2023, 16:43
Тогда в эмуляторе нужно сделать переменную WorkPath, в которой хранить абсолютный путь к рабочей папке, из которй был запущен эмулятор с абсолютным путём из другого места. И уже к ней добавлять всякие относительные пути типа \Dir1\Dir2 или "..\Dir1\Dir2"

Hunta
27.06.2023, 17:33
И уже к ней добавлять всякие относительные пути типа \Dir1\Dir2
Такой вариант - нет, здесь надо добавлять только букву дисковода.

- - - Добавлено - - -

Вопрос возник из такого сценария - у меня два диска, на одном - рабочее, на втором - копия, куда я периодически сбрасываю с рабочего. Но иногда запускаю и с копийного. И вот что бы не править абсолютный путь... Оставить только \Dir1\Dir2 - без буквы. И обломался..

Patron
22.08.2023, 17:19
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_22.08.23_16-43 (https://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_22.08.23_16-43.rar)

Изменения:

1. Исправлена ошибка в исходниках драйверов контроллеров HD v4 и HD v5. Исправленные варианты находятся в каталогах "HD Sources\v4.1\" и "HD Sources\v5.1\".

2. Теперь, если любой записанный в файле конфигурации путь начинается с символа "\" - при подключении ресурса в начало пути будет добавлена буква локального диска или адрес сетевого ресурса, откуда загружен конфиг.

Например, если подключение устройств HD в конфиге описано так:



[HD.ini]
HD0 = HDSYS.DSK
HD1 = WorkDir\
HD2 = \FTP\
HD3 =
HD4 =
HD5 =
HD6 =
HD7 =


То при загрузке такого конфига из любого каталога на устройстве "G:" - к приводу HD2 будет подключена папка "G:\FTP\", а при загрузке этого же конфига из любого каталога сетевого диска с адресом "\\E2180\g" - к приводу HD2 будет подключена папка "\\E2180\g\FTP\".

Hunta
22.08.2023, 17:46
СУПЕР!!!! СПАСИБО БОЛЬШОЕ!!

Woxem
25.08.2023, 07:38
А можете расширить допустимую зону ОЗУ до 173776?

Patron
25.08.2023, 17:17
А можете расширить допустимую зону ОЗУ до 173776?
Сейчас для ДВК-1 и ДВК-2 поддерживается максимальный размер ОЗУ 60 Кб, т.е. до адреса 167776. С адреса 173000 начинается ПЗУ загрузчика, поэтому дальше адреса 172776 ОЗУ не расширить. Можно добавить настройки "RAM_Size_Kb = 61" (с верхним адресом 171776) и "RAM_Size_Kb = 62" (с верхним адресом 172776), но есть ли в этом практический смысл?

Woxem
26.08.2023, 11:39
Я просто изучаю одну замудреную систему где на шине с 170000 до 173776 висит окно шины другой pdp-11 машины (адаптер мержпроцессорный) хотелось бы чтобы я мог эмулировать это окно для анализа кода программы

Patron
28.08.2023, 16:09
Я просто изучаю одну замудреную систему где на шине с 170000 до 173776 висит окно шины другой pdp-11 машины (адаптер мержпроцессорный) хотелось бы чтобы я мог эмулировать это окно для анализа кода программы
Тогда лучше использовать отдельное устройство с таким диапазоном адресов на шине.

В прилагаемом архиве: BusRegion_module_v1.rar (https://emulator.pdp-11.org.ru//misc/BusRegion_module_v1.rar) находится модуль BusRegion_module.em, позволяющий создавать при эмуляции объекты типа BusRegion, эмулирующие на шине области ОЗУ любого размера, начиная с любого адреса.

Пример использования - в файле конфигурации: DisAsm - VM2 - BusRegion.cfg. Для правильной загрузки данного конфига - файл конфигурации и файл модуля BusRegion_module.em должны находиться в основном каталоге эмулятора.

Woxem
30.08.2023, 07:35
Спасибо буду пробовать.

SuperMax
13.04.2024, 14:42
возможно баг
версию пробовал 0.97k

также взял сборку
DVK_Emulator_22.08.23_16-43 (0.97p)
при выборе в меню любого конфига эмулятор закрывается
винда-10ка 64 бита

ZEman
13.04.2024, 16:21
у меня любой конфиг нормально открывается в версии DVK_Emulator_22.08.23_16-43 (0.97p)
также использую виндовс 10 professional х64

Hunta
18.04.2024, 22:11
0.97p, 0.97o на Windows 2022 - никаких проблем

ZEman
02.10.2024, 16:16
Patron, скажите пожалуйста, не заброшен ли ваш эмулятор ?
прошло уже больше года а новых выпусков нет.
не хотелось бы чтоб данный проект исчез.

Patron
02.10.2024, 19:02
прошло уже больше года, а новых выпусков нет.
не хотелось бы чтоб данный проект исчез.
В смысле не "исчез", а "заглох". Конечно, не хотелось бы.

Недавно я даже обновил toolchain с VS2005 на VS2010. Оказалось, что VS2010 даёт самый быстрый (на моих компах) код - на 10% быстрее VS2012 и VS2013, на 15% быстрее VS2015 и на 20% быстрее VS2017 и VS2019.

Но если начинать что-то программировать - логичнее сначала добавить в DSK-плагин поддержку образов всех оставшихся операционок PDP-11 (RSX, RSTS/E, DEMOS, LSX, Unix v1-v7, ULTRIX, System III, System V, BSD v1-v4).

rst
02.10.2024, 19:46
Недавно я даже обновил toolchain с VS2005 на VS2010. Оказалось, что VS2010 даёт самый быстрый (на моих компах) код - на 10% быстрее VS2012 и VS2013, на 15% быстрее VS2015 и на 20% быстрее VS2017 и VS2019.А на сколько %% медленнее чем VS2008 и VS2005?

Patron
03.10.2024, 17:58
А на сколько %% медленнее чем VS2008 и VS2005?
VS2008 мне лень было проверять, а результат компиляции VS2005 работает на моих компах примерно на 5% медленнее, чем у VS2010.

Получается примерно такое распределение результатов компиляции по скорости работы:

VS2010 - 100%
VS2005 - 95%
VS2012 - 90%
VS2013 - 90%
VS2015 - 85%
VS2017 - 80%
VS2019 - 80%

rst
03.10.2024, 21:08
Получается примерно такое распределение результатов компиляции по скорости работы:Получается одно из 2-х:
или все ваши компы - уровня 2010-го;
или после 2010-го - компиляторы VS не улучшаются, а деградируют.
;)

Patron
04.10.2024, 17:46
или после 2010-го - компиляторы VS не улучшаются, а деградируют.
Можно проверить.

Вот ссылки на эмулятор RT-11, откомпилированный разными версиями VS:

rt11_vs2019 (https://emulator.pdp-11.org.ru/misc/rt11_vs2019.zip)
rt11_vs2015 (https://emulator.pdp-11.org.ru/misc/rt11_vs2015.zip)
rt11_vs2012 (https://emulator.pdp-11.org.ru/misc/rt11_vs2012.zip)
rt11_vs2010 (https://emulator.pdp-11.org.ru/misc/rt11_vs2010.zip)

Можно сделать текстовый файл с именем dhry.com, содержащий:



DHRY
DHRY
DHRY
DHRY
DHRY



Скопировать в каталог с этим файлом exe-файлы эмулятора из архивов и запустить их все по очереди командами типа:

rt11_vs2019.exe @dhry >dhry_2019.txt
rt11_vs2015.exe @dhry >dhry_2015.txt
rt11_vs2012.exe @dhry >dhry_2012.txt
rt11_vs2010.exe @dhry >dhry_2010.txt

После каждого запуска появится пустое окно консоли Windows, которое повисит минуту, пока эмулятор выполняет тесты DHRY, а потом окно консоли закроется и в каталоге появится файл с результатами теста.

shattered
04.10.2024, 18:41
Получается одно из 2-х:
или все ваши компы - уровня 2010-го;
или после 2010-го - компиляторы VS не улучшаются, а деградируют.

любопытно, какие оптимизации включены/выключены

Patron
05.10.2024, 01:28
любопытно, какие оптимизации включены/выключены
У всего солюшена:

Use Link Time Code Generation


У проекта эмулятора команд:

Full Optimization (/Ox)
Any Suitable (/Ob2)
No
Favor fast code (/Ot)
Yes (/Oy)
No
Yes (/GL)


У проекта библиотеки:

Maximize Speed (/O2)
Any Suitable (/Ob2)
Yes (/Oi)
Favor fast code (/Ot)
Yes (/Oy)
No
No


Если у библиотеки изменить последний пункт оптимизации на "Yes (/GL)" - программа собирается без проблем, но сразу после запуска молча завершается.

shattered
05.10.2024, 13:30
дальше путь в профайлер, видимо?

может быть, оптимизатор стал генерить неудачный код для моделей процессоров, которые у вас есть

Patron
05.10.2024, 17:11
может быть, оптимизатор стал генерить неудачный код для моделей процессоров, которые у вас есть
Можно проверить.

Вот ссылки на эмулятор RT-11, откомпилированный разными версиями VS:

rt11_vs2019 (https://emulator.pdp-11.org.ru/misc/rt11_vs2019.zip)
rt11_vs2015 (https://emulator.pdp-11.org.ru/misc/rt11_vs2015.zip)
rt11_vs2012 (https://emulator.pdp-11.org.ru/misc/rt11_vs2012.zip)
rt11_vs2010 (https://emulator.pdp-11.org.ru/misc/rt11_vs2010.zip)

Можно сделать текстовый файл с именем dhry.com, содержащий:



DHRY
DHRY
DHRY
DHRY
DHRY



Скопировать в каталог с этим файлом exe-файлы эмулятора из архивов и запустить их все по очереди командами типа:

rt11_vs2019.exe @dhry >dhry_2019.txt
rt11_vs2015.exe @dhry >dhry_2015.txt
rt11_vs2012.exe @dhry >dhry_2012.txt
rt11_vs2010.exe @dhry >dhry_2010.txt

После каждого запуска появится пустое окно консоли Windows, которое повисит минуту, пока эмулятор выполняет тесты DHRY, а потом окно консоли закроется и в каталоге появится файл с результатами теста.

ZEman
19.04.2025, 19:14
to be continued ?

Patron
20.04.2025, 15:46
to be continued ?
Пока желающих не нашлось.

Patron
02.05.2025, 12:40
Прогнал серию тестов быстродействия (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=1204637&viewfull=1#post1204637) на процессоре i3 8100T.

Самый быстрый (с большим отрывом от конкурентов) код по-прежнему оказался у результата компиляции VS2010.

AlecV
19.12.2025, 13:58
Коллеги, извините за некропостинг, прочитал большую часть из 184 страничек этой темы и устал :)
Объясните пожалуйста, как правильно настроить кнопку NUMLOCK чтобы она работала как GOLD в K52 ?
Я по всякому менял параметры, относящиеся к NUMLOCK, добился странной ситуации, что индикатор
на клавиатуре PC хаотично мигает пока запущен эмулятор...
Подскажите доку ?

kibertorm
22.12.2025, 07:58
Пытаюсь запустить игру КОТ на PDP-11 в SIMH

Использую SIMH с поддержкой ДВК:
https://github.com/shattered/simh/tree/simh-dvk
(на оригинальном такая же ошибка)




;v1:
set CPU 11/23+
set CPU 256K
---
;v2:
set LPT disable
set DZ disable
set cpu 11/23 256k cis idle
---
SET RL ENABLE
ATTACH RL0 rl0.dsk

SET RK ENABLE
ATTACH RK games.dsk
BOOT RL0

Образы дисков:
http://astio.ciotoni.net/tetris/rl0.dsk
http://astio.ciotoni.net/tetris/games.dsk

Загружаюсь в RT-11, дальше пытаюсь запустить игру так:

.run rk:cat.sav


Получаю ошибку:

?MON-F-Trap to 4 015406

как правильно запустить игру?

Hunta
22.12.2025, 09:30
По адресу 15400 идет обращение в регистру 177716. Насколько я помню - это регистр есть в УКНЦ (что-то связанное со звуком), так что игра расчитана на запуск на УК-НЦ.

Alex_K
22.12.2025, 09:55
как правильно запустить игру?
Эта игра предназначена для БК-0011М с ОС БК-11.

Patron
23.12.2025, 01:29
Объясните пожалуйста, как правильно настроить кнопку NUMLOCK чтобы она работала как GOLD в K52 ? Для этого в конфиге в секции [VT52.ini] нужно добавить параметр Use_NumLock_as_PF1=1 :


[VT52.ini]
TabTitle=""
Use_NumLock_as_PF1 = 1
nFocusOnFirstOutput = 1
CURSOR_Y_START_% = 85
ANSI_STR_FOR_KEY[F12] = "f12 "



Если теперь запустить BASIC.SAV и после появления приглашения READY нажать <NumLock>, то результат будет такой:


.BASIC
BASIC-11/RT-11 V02-03Y
OPTIONAL FUNCTIONS (ALL, NONE, OR INDIVIDUAL)?

READY
$P



Подскажите доку ?
Настройки клавиатуры (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=476600&viewfull=1#post476600).

AlecV
26.12.2025, 15:14
Patron, Спасибо за ответ. Поставил Use_NumLock_as_PF1 = 1, остальные настройки из дистрибутива не трогал.
Еще такой вопрос:
Запускаю эмулятор, горит индикатор CAPS LOCK.
В этот момент включен верхний регистр заглавные буквы, при нажатом SHIFT (правым) вводятся маленькие буквы.
НО! Не набирается например ";"
При отпускании SHIFT дальше вводятся заглавные буквы.

Теперь запускаю K52 и поведение меняется.
Левый и правый SHIFT при одиночном нажатии работают подобно переключателю CAPS LOCK, левый SHIFT- верхний регистр,
правый SHIFT - нижний регистр, меняется индикация на клавиатуре.
При нажатии SHIFT в K52 одновременно с буквой - поведение другое: временно менятся регистр, состояние не фиксируется,
индикатор CAPS LOCK не изменяется.

Обычно пишу на асме большими буквами, для коментов надо иногда вводить ";"
Но никак не приноровиться к поведению клавиатуры, переключение регистров непредсказуемое :(

Patron
27.12.2025, 12:37
Не набирается например ";"
Такое поведение даёт установленная в комплекте поставки настройка драйвера SL.

В следующем примере нажимается клавиша <;> сначала без <Shift>, а потом с <Shift>.


.::
?KMON-F-Invalid command

.SE SL OFF

.;:
?KMON-F-Invalid command

.SE SL ON

.SE SL LET

Assignments:
Key Mode Value
------ ------ -----
` auto < Dir/Fu/Bl/Vol
; :
---------------------
Free bytes: 280.

Let>



В режиме SET SL LET можно задавать и отменять подстановки символов при нажатии клавиш.
.::
?KMON-F-Invalid command

.SE SL LET

Assignments:
Key Mode Value
------ ------ -----
` auto < Dir/Fu/Bl/Vol
; :
---------------------
Free bytes: 280.

Let> ;/D

Let> /L

Assignments:
Key Mode Value
------ ------ -----
` auto < Dir/Fu/Bl/Vol
---------------------
Free bytes: 283.

Let> ^C

.;:
?KMON-F-Invalid command

.



Теперь запускаю K52 и поведение меняется.
Левый и правый SHIFT при одиночном нажатии работают подобно переключателю CAPS LOCK, левый SHIFT- верхний регистр,
правый SHIFT - нижний регистр, меняется индикация на клавиатуре.
При нажатии SHIFT в K52 одновременно с буквой - поведение другое: временно менятся регистр, состояние не фиксируется,
индикатор CAPS LOCK не изменяется.
Поведение соответствует описанию (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=476600&viewfull=1#post476600) (см. пункт "В режиме KeyboardControlling = 1")




Но никак не приноровиться к поведению клавиатуры, переключение регистров непредсказуемое

Можно отключить все функции перехвата клавиатуры, кроме клавиши <NumLock>, добавив в настройки терминала строку KeyboardControlling = 0 :


[VT52.ini]
TabTitle=""
Use_NumLock_as_PF1 = 1
KeyboardControlling = 0
nFocusOnFirstOutput = 1
CURSOR_Y_START_% = 85
ANSI_STR_FOR_KEY[F12] = "f12 "