PDA

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



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

MiX
27.09.2017, 23:14
Patron, Есть небольшая просьба, отключить 22бит режим в конфигурации Э100/25.
Спасибо.

Patron
27.09.2017, 23:55
Есть небольшая просьба, отключить 22бит режим в конфигурации Э100/25.Это невозможно - в конфигурации выбирается процессор, а режим процессора уже выбирает запущенная на нём программа. После подачи питания на 1801ВМ3 - он находится в 16-разрядном режиме. После включения MMU у ВМ3 - он нахдится в 18-разрядном режиме. А когда программа специально устанавливает в SR3 бит 020 - только тогда у ВМ3 активируется 22-битный режим. Чтобы в эмуляторе появился чистый 18-разрядный процессор - надо протестировать процессор СМ-1420 и сделать его точную программную копию.

MiX
28.09.2017, 00:11
А когда программа специально устанавливает в SR3 бит 020 - только тогда у ВМ3 активируется 22-битный режим.
Включить опцию в конфиге где можно отключать SR3.


Чтобы в эмуляторе появился чистый 18-разрядный процессор - надо протестировать процессор СМ-1420 и сделать его точную программную копию.
СМ-1420 это 11/34
Эл100/25 это 11/40
Речь шла о Эл100/25.

Patron
28.09.2017, 00:29
Включить опцию в конфиге где можно отключать SR3.Зачем такое делать для эмулятора процессора 1801ВМ3. Тогда для эмулятора процессора 1801ВМ2 логично будет предусмотреть включение 22-разрядной адресации, а для 1801ВМ1 - 18-разрядной.



СМ-1420 это 11/34
Эл100/25 это 11/40
Речь шла о Эл100/25.Значит - протестируем Эл100/25 и сделаем точную копию её процессора.

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

MiX
28.09.2017, 01:21
Зачем такое делать для эмулятора процессора 1801ВМ3.
Вариант для СМ1420 это: убрать ошибку DIV свойственно только 1801ВМ3. Подогнать быстродействие с реальной СМ.

.SPEED

ТЕСТ БЫСТРОДЕЙСТВИЯ

КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 1064

КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 408

КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 136

КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 336



Тогда для эмулятора процессора 1801ВМ2 логично будет предусмотреть включение 22-разрядной адресации
Там только 17 адрес есть.
Могу включить на шину и поставить плату памяти. Должно добавится памяти через окно.


а для 1801ВМ1 - 18-разрядной.
Не, не надо.
Можно добавить подключение ещё процессоров на шину (до 4х процессоров включая ведущий).


Значит - протестируем Эл100/25 и сделаем точную копию её процессора.
Маловероятно.
Есть тайминги (https://pdos.csail.mit.edu/6.828/2005/readings/pdp11-40.pdf)(страница С1) от 11/40, если конечно они устроят.

Patron
28.09.2017, 02:08
Можно добавить подключение ещё процессоров на шину (до 4х процессоров включая ведущий).Как только отыщется программное обеспечение, работающее в таком режиме - сразу добавим. А без реальной программы-образца, которую надо заставить работать - отлаживать эмуляцию невозможно.



Есть тайминги (https://pdos.csail.mit.edu/6.828/2005/readings/pdp11-40.pdf)(страница С1) от 11/40, если конечно они устроят.Тайминги есть для всех дековских процессоров, но реализовывать их пока лень. Для начала проще взять все процессоры из SIMH как есть - без таймингов.

form
28.09.2017, 02:16
Как только отыщется программное обеспечение, работающее в таком режиме
ПО, работающее в DECовском многопроцессорном режиме в наличии. Спецификация многопроцессорной организации тоже есть в сущности.

Patron
28.09.2017, 09:52
ПО, работающее в DECовском многопроцессорном режиме в наличии. Спецификация многопроцессорной организации тоже есть в сущности.Типа, кто-то перепишет многопроцессорное ПО DEC под 1801ВМ1, отладит на реальной многопроцессорной конфигурации из 4 процессоров ВМ1 ( или сэмулированной на V-моделях в ModelSim ) и после этого появится долгожданный оригинал многопроцессорного ПО для 1801ВМ1.

form
28.09.2017, 10:13
под 1801ВМ1
Под 1801ВМ1 вряд ли - оно только с MMU и 22bit. Причем ориентировано на UNIBUS, но в принципе наверно особой привязки нет - просто тогда был 11/70 с которого и сделали многопроцессорный 11/74 (так и не попавший в серию). В MR или еще каком регистре модуля KDJ11-B есть вроде битик который говорит однокроцессорная конфигурация или нет, но про подобный вариант в реале ничего не известно. Еще слышал про некий 11/64 - многопроцессорный 11/60, но про него слышал только раз, и в софте, определяющем тип проца, никаких упоминаний о нем нету.

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

Про 1801ВМ2 упоминалось вроде что-то про построение многопроцессорных конфигураций, но, разумеется, там о совместимости речь не шла и никаких спецификаций нет.

gfd71
28.09.2017, 12:58
вот здесь http://zx-pk.ru/threads/18351-emulyator-dvk.html?p=653866&viewfull=1#post653866
описан:

Использование встроенного дизассемблера.
есть несколько вопросов:
лог создаётся, но ограниченного размера, можно ли изменить размер в большую сторону?
в комментариях состояние операндов до команды, а очень хотелось видеть их после команды, как то можно добавить малой кровью такую возможность?
кнопка ШАГ -нажал-шагнул-отпустил-нажал-шагнул, есть ли возможность сделать нажал ШАГ- держишь-шагает?
можно ли запустить данный конфиг из под друго образа?

Patron
28.09.2017, 16:56
лог создаётся, но ограниченного размера, можно ли изменить размер в большую сторону?Ограничение на количество строк в памяти текстовой консоли 1000 - остальное надо смотреть в файле на диске. В принципе - это ограничение можно сделать настраиваемым, но поскольку эмулятор с лёгкостью генерит гигабайтные логи - никакой настройки никогда не хватит, так почему не 1000 строк. Ограничение на размер лога на диске = 4 Гб. Сейчас просто нажал кнопки [ДизАсм] и [Лог] в закладке DisAsm конфига VM3.cfg и (немного подождав) получил гигабайтный лог.

Ещё один аспект в том, что при зацикливании программы - листинги повторяющихся циклов не создаются, если длина цикла в командах процессора меньше или равна значению параметра: MaxLoopCommandsToHide = 32 ( по умолчанию в листинге скрываются все циклы от 1 до 32 команд ).



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



кнопка ШАГ -нажал-шагнул-отпустил-нажал-шагнул, есть ли возможность сделать нажал ШАГ- держишь-шагает?Для кнопки ШАГ такой возможности нет, но в будущем можно добавить ещё одну кнопку БЕГ с такой целью.



можно ли запустить данный конфиг из под другого образа?Не понял смысл вопроса. Если речь о смене системного образа в текущем конфиге - это делается кнопкой выбора образов для образа в приводе HD0. Если хочется просто временно загрузиться с образа в другом приводе ( например: HD2 ) - можно выполнить команду: BOOT HD2: Если с другого устройства ( например: MY0: ) - BOOT MY0:

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


VM3.cfg откуда взялся или берётся?????Загружается в эмулятор при помощи пункта меню "Файл->Открыть".



по кнопке принтскрин не могу сохранить лог в текст, окно эмулятора всё нормально. в пайнт скрин экрана дизасма есть а текст что то не получается.Для интерактивной работы со встроенным дизассемблером - в комплекте поставки есть два конфига: DisAsm.cfg - для эмулятора процессора 1801ВМ2 и VM3.cfg - для эмулятора процессора 1801ВМ3. Чтобы лог дизассемблера начал сохраняться в файл - после загрузки этих конфигов в эмулятор надо перейти в окно DisAsm и нажать кнопку [Лог].



не только загрузится но и использовать вкусности дизасмаЧтобы добавить окно дизассемблера в произвольный конфиг - надо самостоятельно научиться модифицировать файлы конфигурации ( ссылки на подробные инструкции есть в первом сообщении темы ).

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

Добавлен

HD t1 t2 t3 t4 t5 Driver Distribution Kit (http://emulator.pdp-11.org.ru/misc/HD_v1_v2_v3_v4_v5.zip)

gfd71
28.09.2017, 17:51
Не понял смысл вопроса
не только загрузится но и использовать вкусности дизасма:)


Сейчас просто нажал кнопки [ДизАсм] и [Лог] в закладке DisAsm конфига VM3.cfg и (немного подождав) получил гигабайтный лог.
а вот тут не совсем понятно:)
VM3.cfg откуда взялся или берётся?????
по кнопке принтскрин не могу сохранить лог в текст, окно эмулятора всё нормально. в пайнт скрин экрана дизасма есть а текст что то не получается.

Patron
28.09.2017, 18:07
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_28.09.17_16-25 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_28.09.17_16-25.rar)

Изменения:

1. Внесены изменения, описанные ЗДЕСЬ (http://zx-pk.ru/threads/20092-emulyator-terminala-tipa-vt52.html?p=929033&viewfull=1#post929033).

2. Исправлена ошибка синхронизации при подключении каталогов Windows к приводам HD и HX, внесённая в релизе: DVK_Emulator_10.08.17_02-48.

3. Контроллер HD теперь поддерживает 5 типов интерфейса, выбираемых "секретным" параметром: HD_InterfaceType в разделе HD.ini. Значение по умолчанию 2 соответствует обычному контроллеру HD. Для использования другого типа интерфейса надо задать его номер и подключить в привод HD0 соответствующий образ системного диска из HD t1 t2 t3 t4 t5 Driver Distribution Kit (http://emulator.pdp-11.org.ru/misc/HD_v1_v2_v3_v4_v5.zip):



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

HD_InterfaceType = 3

gfd71
28.09.2017, 18:21
DisAsm.cfg - для эмулятора процессора 1801ВМ2 и VM3.cfg
спасибо разобрался:)
с лог файлом тоже-спасибо, попутал маленько:) у меня не сохраняются строки с консоли дизасма


надо самостоятельно научиться модифицировать файлы конфигурации
ну это на потом:)

Patron
28.09.2017, 18:37
у меня не сохраняются строки с консоли дизасмаЭто ошибка, которая будет исправлена в следующем релизе. Проблема (как выяснилось только что) в том, что у отдельного окна консоли не работает копирование содержимого по <Print Screen>, но если вернуть окно в закладки, нажав в верхнем правом углу окна кнопку "закрыть окно", а потом уже в закладке нажать <Print Screen> - копия получается. После этого можно вернуть окно дизассемблера на прежнее место, выполнив мышью <Ctrl><Клик> по названию закладки.

gfd71
28.09.2017, 19:31
заработало:) спасибо
только потом как дизасм консоль вытащить в отдельное окно?
при перезапуске эмулятора не помогает:((

Patron
28.09.2017, 20:26
только потом как дизасм консоль вытащить в отдельное окно?Что непонятно в последнем предложении предыдущего сообщения:


После этого можно вернуть окно дизассемблера на прежнее место, выполнив мышью <Ctrl><Клик> по названию закладки.

gfd71
28.09.2017, 20:58
Что непонятно
Семён Семёныч:)
нельзя много дел делать сразу

MM
08.10.2017, 02:22
Уважаемый господин Patron, разрешите поинтересоваться :
1.В Вашем эмуляторе ДВК образы дисков, например для работы с MY.SYS 80 треков RT11SJ на 100% могут работать на реальном ДВК-4 , или в образы внесены изменения ( например, для оптимизации в эмуле на ИБМ ЭВМ ) ?
2.Дрова устройств ввода-вывода от RT11 V5.00 подойдут к RT11SJ V5.х из образа диска с MY.SYS из Вашего эмулятора ДВК ?

Patron
08.10.2017, 11:32
образы дисков, например для работы с MY.SYS 80 треков RT11SJ на 100% могут работать на реальном ДВК-4Все образы для эмуляторов приводов реальных дисков могут работать в реальных приводах дисков после записи на реальные диски.



Дрова устройств ввода-вывода от RT11 V5.00 подойдут к RT11SJ V5.х из образа диска с MY.SYS из Вашего эмулятора ДВК ?RT11 V5.00 запускается в эмуляторе абсолютно точно так же, как и на реальном компе, поэтому узнать ответ на вопрос можно прямо в эмуляторе - сделать образ целевого диска и попробовать с него загрузиться.

form
08.10.2017, 11:51
Дрова устройств ввода-вывода от RT11 V5.00 подойдут к RT11SJ V5.х из образа диска с MY.SYS из Вашего эмулятора ДВК ?
Как правило дрова от более старой системы подходят к более новой. Наоборот - часто не подходят. Важно, чтобы совпадали опции SYSGEN. Переделка драйвера просто исправлением смещения 60 чаще всего не поможет (некоторые драйверы поддерживают правильную подстройку командой SET dd SYSGEN [некоторые при этом только думают, что поддерживают :)]).

hobot
08.10.2017, 14:54
2.Дрова устройств ввода-вывода от RT11 V5.00 подойдут к
не вижу проблемы собрать в эмуляторе образ с нужной версией монитора ??? и необходимым набором драйверов

MM
08.10.2017, 15:12
и необходимым набором драйверов
Я не разбираюсь в ИБМ ЭВМ, поэтому приделывать новодел контроллера ввода-вывода к эмулю ДВК нет возможности.
По итогам "разработки" выложу образ диска.
Ну и ТО контроллера ( проверку на плагиат, правда, не пройдет... ;) )

hobot
09.10.2017, 00:18
новодел контроллера Вам нужна загрузочная MY дискета,
для использования на ДВК? Для этого ничего к ПЦ кроме дисковода и запуска эмулятора делать
не нужно. В эмуляторе собираете все нужные файлы (под окошками), а в эмуляторе Политаева (под дос)
пишите образ на реальную дискету. Всё. - я писал вот об этом, может я не правильно понимаю, что вам нужно?

MM
09.10.2017, 00:25
что вам нужно?
Мне нужна коробка дискет 1.44" Verbatim выпуска 21-го века, строго злопечатанная :v2_dizzy_christmas:
Опыты с дискетами от соседей - сплошь дырыщи и сбои, и мои собственные за 10 лет практики поизносились капитально, 100% тест не проходят.

Расчитываю с помощью господина Патрона из ИБМ ЭВМ по RS-232 перегнать дискетку и отформатировать на приводе уже в ДВК - 1шт. дискета проходит тест ,но не на записях с ИБМ ЭВМ.
Подробности напишу на днях.

hobot
09.10.2017, 00:35
Мне нужна коробка дискет 1.44" Verbatim выпуска 21-го века,
написал в лс.

MM
11.10.2017, 02:27
сделать образ целевого диска и попробовать с него загрузиться.
ОГРОМНОЕ Спасибо уважаемому господину Хобот г. Зеленоград за выложенную RT11SJ V5.01 ( 73 блока, 1987г. ).
С ней как раз и пошли мои дрова к плате ввода-вывода ! А то уж 2 дня раздумывал - "почему это лыжи не едут :dizzy_mad_old: "
Оказалось, пассивные гомосексуалисты так раскромсали ОСь V5.07, что это вообще какая-то помойка , не иначе .

form
11.10.2017, 03:14
раскромсали ОСь V5.07
А может дело в криворуких писателях драйвера все-таки или в непонимании как драйверы в принципе работают? ;)

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

Возвращаясь к фичам эмулятора, добавить-бы таки команду в HD для запроса даты-времени в готовом формате как раньше просилось :)

MM
11.10.2017, 04:01
А может дело в криворуких писателях драйвера все-таки или в непонимании как драйверы в принципе работают?
Драйвер утвержден госкомиссией в 1991 г. для RT-11 V5.00 и обязан быть совместимым со всеми редакциями V5.хх
А если пассивные гомосексуалисты испоганили своими проделками ОСь и не назначили принципиально др. версию (например, V6 и т.п.) - на то они и извращенцы.
А переписавать из-за всяких педерастов дрова - это не по понятиям. Раз утвержен текст программы -значит, все, кто вносил правки в ядро/обвес - гады и их надо повесить.

form
11.10.2017, 04:16
обязан быть совместимым
Вот именно - драйвер обязан быть совместимым. То есть выполнять требования документации системы (замечу: не новой системы, а в той в которой его писали). А у нас же принято считать себя умнее DEC: 240 стоит перед .DRBEG? Да это же бесполезный NOP: сделаю .=.-2! Conflicting SYSGEN options? Так это ж дураки DEC проверяют зачем-то совместимость - поправлю слово 60 и все заработает! Итд...


переписавать
А может надо просто сразу написать правильно? Все драйвера самых древних систем (ну как минимум с v4) отлично работают в 5.7 (разумеется, если читать документацию когда пишешь драйвера). Даже из советского РАФОСа все драйвера прекрасно работают - шаловливые ручки их не поломали :)

hobot
11.10.2017, 21:59
RT11SJ V5.01 ( 73 блока, 1987г. ). а можно прямую ссылку только в теме поиска софта (http://zx-pk.ru/threads/16861-poisk-fajlov-dlya-uknts-dvk.html)? поскольку я тут вряд ли причастен и мне важно знать о каком именно образе идёт речь?

---------------------


оттуда я планирую адаптировать все процессоры и все дисковые контроллеры PDP-11 ( терминальные контроллеры тоже не исключены, насчёт сетевых и ленточных контроллеров большой уверенности нет ). нда, КЦГД и тем более КГД в обозримом будущем не будет.

Что за странные tap с утилитой UNROLL? Имеется в виду невозможность подключения к эмулятору ДВК)
Они от другого эмулятора - это ясно - не ясно почему тогда тот их кушает, а ДВКашный не кушает?
Где более стандартный стандарт, кто правильней??? Надо же гарантировать совместимость устройств
Снова получатся куча виртуальных "MXоф" между собой не совместимых. Это грустно. А МХ - самое настоящее зло! )))

form
11.10.2017, 22:11
не ясно почему тогда тот их кушает
Утилита как бы к эмулятору никакого отношения не имеет, а работает именно с образами ленты уже существующих форматов ;)

hobot
11.10.2017, 22:16
Утилита как бы к эмулятору никакого отношения не имеет, а работает именно с образами ленты уже существующих форматоввот об этом и вопрос! что такое с этими RK не так, почему какой-то другой эмулятор
такой размер допускает, а ДВК кричит что нужно другого размера? И кто прав? А если реальное железо - RK - это плёнка (катушка) или абстракция? Вот о чём вопрос? (ненавижу MX!!!).

form
11.10.2017, 22:20
вот об этом и вопрос! что такое с этими RK не так
Спешу разочаровать, но и к RK эта утилита не имеет отношения никакого :D

hobot
11.10.2017, 22:43
Спешу разочаровать, но и к RK эта утилита не имеет отношения никакого
понял - это вспомогательный софт для третьего эмулятора с абстрактным носителем который обозвали RK

Вот такие момент всегда хочется ясности, потому что на примере архива - я вижу дискеты - реальные.
А капнёшь выше чем БК и УК-НЦ - HD(что за зверь, кушает всё???), HX (ладно это вообще отдельная тема), ну и т.п.
А где реальные плёнки, 8-ми дюймовые диски, не знаю что там ещё, стримеры какие-нибудь. Вы видели сколько вариантов одного только DW-драйвера??? (это всё от MXыксов!!! Ненавижу MX!!!).

- - - Добавлено - - -
зайдём с этой стороны )))
Можно ли считать адекватным реальному RK в эмуляторе Патрона (если про реал говорить) ?

form
11.10.2017, 22:53
это вспомогательный софт для третьего эмулятора с абстрактным носителем который обозвали RK
Это вспомогательный софт НЕ имеющий никакого отношения к RK, а работающий с образами лент разных форматов ;)


сколько вариантов одного только DW-драйвера???
Любого советского драйвера было много вариантов ибо каждому хочется по-своему сделать :)


Можно ли считать адекватным реальному RK в эмуляторе Патрона (если про реал говорить) ?
Как писалось в теме про особенности процов, кое-что пока реальности не соответствует. Для большинства систем эти различия пофигу. При этом следует понимать, что RK и ВМ3 несовместимы (для систем с расширенной памятью).

Patron
12.10.2017, 01:49
Возвращаясь к фичам эмулятора, добавить-бы таки команду в HD для запроса даты-времени в готовом формате как раньше просилосьА если в неготовом. Сколько операционок - столько и форматов, поэтому если делать стандарт часов реального времени, пригодный для реализации в железе - готовых форматов не просматривается. Можно сделать часы с возможностью чтения блока времени, записи блока времени и проверки блока времени. Блок времени включает в себя поля даты и времени с точностью 1 мс ( можно добавить день недели и день от даты в запросе проверки ), а также - поля коэффициентов коррекции: раз в минуту, раз в 60 минут, раз в 60 часов, раз в 3600 часов.

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


вот об этом и вопрос! что такое с этими RK не так, почему какой-то другой эмулятор
такой размер допускает, а ДВК кричит что нужно другого размера?Потому что образы *.TAP подключают к приводам MT, а не RK.

form
12.10.2017, 01:55
Сколько операционок - столько и форматов
Не так уж много как кажется. Всякие UNIXи прекрасно парой команд получаются из того же RSXовского, но дело даже не в этом: софт все-равно вряд ли появится для чего-то кроме RSX и RT. Можно вернуть в формате, приближенном к TOY (после считывания) - это по сути тоже вариант близкий к RSX. Просто два наиболее частых формата очень упростили бы дело, особенно RTшный вариант который требует расчетов.
И, к слову, RSX формат предусматривает точность до 1ms ибо там варианты тиков в секунду не ограничены двумя как в RT-11.

Patron
12.10.2017, 02:13
..

Не таких уж и страшных расчётов требует дата RT:



inline word MakeRT11_Date( int year, int month, int day )
{
if( year < 1972 ) { year = 1972; }
word dec_year = year-1972;
return (dec_year & 0140)<<9 | (month & 017)<<10 | (day & 037)<<5 | dec_year & 037;
}



SetDate:
MovB Day, R1
MovB Month, R2
MovB DecYear, R3
Mov R3, R0
SwaB R0
ASL R0
BiC #^B0011111111111111, R0
BiC #^B1111111111100000, R3
SwaB R1
ASR R1
ASR R1
ASR R1
BiS R3, R1
SwaB R2
ASL R2
ASL R2
BiS R2, R1
BiS R0, R1
Mov R1, NewDate
Return

form
12.10.2017, 02:26
А зачем коэффициенты коррекции, к слову? Кто мешает просто делать очередной запрос времени и установку? Ни в одной DEC системе это не приведет к сбоям даже если разница будет очень большая: все запланированные события по времени будут выполнены в точности как должны. Разве что в 2.11BSD есть нюансы: там поддерживаются BSD securelevels, и уровень 2 запрещает ставить время раньше чем было, но там есть NTP который синхронизирует время не меняя его в принципе (до которого впрочем еще надо дожить в эмуляторе) :)

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


дата RT
Как бы больше вопросы ко времени - дату можно хоть несколько секунд расчитывать без потерь :)
А сложного, разумеется ничего нет, особенно после TOY где есть всего один бит данных и 64 бита информации.

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

В общем пофигу каким будет конечный вариант - пересчитать можно все.

Patron
12.10.2017, 03:00
А зачем коэффициенты коррекции, к слову?Когда у часов реального времени нет доступа к атомным часам, а у пользователя есть - он может задавать часам коэффициенты коррекции, чтобы дрейф показаний за месяц (в сравнении с атомными часами) не превышал миллисекунды.

Patron
14.10.2017, 21:07
Грядущее появление эмулятора интерфейса часов реального времени HClock (http://zx-pk.ru/threads/28222-chasy-realnogo-vremeni.html?p=931874&viewfull=1#post931874), реализуемого в виде эмулятора привода дискового устройства, подключаемого к контроллеру HD - означает не только необходимость создания API эмуляции приводов, но и то, что вторым кандидатом на реализацию в виде "магического дискового привода" становится интерфейс монтирования HMount.

При реализации интерфейса монтирования в виде дискового устройства ( с номером привода 0432 = 282 ) принципиальным вопросом становится - отдавать пользователю весь список текущего монтирования одним "безразмерным блоком" с номером блока 0 или оформлять информацию о каждой точке монтирования отдельным блоком. Учитывая, что интерфейс монтирования допускает указание как относительных, так и абсолютных путей - превышение общим списком всех точек монтирования размера 64 Кб - выглядит вполне реальной возможностью, а раз так - есть смысл предусмотреть как возвращение пользователю всей информации монтирования одним блоком, так и возвращение информации о каждой точке монтирования отдельным блоком.

Тогда спецификация работы с приводом HMount через контроллер HD будет выглядеть так:

1. Для выбора интерфейса монтирования нужно задать контроллеру HD номер привода 282. Если контроллер HD не имеет доступа к интерфейсу монтирования - возвращается ошибка с кодом IE_OFL = "устройство offline".

2. Запрос размера устройства возвращает количество доступных точек монтирования + 3.

3. Все блоки HMount являются "безразмерными", поэтому содержат в первом слове размер блока в байтах. Правила чтения/записи блоков HMount совпадают с аналогичными правилами для таймблоков HClock (http://zx-pk.ru/threads/28222-chasy-realnogo-vremeni.html?p=931874&viewfull=1#post931874).

4. Блок 0 доступен для чтения и записи. При чтении возвращается блок информации о текущем монтировании в виде последовательности команд монтирования, разделённых байтами <CR><LF>. Если какой-то привод не смонтирован - сразу за символом '=' идут байты <CR><LF> Например:

HD0=HDSYS.DSK<015><012>HD1=<015><012>HD2=C:\Documents and Settings\WORK_DIR\<000> Если размер блока >= 64 Кб - слово размера блока содержит 000. Уместно напомнить, что количество реально передаваемых пользователю слов не может превышать текущее значение счётчика слов WordCount, задаваемое командой контроллера HD "установить счётчик слов". При записи программа посылает контроллеру блок аналогичного формата, содержащий произвольное количество команд монтирования, разделённых байтами <CR><LF>. Для размонтирования привода - команда монтирования не должна иметь аргумента. Например: "MX1=".

5. Блок 1 предназначен для просмотра содержимого SD-карты ( подробнее ЗДЕСЬ (http://zx-pk.ru/threads/18351-emulyator-dvk.html?p=932479&viewfull=1#post932479) ).

6. Блок 2 доступен только для чтения и содержит список всех доступных точек монтирования в виде последовательности символов ASCII, разделённых байтами <CR><LF>. Например:

HD0<015><012>HD1<015><012>HD2<015><012>HD3<000>

7. Все последующие блоки доступны только для чтения и содержат информацию о текущем монтировании точек из списка монтирования, возвращаемого при чтении блока 2, в порядке их присутствия в списке. Формат совпадает с форматом одиночной команды монтирования, если привод смонтирован, или команды размонтирования, если привод размонтирован. Например:
MX1=E:\ARHIV\PDP11.DSK\FRESH\MX40.DSKНужно помнить, что все читаемые и записываемые блоки HMount имеют в первом слове размер блока в байтах.

При невозможности выполнить переданную команду монтирования - возвращается ошибка с кодом IE_OFL, если указанное устройство недоступно для монтирования или IE_NUM = "параметр вне диапазона" ( 0356 ), если нарушен формат команды, монтируемый путь не найден или тип пути ошибочен ( например, не все эмулируемые контроллеры позволяют монтировать каталоги, вместо DSK-образов ). Если переданный блок монтирования содержит более одной команды - команды монтирования выполняются последовательно, безотносительно к успешности выполнения предыдущей команды, но при наличии хотя бы одной ошибочной команды - в итоге возвращается ошибка.

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

Пробелы и табуляции между именем точки монтирования, символом '=' и путём монтирования должны игнорироваться, поэтому передаваемые контроллеру команды монтирования могут выглядеть так:

MX1 = E:\ARHIV\PDP11.DSK\FRESH\MX40.DSK

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

Если конкретный аппаратный контроллер, реализующий интерфейс HMount, может гарантировать, что размер нулевого блока с полным списком монтирования всегда может быть прочитан в буфер пользователя разумного размера - возможна сокращённая реализация интерфейса с обработкой только чтения и записи нулевого блока. В таком случае запрос размера устройства для привода 282 должен возвращать 1 ( если просмотр содержимого карты не поддерживается ) или 2 ( если блок 1 поддерживается ), а попытка задания больших номеров блока - возвращать ошибку "выход за пределы устройства".

form
15.10.2017, 18:02
Несколько мыслей.
Эмулятор активно развивается и показал себя весьма стабильным: RSX-11M+ проработал без перерыва почти год и проработал бы больше, да затеяли перестановки на сервере виртуальных машин. Но для полного счастья не хватает одной маленькой мелочи - поддержки модемных сигналов. Самый простой вариант - добавить поддержку DL(V)11-E. Это сразу резко расширило бы возможности эмулятора: появилась бы возможность запускать в нем online системы и выставлять их в интернет. Сравнительно несложно так же добавить мультиплексор DZ(V)11. Так же тут задавался вопрос про DU... DU вещь навороченная и сравнительно новая. Гораздо интереснее для начала было бы эмулировать DL (RLV контроллер): он и достаточно старый чтобы запустить многие системы в которых нет поддержки MSCP и поддерживает 22bit на Q-Bus...

Patron
16.10.2017, 16:52
Учитывая, что контроллер SD-карты может подключить к любому из эмулируемых приводов любой из сотен образов на карте - интерфейсу монтирования полезно иметь возможность возвращать содержимое текущего каталога SD-карты, а также осуществлять смену текущего каталога.

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

Для взаимодействия с интерфейсом просмотра каталогов в приводе HMount логично выделить блок 1. Если контроллер не поддерживает просмотр каталогов - при чтении и записи блока 1 должна возвращаться ошибка с кодом IE_NUM ( 0356 = параметр вне диапазона ), если контроллер поддерживает расширенные блоки, или с кодом IE_BLK ( 0354 = выход за пределы устройства ), если контроллер обслуживает только запросы к блоку 0.

Для установки пути к просматриваемому каталогу программа производит запись пути в блок 1. Устройства не поддерживаются. Корневой каталог SD-карты ( или текущий каталог эмулятора ДВК ) выбираются заданием пути "\":


\

Если заданный путь отсутствует - текущий каталог не изменяется, а запись завершается ошибкой с кодом IE_NUM ( 0356 = параметр вне диапазона ).

Вложенные каталоги ( если есть ) выбираются записью абсолютного или относительного пути. Например:


\RT-11\NEW\

\

RT-11\

NEW\

Запись ошибочного или пустого блока ( т.е. блока с нулевым словом размера блока ) в блок 1 или обращение к любому блоку, кроме блока 1 - не изменяет текущий каталог, но сбрасывает фазу возврата содержимого текущего каталога.

Признаком абсолютного пути является символ '\' в первой позиции пути. Последним ( или единственным ) символом пути всегда должен быть '\'.

Контроллер сбрасывает текущий каталог только при включении питания и при смене SD-карты.

Первое чтение блока 1 после сброса фазы возврата содержимого текущего каталога - возвращает абсолютный путь к текущему каталогу. Каждое последующее чтение блока 1 возвращает очередное имя файла из текущего каталога. Если имя соответствует вложенному каталогу - последним символом имени должен возвращаться символ '\', если нет - сразу после имени выводится выводится двоеточие и размер файла в байтах. Когда имена всех файлов уже выведены - каждое последующее чтение блока 1 возвращает ошибку с кодом IE_BLK ( 0354 = выход за пределы устройства ).

...

Расширенные возможности работы с блоком 1

1. Если переданная строка оканчивается символами *\ - это маска для вывода списка папок в текущем каталоге.

2. Если записанная строка не оканчивается символом '\' - это маска для вывода списка файлов и папок.

3. Если записанная строка содержит символ ':' после имени файла - это запрос на создание файла. Если символ ':' находится в конце строки - должен быть создан образ с дефолтным размером. Если после символа ':' находятся цифры - это размер в байтах для создаваемого файла.

4. Если после символа ':' находится буква 'D' ( :D ) - это запрос на удаление файла ( например: XXX.DSK:D ).


Маска для вывода списка файлов может содержать относительный или абсолютный путь ( например: WorkDir\* ). При выводе списка файлов с путём в маске - этот путь должен добавляться к каждому выводимому имени файла:



.MNT DIR WORKDIR\
\

WORKDIR\XXX\
WORKDIR\YYY\
WORKDIR\WWW.DSK 819'200

.




При создании и удалении файла также может указываться относительный или абсолютный путь:



.MNT CREATE WORKDIR\XXX.DSK:1234567
\

WORKDIR\XXX.DSK 1'234'567

.MNT DIR WORKDIR\
\

WORKDIR\XXX\
WORKDIR\YYY\
WORKDIR\WWW.DSK 819'200
WORKDIR\XXX.DSK 1'234'567

.MNT DEL WORKDIR\XXX.DSK

.MNT DIR WORKDIR\*.DSK
\

WORKDIR\WWW.DSK 819'200

.

MiX
18.10.2017, 19:20
Patron, Возможно ли сделать нативный DX привод? Это для того чтоб эмулятор мог работать с прошивкой контроллера самого привода.
...
Посмотрел платы ГМД7012 и RX02, RX01. ГМД7012 схематически похож на RX02. Возможно что ГМД70 будет схематически похож на RX01.

Спасибо.

Patron
18.10.2017, 20:03
Возможно ли сделать нативный DX привод? Это для того чтоб эмулятор мог работать с прошивкой контроллера самого привода.Для этого надо эмулировать процессор, выполняющий код прошивки. Пока таким путём реализован только эмулятор контроллера MY, потому что для выполнения кода прошивки там используется процессор, который уже сэмулирован.

MiX
18.10.2017, 20:29
Для этого надо эмулировать процессор, выполняющий код прошивки.
Это да. Зато это будет большой задел для таких контроллеров как RK,МТ, ещё и платы М5 Эл.60.

hobot
23.10.2017, 07:47
Пока таким путём реализован только эмулятор контроллера MY, потому что для выполнения кода прошивки там используется процессор, который уже сэмулирован.

Имеется контр-предложение, а именно
слепить достаточно качественный и насовсем прилепить к эмулятору ДВК один сетевой БК(модификация на выбор
БК0010Ш, БК0010-01, БК-11М) что бы была возможность гонять КУВТшный софт, проверять сетевые программы и
улучшить поддержку реальных БК во всём мире, виртуальный БК скорее должен работать с ч\б выходом на свой
собственный 6105 монитор с полной по возможности точной реализацией, что так же позволило бы любому желающему
попутно продемонстрировать отечественные графические игры (коих не мало и весьма качественных) для PDP совместимых Ангстремовских процессоров. Не слишком суровое предложение? Тут ещё актуальность задачи помимо прочего в том, что полностью отлаженных эмуляторов БК0010-01 к примеру нет до сих пор. Везде что то немного не работает. Софт вроде бы есть не много под это дело, я думаю можно по КУВТ софту ещё раз попросить считать всё
самое сетевое актуальное боевое Стаса SKcorp. при всей его не любви к эмуляторам ) Стас, пожалуйста считай КУВТ софт для сети ДВК-БК что нибудь актуальное ? Кроме
тех образов, что уже имеются, если помнишь у тебя на видео есть загрузочная сетевая программа
ДВК>>>БК в виде таблицы - вот хорошо бы эту систему к архиву подшить !!!

hobot
23.10.2017, 20:22
Все ромы для БКашки какие попадались мне с различными эмуляторами
http://archive.pdp-11.org.ru/BKGAMES/ROM/ там конечно дубли просто с разными именами файлов,
совпадают как правило определяющие наполнение слова, а расширения авторы разное могут использовать
в своих проектах.

Уточняю (на всякий случай), что в последних двух сообщениях речь идёт только о виртуальном
железе - то есть об эмуляции.

MM
26.10.2017, 01:48
Не будет ли возможности разработать специальный конфиг для ДВК (все модели) - 1801ВП1-128 на адресе 177130 / 17777130 и ПЗУ 1801РЕ2 - 326 в адресах пользователя 160000 - 167777 ( 17760000 - 17767777 ).
Загрузка - 160000G
Описание точек входа в ПЗУ 326 - см. Руководство системного программера от БК11М.
Драйвер BY.SYS, или он же с программой TESTBY.SAV ( есть на моем диске к блоку ВМ3А ).
Разумеется, из драйвера BY.SYS надо удалить все следы аппаратуры и софта БК11М.

Patron
04.11.2017, 12:41
.

Уточнение спецификации контроллера HD (http://zx-pk.ru/threads/18351-emulyator-dvk.html?p=929457&viewfull=1#post929457):



Чтение и запись за пределами образа возвращает ошибку IE_BLK только в том случае, если ни один блок не был прочитан/записан.


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

В случае с приводами HClock и HMount - то же справедливо относительно количества слов в читаемых/записываемых блоках. Несовпадение размера блока драйвера и устройства должно выявляться на этапе задания счётчика слов, потому что команды чтения и записи приводов HClock и HMount могут вернуть ошибку IE_BLK только при обращении к отсутствующим блокам.

Patron
12.11.2017, 14:27
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_28.11.17_19-51 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_28.11.17_19-51.rar)

Изменения:

1. Исправлена ошибка эмуляции контроллера RK, не позволявшая прочитать/записать за один раз больше 64Кб.

2. Исправлена ошибка, не позволявшая копировать содержимое экрана консоли, находящейся в отдельном окне.

3. Теперь загрузить конфиг или запустить на выполнение программу можно любым указанием в командной строке эмулятора ( абс.путь, отн.путь, в двойных кавычках, без двойных кавычек ). Например, запустить на выполнение программу DEMO1.BAS, находясь в каталоге эмулятора - теперь можно так:



pdp11 AT11SJ.5M\DEMO1.BAS


4. Изменены алгоритмы эмуляции команд ADD, SUB, CMP и CMPB у всех процессоров, что повысило скорость эмуляции на ~10%.

5. Контроллер HD t1 теперь поддерживает 22-разрядную шину. Всем типам контроллера HD изменена маска команды на 0377. Добавлены команды 0105 и 0106, дублирующие команды 5 и 6 в контроллерах t2 .. t5. Добавлены игнорируемые команды 0100, 0200, 0300. Всё это для того, чтобы добавить всем типам контроллера HD новую команду 0341 - выдать в регистре данных три слова даты и времени RT-11 для частоты тиков 50 Гц.

6. Изменён монитор AT11SJ.SYS - теперь обработчик прерывания таймера просто берёт из HD локальное время Windows:



LKINT::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ADC $TIME+2 ;;
;; ADC $TIME ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MFPS @#177720
Mov @#177722, $DATE
Mov @#177722, $TIME+2
Mov @#177722, $TIME
RTI


7. В модуль DSK_module.em добавлены объекты HClock и HMount, реализующие блок 0 привода часов реального времени (http://zx-pk.ru/threads/28222-chasy-realnogo-vremeni.html?p=931874&viewfull=1#post931874) и блоки 0 и 1 привода интерфейса монтирования (http://zx-pk.ru/threads/18351-emulyator-dvk.html?p=932141&viewfull=1#post932141) контроллера HD. Примеры использования добавлены в файлы конфигурации default.cfg, VM3.cfg и DisAsm.cfg

8. В образ системного диска HDSYS.DSK и комплект поставки монитора AT11SJ добавлены программы CLK.SAV и MNT.SAV, реализующие алгоритм взаимодействия программы PDP-11 с приводами HClock и HMount для всех типов контроллера HD.

Alex_K
12.11.2017, 22:55
4. Исправлена эмуляция процессоров 1801ВМ1 и 1801ВМ2 - теперь новое содержимое PSW задаётся до записи приёмника.
А как это так?
Проверил на УКНЦ(1801ВМ2) команды MOV R0,@R1 и BIS R0,@R1, задав перед этим R0=0, R1=177714 и RS=217. Регистр 177714 в области ПП имеет очень хорошую особенность - он только читается, т.е. при его записи происходит TRAP4. Так вот в стек ложилось значение PSW равное 217, т.е. оно не изменялось. Не знаю как с этим обстоит на 1801ВМ1, но 1801ВМ2 изменяет PSW только если команда успешно выполнилась, т.е. не было никаких TRAP4.

Patron
12.11.2017, 23:26
1801ВМ2 изменяет PSW только если команда успешно выполнилась, т.е. не было никаких TRAP4.Значит раньше было правильно, а теперь нет - сейчас исправлю и перезалью.

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

Исправил и перезалил.

MiX
12.11.2017, 23:46
Не знаю как с этим обстоит на 1801ВМ1
Как на ВМ1 проверить?

Alex_K
12.11.2017, 23:47
Как на ВМ1 проверить?
Нужен регистр, который реагирует только на чтение, а на запись возникает TRAP4.

MiX
12.11.2017, 23:51
Нужен регистр, который реагирует только на чтение, а на запись возникает TRAP4.
Да в общем то могу все перебрать.
Какие команды пульта?

Alex_K
13.11.2017, 00:05
Да в общем то могу все перебрать.
Какие команды пульта?
Тут сначала нужен набор регистров, что есть на плате. Насколько я понимаю, то там 1801ВП1-???.
А команду можно занести в пульте по адресу 1000 и выполнить в виде шага командой P, перед этим установив в R7=1000 и оставив активным сигнал HALT.

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

А ведь на МС1201.01 есть же кусочек ПЗУ по адресу 173000. Вот он и реагирует только на чтение и игнорирует запись. Вполне сойдет.
Для этого тест еще надо установить указатель стека R6=1000. После прерывания по TRAP4 в стеке в ячейках 774 и 776 будут значения R7 и PSW в момент прерывания, вот они и нужны.

MiX
13.11.2017, 00:06
ВП1-030
ВП1-033
ВП1-034
ВП1-035

Patron
13.11.2017, 00:18
Нужен регистр, который реагирует только на чтение, а на запись возникает TRAP4.Чем плохо просто записать ноль по адресу 160000 и проверить сохранённое в стеке значение PSW на отсутствие бита Z :



@776/177777
001000/177777 10011
001002/000000
@R6/177614 1000
@R7/160556 1000
@R0/160554 0
@R1/000001 160000
RS/000350 341
RS/000341
@P
000003
@776/000341

MiX
13.11.2017, 00:44
На ВМ1.

000001
@776/122540 177777
@1000/177777 10011
001002/000000
@R6/177574 1000
@R7/000001 1000
@R0/160134 0
@R1/000000 160000
RS/000000 341
@/000341
@P
000003
@776/000341

MiX
18.11.2017, 16:25
Попробовал загрузится с прошивки от платы И4 Эл.60. На приводе DX вылетает, на DY пробует читать и встает, чего-то ждет.

Загрузчик (http://rgho.st/download/private/74xDb4SsM/0fbaefcf1aa9132a132fa484d5b47ce0/7daecca3c1d7445ca0b6eb702f5f9cd3f98668b8/BOOT_I4_GMD7012.rom)

MiX
19.11.2017, 00:36
Привод DX в принципе не имеет команды форматирования, а для привода DY команда Set Density пока не эмулируется ( и вряд ли когда-то будет ).А как это относится к режиму плотности? Что тогда будет делать эмулятор при смене диска с DY на DX, на приводе DY?

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

Ещё вопрос про режим ПДП для DY. Реализован?

Patron
19.11.2017, 01:26
Ещё вопрос про режим ПДП для DY. Реализован?Реализован так:



case CMD_EMPTY:
{
switch( nCMD_Phase )
{
case 1:
{
nCMD_WordCount = wDATA & 0xFF;
nCMD_Phase = 2;
bTR = true;
}
break;

case 2:
{
nCMD_BufAddr = wDATA;
nCMD_BufAddr |= nCMD_ExtAddrBits;
nCMD_Phase = 0;
bTR = false;

if( ( bCMD_DoubleDensity && nCMD_WordCount > 128 )
|| ( !bCMD_DoubleDensity && nCMD_WordCount > 64 ) )
{
nLastErrorCode = 0230;
wRXES |= BIT_10;
CMD_Done_Error();
}
else
{
int nBytes = nCMD_WordCount * 2;

for( int i = 0 ; i < nBytes ; i++ )
{
dword addr = nCMD_BufAddr + i;
if( !*pb22bit ) { addr &= 0xFFFF; }
if( !abWriteAccess[addr] )
{
wRXES |= BIT_11;
return CMD_Done_Error();
}
BYTE( addr ) = SectorBuf[i];
}

CMD_Done();
}
}
break;
}
}
break;

MiX
19.11.2017, 20:12
Реализован так:
Без комментариев мне не понятно.
По сути реализация эмуляции контроллера DY не привязана к ВП1-033?

Patron
19.11.2017, 22:08
По сути реализация эмуляции контроллера DY не привязана к ВП1-033?Контроллер DY эмулируется по стандарту DEC. Похоже, что ВП1-033 не может работать с 18-разрядной шиной, тогда как DY - может.

MiX
20.11.2017, 20:14
Контроллер DY эмулируется по стандарту DEC.
Тогда интересно было бы узнать почему загрузчик платы И4 не грузит.

Похоже, что ВП1-033 не может работать с 18-разрядной шиной, тогда как DY - может.
А DY обязательно 18-разрядная шина нужна?

Patron
20.11.2017, 21:53
Тогда интересно было бы узнать почему загрузчик платы И4 не грузит.Потому что это кусок загрузчика DX. Он доходит до чтения прочитанного сектора из буфера контроллера и осуществляет переход за пределы кода.

Оригинал из прошивки ДВК-1 выглядит так:



ROM:173000 Mov #100247, R2
ROM:173004
ROM:173004 loc_173004: ; CODE XREF: ROM:173046
ROM:173004 ; ROM:173064
ROM:173004 Mov #177170, R1
ROM:173010
ROM:173010 loc_173010: ; CODE XREF: ROM:173012
ROM:173010 BiTB R2, (R1)
ROM:173012 BEq loc_173010
ROM:173014 MovB #^B111, R3
ROM:173020 Mov R1, R0
ROM:173022 Mov R2, (R0)+
ROM:173024 Br loc_173032
ROM:173026 ; ---------------------------------------------------------------
ROM:173026
ROM:173026 loc_173026: ; CODE XREF: ROM:173050
ROM:173026 Mov #1, (R0)
ROM:173032
ROM:173032 loc_173032: ; CODE XREF: ROM:173024
ROM:173032 ASR R3
ROM:173034 BCS loc_173042
ROM:173036 MovB (PC)+, (R1)
ROM:173040 ; ---------------------------------------------------------------
ROM:173040
ROM:173040 loc_173040: ; CODE XREF: ROM:173054
ROM:173040 MovB (R0), (R3)+
ROM:173042
ROM:173042 loc_173042: ; CODE XREF: ROM:173034
ROM:173042 ; ROM:173036
ROM:173042 BiT R2, (R1)
ROM:173044 BEq loc_173042
ROM:173046 BMi loc_173004
ROM:173050 BCS loc_173026
ROM:173052 TstB (R1)
ROM:173054 BMi loc_173040
ROM:173056 Clr R0
ROM:173060 Cmp #240, (R0)
ROM:173064 BNE loc_173004
ROM:173066 CmpB #247, R2
ROM:173072 AdC R0
ROM:173074 Clr @#177674 ; CPC
ROM:173100 Mov #340, @#177676 ; CPSW
ROM:173106 START



А DY обязательно 18-разрядная шина нужна?Если контроллер DY - он может работать и с 16-разрядной, и с 18-разрядной шиной. Про ВП1-033 не вполне понятно - он может выбирать одиночную/двойную плотность и работать с ДМА? Если нет - тогда только DX.

Alex_K
20.11.2017, 22:04
Контроллер DY эмулируется по стандарту DEC. Похоже, что ВП1-033 не может работать с 18-разрядной шиной, тогда как DY - может.

Если контроллер DY - он может работать и с 16-разрядной, и с 18-разрядной шиной. Про ВП1-033 не вполне понятно - он может выбирать одиночную/двойную плотность и работать с ДМА? Если нет - тогда только DX.
1801ВП1-033 работает только с 16-разрядной шиной адреса, выбора плотности нет, DMA не поддерживает. Так что только DX. Описание есть в "Микропроцессорные средства и системы" № 05/1988 стр. 87-94.

MiX
25.11.2017, 16:56
Потому что это кусок загрузчика DX. Он доходит до чтения прочитанного сектора из буфера контроллера и осуществляет переход за пределы кода.
Вроде как загрузчик был битый. Более того, этот кусок совпадает с куском кода прошивки 055 с адреса 022.

Исправленный загрузчик- здесь. (http://rgho.st/download/private/7NSVq6QKY/19f6c201037a9b6601e1d84b02f39fa9/73569a654a14f6af5a3b45eefd6be2043c879264/BOOT_I4_GMD7012.rom)


Если нет - тогда только DX. Да, вроде только DX. Непонятно кому предназначался код загрузчика DY в прошивке 055.
Ну и DY думаю что может в PIO работать без DMA.

Alex_K
25.11.2017, 19:15
Да, вроде только DX. Непонятно кому предназначался код загрузчика DY в прошивке 055.
Ну и DY думаю что может в PIO работать без DMA.
Две статьи из журнала "Микропроцессорные средства и системы":
1. Как работать с двойной плотностью на ГМД-7012 на ДВК через 1801ВП1-033. Статья "Использование двойной плотности записи на НГМД "Электроника ГМД-7012" при работе с микроЭВМ "Электроника МС 1201"" МПСиС № 01/1988 стр. 49-51.
2. Собственно контроллер, который может и ПДП, и работает с драйвером DY.SYS. Статья "Интерфейс накопителя на гибких магнитных дисках" МПСиС № 03/1988 стр. 32-34.

MiX
25.11.2017, 19:49
Две статьи из журнала
Я это видел. К ВП1-033 это никак не относится.

Alex_K
25.11.2017, 19:57
Я это видел. К ВП1-033 это никак не относится.
А в первой статье как раз и описано как через 1801ВП1-033 работать с двойной плотностью.

MiX
25.11.2017, 20:48
А в первой статье как раз и описано как через 1801ВП1-033 работать с двойной плотностью.
Это похоже на обход ограничений 1801ВП1-033. Лучше бы сделали другую ВПшку с необходимой поддержкой команд/сигналов.

Другое интересно, 1801ВП1-033 можно переключить на консольный адрес с параллельным вв/выв. Такое могли бы реализовать в КЦГД, вместо двух ВП1-065. Скорость бы примерно вдвое повысилась.
Ну это уже оффтоп.

Alex_K
25.11.2017, 21:21
Это похоже на обход ограничений 1801ВП1-033. Лучше бы сделали другую ВПшку с необходимой поддержкой команд/сигналов.
Ну да. 1801ВП1-033 не может зараз передать 12 бит, потому двумя посылками по 8 бит. Да и ПДП не поддерживает, читают из буфера по старинке.


Другое интересно, 1801ВП1-033 можно переключить на консольный адрес с параллельным вв/выв. Такое могли бы реализовать в КЦГД, вместо двух ВП1-065. Скорость бы примерно вдвое повысилась.
Ну это уже оффтоп.
Параллельный ввод-вывод она поддерживает только совместно с 1801ВП1-034. 1801ВП1-033 выдает информацию в последовательном коде, а 1801ВП1-034 преобразует его в параллельный. Так что быстрее может и не будет. Вот 1801ВП1-120 - быстрее некуда.

MiX
26.11.2017, 23:12
Patron, Как увеличить объем в ПЗУ-Пульт СМ ? На опцию ROM_Bytes не реагирует.
Если конечно возможно там больше 512 сделать.

Patron
27.11.2017, 00:48
Как увеличить объем в ПЗУ-Пульт СМ ? На опцию ROM_Bytes не реагирует.Никак не увеличить. SM_ROM - это контроллер, показывающий в окне размером 512 - куски кода ПЗУ общим объёмом 2048.

MiX
27.11.2017, 01:54
То-есть чтобы запихнуть код в 4кб надо два окна делать?

Patron
27.11.2017, 11:44
То-есть чтобы запихнуть код в 4кб надо два окна делать?Надо делать эмулятор другого устройства. Для эмулятора контроллера SM_ROM можно только задавать файл с кодом прошивки - все остальные параметры неизменны и соответствуют оригиналу.

MiX
27.11.2017, 20:55
Надо делать эмулятор другого устройства.
Да, сделайте пожалуйста. Если я не ошибаюсь, окна имеют адрес 177520, 177524.
Прошивку прилагаю.

Здесь. (http://rgho.st/download/private/6CtK4cP4K/63841689d81630e7ea4d48451ab10e26/fccb34ec761ad5f9ae64a195617a024a9d5822e6/MS3401.BIN)

Patron
27.11.2017, 22:50
Если я не ошибаюсь, окна имеют адрес 177520, 177524.Это аналог BDV11 - в описании BDV11 (http://www.bitsavers.org/pdf/dec/qbus/EK-BDV11-TM-001_Mar78.pdf) механизм отображения страниц ПЗУ подробно расписан. К следующему релизу добавлю эмулятор BDV11_ROM ( родной BDV11 содержит ещё и регистр лампочек/переключателей, который у нас уже эмулируется устройством SwitchReg ).

MiX
27.11.2017, 23:31
Это аналог BDV11
Да, вроде максимально там можно подключить ПЗУ общим объёмом 24кб. Так можно и ОС в ПЗУ загнать. :)

Patron
27.11.2017, 23:50
Да, вроде максимально там можно подключить ПЗУ общим объёмом 24кб.22 килослова == 44 Кб.

Со страницы 0 сидит BOOT_ROM ( до 8 Кб ), со страницы 40 сидит EPROM ( в оригинале - не дальше страницы 57, т.е. до 4 Кб ), со страницы 200 сидит SYSTEM_ROM ( до 32 Кб ).

Такие три BIN-образа и можно будет подключать к эмулятору BDV11_ROM.

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

Я понял так, что переключателями на плате BDV11 можно задавать, какая из этих трёх групп страниц будет мапиться по адресу 0173000 после включения питания ( или после нажатия кнопки <Reset> ).

MiX
28.11.2017, 00:32
22 килослова == 44 Кб.
Я посчитал по кол-во шт. ROM 2708. Если ставится 2716 то будет 49152б.

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


Я понял так, что переключателями на плате BDV11 можно задавать, какая из этих трёх групп страниц будет мапиться по адресу 0173000 после включения питания ( или после нажатия кнопки <Reset> ).

Одновременно все три не работают? В смысле запуск идет с одной из трех, а мапяться все.

Patron
28.11.2017, 01:45
В смысле запуск идет с одной из трех, а мапяться все.Работа джамперов описана в разделе: 4.7 SOCKET SELECTION LOGIC.

Похоже, что ситуация следующая:

1. В конфигурации "AA" - BOOT_ROM = 0..37 ; EPROM = 40..57 ; SYSTEM_ROM = 200..377

2. В конфигурации "AB" - EPROM = 0..17 ; BOOT_ROM = 40..77 ; SYSTEM_ROM = 200..377

3. В конфигурации "FC" - SYSTEM_ROM = 0..177 ; BOOT_ROM = 200..237 ; EPROM = 240..257

4. В конфигурации "FD" - SYSTEM_ROM = 0..177 ; EPROM = 200..217 ; BOOT_ROM = 240..277


Другие конфигурации ( "EB", "GC", "GD" ) нужны только если в сокетах SYSTEM_ROM вместо микросхем 2716 используются 2708, поэтому эмулироваться будут только конфигурации, описанные выше, а микросхемы меньшей ёмкости можно будет изображать BIN-образом меньшего размера.

Patron
28.11.2017, 19:59
.

В последнем релизе обнаружена ошибка в эмуляции команды SXT для процессоров 1801ВМ1 и 1801ВМ2, внесённая в день релиза при экстренном исправлении кода.

Исправленный вариант релиза перевыложен: DVK_Emulator_28.11.17_19-51 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_28.11.17_19-51.rar)

Patron
03.12.2017, 18:41
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_04.12.17_20-12 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_04.12.17_20-12.rar)

Изменения:

1. Исправлена серьёзная ошибка эмуляции процессора 1801ВМ3, из-за которой при обработке TRAP_4 второе слово вектора прерывания извлекалось в адресном пространстве текущей моды ( перед чтением нового PSW из ячейки с адресом 000006 - не производилась установка KERNEL-моды ).


2. Исправлена ошибка эмуляции системного таймера LTC в составе платы DL11-W - при очистке CSR бит разрешения прерываний не сбрасывался.


3. В модуль CPU11_module.em добавлен объект BDV11_ROM, эмулирующий контроллер страничного ПЗУ BDV11 без системного таймера. В комплект поставки добавлен файл прошивки MS3401.bin, примеры использования добавлены в файлы конфигурации DisAsm.cfg и VM3.cfg.


Эмулятор BDV11_ROM использует образы ПЗУ, задаваемые параметрами:

BOOT_ROM_File - Содержимое микросхем типа 2716 общим объёмом 4Кб из разъёмов E53/E48
DIAG_ROM_File - Содержимое микросхем типа 2716 общим объёмом 4Кб из разъёмов E58/E44
EPROM_File - Содержимое микросхем типа 2708 общим объёмом 2Кб или 4Кб из разъёмов E57/E40 и E52/E36
SYSTEM_ROM_File - Содержимое микросхем типа 2708 общим объёмом от 2Кб до 16Кб ( с шагом 2Кб ) или микросхем типа 2716 общим объёмом от 4Кб до 32Кб ( с шагом 4Кб ) из разъёмов E54/E49, E59/E45, E60/E41, E55/E37, E51/E38, E47/E42, E43/E46, E39/E50.


Режим отображения содержимого микросхем на страницы ПЗУ задаётся параметром MapMode_AA_AB_FC_FD со следующими возможными значениями:

AA - BOOT_ROM = 0..17 ; DIAG_ROM = 20..37 ; EPROM = 40..57 ; SYSTEM_ROM = 200..377

AB - EPROM = 0..17 ; BOOT_ROM = 40..57 ; DIAG_ROM = 60..77 ; SYSTEM_ROM = 200..377

FC - SYSTEM_ROM = 0..177 ; BOOT_ROM = 200..217 ; DIAG_ROM = 220..237 ; EPROM = 240..257

FD - SYSTEM_ROM = 0..177 ; EPROM = 200..217 ; BOOT_ROM = 240..257 ; DIAG_ROM = 260..277


Параметр SwitchRegister_Data задаёт режим начального пуска для прошивки MS3401.bin:

01000 - Запуск DIAG_ROM
02000 - Запуск EPROM
04000 - Запуск SYSTEM_ROM

0040 - Загрузка с DX0
0140 - Загрузка с DY0
0200 - Загрузка с RK0



***** ДОСТУПНОЕ ОЗУ - 256 K *
@ 001000
@177773000G
SL V08.00 [SW] Сторожевых С.В. 1988

RT-11SJ (Y) V05.04 G

MiX
03.12.2017, 18:47
Круто!

MiX
04.12.2017, 00:43
Почти получилось :)

http://i12.pixs.ru/storage/4/3/7/ERR6jpg_1597015_28536437.jpg

Если Трап 10, то скорее всего FISа не хватает.

Прошивка. (http://rgho.st/download/private/6pJgfGFwd/55c21c1fc3ca6772afbb0c51eb7368cf/93e57ed1f26e361595c25da41343826da338087e/23-453e4_454e4.bin)

Patron
04.12.2017, 21:00
скорее всего FISа не хватает.Всё оказалось хитрее.

Прошивка рассчитывает, что в режиме MMU18 в регистрах PAR читаются все старшие разряды 22-разрядного адреса страницы. У 1801ВМ3 это не так - поэтому при работе прошивки на 1801ВМ3 происходит сбой настроек мапинга. Универсальный вариант прошивки отличается всего двумя словами: KDF11B-BJ_ROM_v1.1+.bin (http://emulator.pdp-11.org.ru/misc/KDF11B-BJ_ROM_v1.1+.zip)

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

Для запуска прошивки нужно отключить таймер эмулятора материнской платы и подключить LTC-таймер эмулятора платы DL11-W:



[CpuBoard.ini]
LineClock_ComponentDisabled = 1

[TerminalPort.ini]
DL11W_LineClock_ComponentDisabled = 0


[BDV11.ini]
MapMode_AA_AB_FC_FD = FC
SwitchRegister_Data = 040
BOOT_ROM_File =
DIAG_ROM_File =
EPROM_File =
SYSTEM_ROM_File = KDF11B-BJ_ROM_v1.1+.bin



@173000G
KDF11B-BJ ROM V1.1+

256KB MEMORY
CLOCK ENABLED

Type ? for HELP
Enter one of [Boot, Diagnose, Help, List, Map]:?

Command Definition

Boot Load and start a program from disk or tape
Diagnose Run Extended memory test
List Print a list of bootable devices
Map Run the system mapping routine

Type ? for HELP
Enter one of [Boot, Diagnose, Help, List, Map]:



В процессе запуска прошивки были обнаружены две кошмарные ошибки - одна в эмуляции процессора 1801ВМ3 и другая - в эмуляции системного таймера LTC в составе платы DL11-W.

Исправленный вариант релиза перевыложен: DVK_Emulator_04.12.17_20-12 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_04.12.17_20-12.rar)

MiX
05.12.2017, 06:26
Patron, К сожалению MAP зависает, и нет автостарта по 173000. После KDF идет переход на основную прошивку.

KDF***** Доступное ОЗУ - 256 К *
@ 001000
@

Patron
05.12.2017, 12:02
К сожалению MAP зависает, и нет автостарта по 173000. После KDF идет переход на основную прошивку.Как может не зависнуть MAP - понять сложно. Если прогнать этот код в другом эмуляторе со страничным ПЗУ и он не зависнет - было бы интересно увидеть в логе выполнения, как там можно не зависнуть.

Что же до автостарта - прошивка умеет отличать автостарт от ручного запуска и при автостарте реализует более сложный алгоритм, в котором 1801ВМ3 не проходит тест MMU из-за своих уникальных особенностей. Вариант прошивки с поломанным тестом MMU: KDF11B-BJ_ROM_v1.1x.bin (http://emulator.pdp-11.org.ru/misc/KDF11B-BJ_ROM_v1.1x.zip) ( так как это порченная прошивка - исправлять контрольные суммы блоков я не стал ).

Режим автостарта зависит от значения SwitchRegister_Data. При нуле или недопустимом значении - прошивка выходит на диалог:




KDF11B-BJ ROM V1.1x

256KB MEMORY
9 STEP MEMORY TEST
STEP 1 2 3 4 5 6 7 8 9
TOTAL MEMORY ERRORS = 0
CLOCK ENABLED

Type ? for HELP
Enter one of [Boot, Diagnose, Help, List, Map]:



Допустимые значения задают устройство автозагрузки:

001 = MS0
002 = DD0
003 = DD1
004 = DX0
005 = DX1
006 = DY0
007 = DY1
010 = DU0
011 = DU1
012 = DU2
013 = DU3
014 = DU4
015 = DU5
016 = DU6
020 = DL0
021 = DL1
022 = DL2
023 = DL3
024 = XH0
025 = XH1
030 = MU0
071 = NE

MiX
05.12.2017, 20:27
Как может не зависнуть MAP - понять сложно. Если прогнать этот код в другом эмуляторе со страничным ПЗУ и он не зависнет - было бы интересно увидеть в логе выполнения, как там можно не зависнуть.
Я могу на реальном 1801ВМ3 прогнать, но только нужен вариант в SAV.


Что же до автостарта - прошивка умеет отличать автостарт от ручного запуска и при автостарте реализует более сложный алгоритм, в котором 1801ВМ3 не проходит тест MMU из-за своих уникальных особенностей. Понятно что это специфическая прошивка. Есть универсальная прошивка которою я запускал с платой М2, где никакого MMU нет. Но нужен другой контроллер с окнами 165000,173000. Остальное вроде в эмуляторе есть.
Контроллер - М7195-FА
Прошивка - здесь. (http://rgho.st/download/private/8Q5N4jGbK/7029531db71eedc174655154bd9673c0/facacc26b1d49508866b6229b906f4351adbc047/M7195.BIN)

MiX
07.12.2017, 00:48
Запустил сегодня плату М7195-FА вместе с платой МС1201.02.

Основное меню.
http://i12.pixs.ru/storage/0/5/1/2017120700_4815940_28569051.jpg

А вот МАР.

http://i12.pixs.ru/storage/0/5/8/2017120700_3152079_28569058.jpg

И работает без MMU.

Patron
07.12.2017, 21:36
Хотя нет, я наврал, говоря что сложно понять, почему на 1801ВМ3 зависает сканирование страницы ввода-вывода.

Всё совершенно очевидно:


173236 [140340] TST (R3)+ ; 040000:000000

################
Trap to 004 = Чтение по пустому адресу: 040000
################


1801ВМ3 - тот самый процессор, который не выполняет автоинкремент регистра при зависании шины. Остальные процессоры выполняют, поэтому большинство программ сканирования адресов на ВМ3 зависают. В частности - именно поэтому на ВМ3 невозможно загрузить родную DSM-11.

MiX
09.12.2017, 13:24
Ещё проблема.
Добавил диск DY в конфигурацию VM3, после набрал 173000 и вышел в меню. Далее набрал B и DY0 получил вылет 000602. Если DY1 то 000202.

MiX
03.01.2018, 21:23
Контроллер DY эмулируется по стандарту DEC. Похоже, что ВП1-033 не может работать с 18-разрядной шиной, тогда как DY - может.
Можно ли вынести сигналы на порт LPT для подключения ГМД7012. ГМД7012 умеет читать/писать диски двойной плотности, но для начала хотя бы прочитать DX по LPT.

Спасибо и с Новым годом!

Patron
04.01.2018, 00:39
Можно ли вынести сигналы на порт LPTТакой возможности нет и не будет, пока в Win32 не появится возможность работы с сигналами порта LPT ( т.е. не будет никогда ).

MiX
04.01.2018, 02:12
Такой возможности нет и не будет, пока в Win32 не появится возможность работы с сигналами порта LPT ( т.е. не будет никогда ).
Нашёл плагин (http://mmbuilder.ru/forum/25-2828-1) для работы с LPT. Подойдёт?

Patron
04.01.2018, 13:29
Нашёл плагин (http://mmbuilder.ru/forum/25-2828-1) для работы с LPT. Подойдёт?Плагин использует драйверы, поэтому не пойдёт - нужна нативная поддержка в Win32.

BYTEMAN
05.04.2018, 23:15
Возник вопрос: создаю пустую ленту типа 810, загружаю с DX0 xxdp в виде ТЕДОС, загружаю UPD2 и в нем делаю ZERO MT1:, возникает ощущение что эмуль подвис... Можно как-то узнать, висим, или пишем на MT1? Размер файла не меняется после отмонтирования.

Patron
06.04.2018, 13:29
Возник вопрос: создаю пустую ленту типа 810, загружаю с DX0 xxdp в виде ТЕДОС, загружаю UPD2 и в нем делаю ZERO MT1:, возникает ощущение что эмуль подвис... Можно как-то узнать, висим, или пишем на MT1?Проверил.

Если смонтировать образ ленты в MT0: и дать команду ZERO MT1: - XXDP зависает.

Если смонтировать образ ленты в MT0: и дать команду ZERO MT0: - успешно создаётся пустая лента.


Чтобы было видно, что происходит с приводами - можно использовать кнопки приводов.

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



[VT52.ini]
InitialStateOf[StatusBar] = 1



Затем внести в секции конфига [objects] и [links] следующие дополнения:



[objects]
D0_Button = Ядро:SB_DriveButton
D1_Button = Ядро:SB_DriveButton


[links]
VT52 + D0_Button + MT
VT52 + D1_Button + MT



И добавить в конфиг две новых секции:



[D0_Button.ini]
SB_Part_Data = nPosition[1] | nPriority[0] | bHidden[0]
Unit_Number = 0
ShowTrackNum = Yes


[D1_Button.ini]
SB_Part_Data = nPosition[1] | nPriority[0] | bHidden[0]
Unit_Number = 1
ShowTrackNum = Yes

BYTEMAN
06.04.2018, 16:17
Если смонтировать образ ленты в MT0: и дать команду ZERO MT1: - XXDP зависает.

Я монтировался к МТ1:. Дело в том, что в SYSGEN'е захардкожено MT1... И при монтировании в MT1: XXDP всё равно виснет...


Чтобы было видно, что происходит с приводами - можно использовать кнопки приводов.

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

Спасибо, попробую!

Patron
06.04.2018, 17:11
Я монтировался к МТ1:Попробовал смонтировать в MT1:

Тот вариант XXDP, который идёт в комплекте эмулятора - работает без проблем.

BYTEMAN
06.04.2018, 17:16
Попробовал смонтировать в MT1:

Тот вариант XXDP, который идёт в комплекте эмулятора - работает без проблем.

Patron, получилось... Не знаю, с чем было связано, пересоздал образ и всё заверте... Ещё раз спасибо! :)

hobot
20.05.2018, 19:43
Patron, не заметил с какого момента (последнее время всё время запускаю другой конфиг)
с прошивкой 377.DAT стал ловить на старте вот такую ошибку вместо автостарта
в чём может быть причина?




Тест HALT-режима*
Доступное ОЗУ - 256 К*
Тест ДП и прерываний*
Тест НЖД
? - Ошибка ДП*
@013370
@

далее по кнопке B и выбор устройство можно спокойно загрузиться.
Ошибку можно воспроизвести заменив номер прошивки в стандартном VM3.CFG

? ? ?

Patron
20.05.2018, 21:49
в чём может быть причина?Причина в слишком высокой скорости эмуляции. В комплектом конфиге стоит скорость эмуляции 2000 KIPS - на этой скорости автозагрузка работает. При скорости эмуляции 5000, 9000 и MAX - возникает описанная ошибка.

hobot
20.05.2018, 22:38
Причина в слишком высокой скорости эмуляции. В комплектом конфиге стоит скорость эмуляции 2000 KIPS - на этой скорости автозагрузка работает. При скорости эмуляции 5000, 9000 и MAX - возникает описанная ошибка.
семён семёныч )
благодарю за быстрый ответ, Patron.

MiX
18.10.2018, 23:05
1801ВМ3 - тот самый процессор, который не выполняет автоинкремент регистра при зависании шины.
Запустил плату СМ1 с прошивкой KDF11B-BJ V1.1 (не патченная) и платой М6. Так вот МАР там после 00000000 -00777776 автоматически не идет. Программа перед этим пишет: Type CTRL/C to go to next step что скорее всего там и нет автоперехода.

Собственно загрузка и МАР.
После 00777776 нажал CTRL/C.
После Press RETURN to continue нажал Enter.

KDF11B-BJ ROM V1.1

256KB MEMORY
9 STEP MEMORY TEST
STEP 1 2 3 4 5 6 7 8 9
TOTAL MEMORY ERRORS = 0
CLOCK DISABLED

Type ? for HELP
Enter one of [Boot, Diagnose, Help, List, Map]:M
MAP
Type CTRL/C to go to next step

CPU OPTIONS
EIS FIS

MEMORY
Starting Ending
Address Address
00000000 00777776


Control C Abort
I/O
Starting Ending
Address Address
17772100 17772100
17772300 17772316
17772340 17772356
17772516 17772516
17773000 17773776

Press RETURN to continue

17777520 17777524
17777546 17777546
17777560 17777566
17777572 17777616
17777640 17777656
17777776 17777776

Type ? for HELP
Enter one of [Boot, Diagnose, Help, List, Map]:

MiX
20.10.2018, 20:56
По эмулятору BDV11 с пр. MS3401.bin

0040 - Загрузка с DX0
0140 - Загрузка с DY0
0200 - Загрузка с RK0

И ещё 0010 - Загрузка с ПЗУ МС3401. (MapMode =AA.)

28
СТАРТ? Где 28 -объём ОЗУ в 16 разрядном адресном пространстве.
Что-то мало показывает.

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

UPD Похоже что объём ОЗУ в словах исключая 8Кб (4КW) I/0.

AFZ
26.10.2018, 08:37
Устройство HD - варианты контроллеров и драйверов. Я тут закончил разборки с железом, начинаю программировать. Сразу скажу, в таком виде, как оно есть, не годится. У меня в МК всего 64К оперативки, к тому же часть ее ннобходима для собственных нужд. Поэтому я не могу использовать буферизацию произвольного объема, а "на лету" не выйдет даже чтение. Хоть чтение uSD и быстрое, но в 10 мкс тайм-аута МПИ оно не уложится. С другой стороны, чтение действительно быстрое, поэтому тормозить его лишней проверкой в цикле нежелательно. То есть, пока, я для отладки, скорее всего, добавлю туда под метки 10$: пару команд - TSTB @R3 / BPL 10$ под первую и TSTB -2(R5) / BPL 10$ под вторую, но, по-хорошему, надо бы как-то с этим разобраться, тем более, что запись иногда (не всегда) может оказаться весьма долгой - десятки мс, а то и ближе к сотне.

Мы же, вроде-бы, планировали, все-таки, поблочный обмен. Тогда все прозрачно, отправили блок на запись и выходим, пусть многозадачка, если она есть (тот же TSX) занимается своими делами. Блок записан - прерывание, отправляем на запись следующий блок. И с чтением - прочитали очередной блок на полной скорости - 10$:MOV @R5,(R2)+ / SOB R1,10$, пустили чтение нового, пока то да сё, он уже и прочитался...

Patron
26.10.2018, 21:35
Я тут закончил разборки с железом, начинаю программировать. Сразу скажу, в таком виде, как оно есть, не годится. У меня в МК всего 64К оперативки, к тому же часть ее ннобходима для собственных нужд. Поэтому я не могу использовать буферизацию произвольного объемаСмысл устройства HD в том, что оно принимает запросы операционки без обработки в драйвере ( без разбиения на блоки, пересчёта в дорожки/сектора и т.п. ), поэтому, если имеющаяся база не годится для реализации устройства HD, то HD можно взять за основу и сделать собственное устройство, ведущее обмен блоками по 512 байт. Тогда в драйвер надо добавить соответствующий пересчёт запроса операционки в блоки.



Блок записан - прерывание, отправляем на запись следующий блок.Т.е. уже решено, что устройство будет работать по прерываниям без ПДП ( как DW ) ?

Такой алгоритм реализован в драйвере HD t5 - там нужно только добавить разбиение/склейку блоков при записи/чтении и не передавать между драйвером и устройством количество слов, потому что в каждой операции их будет всегда 256.

AFZ
27.10.2018, 09:31
Смысл устройства HD в том, что оно принимает запросы операционки без обработки в драйвере Это можно делать только с DMA, там действительно можно перенести все разборки с блоками и пр. из драйвера устройства в контроллер. Допустим, для записи, как более тормозной операции - добыл блок через DMA, пошел его писать, записал - добыл следующий.. Ну, и у контроллера ресурсов побольше, чем у ЦП, так, что имеет прямой смысл это сделать.

А в PIO-mode я что-то не соображу, как сделать что-то подобное. Разве что использовать большой буфер, так у моего МК памяти не так много, да и с токи зрения скорости это как-то не очень - в DMA я могу, пока пишется очередной блок, добывать следующий, а здесь - изба фигвам!


Т.е. уже решено, что устройство будет работать по прерываниям без ПДП ( как DW ) ? Как первое (вернее даже, как нулевое) приближение - да. Все упирается в железо. Я уже доложился (http://zx-pk.ru/threads/28134-kontroller-psevdodiska-na-sd-karte-dlya-dvk.html?p=983843&viewfull=1#post983843) о том, что я сделал. Там же расписался в своей несостоятельности в изготовлении макетов - не с моим зрением делать сложные платы. Меня хватило только на PIO mode с прерываниями. Для DMA туда в макет надо добавить еще пяток микросхем шинных драйверов плюс еще немножко рассыпухи по мелочи.

В принципе, моя команда планирует что-то в этом роде, сейчас идет согласование, но все заняты по работе, не до хобби. И когда дело сдвинется, неизвестно, а макетка с PIOmode уже есть, поиграю пока с ней.


нужно только добавить разбиение/склейку блоков при записи/чтении и не передавать между драйвером и устройством количество слов, потому что в каждой операции их будет всегда 256. Если добавить бит или команду GO, то можно и меньше - при чтении оно по барабану, при записи я легко дополню остаток буфера нулями.

MiX
27.10.2018, 20:43
Patron, В эмуляторе есть конфиг Server в котором есть абстрактная сетевая плата. В реальности я полагаю должна быть плата DEQNA. Можно ли её заэмулировать?
На реальном ДВК подключил плату DEQNA, видится как 174440-174456. Но задача несколько иная, думая как по НХ загрузить через плату DEQNA ДВК.

На всякий случай - здесь (https://github.com/fsword7/ts10/blob/master/src/dev/uba/qna.c) можно посмотреть как эмулируется.

form
09.12.2018, 09:45
Но задача несколько иная, думая как по НХ загрузить через плату DEQNA ДВК.
Была у меня мысль сделать диск на етхернет, но отложил поскольку до сих пор ни у кого больше етхернета не было.
Если есть интерес пробовать, найду время.

А пока можно проверить получение времени через Ethernet с помощью DATE и TCP/IP :)

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

Вот такая мысль по поводу WorkDir в HD. Было бы удобно создавать и хранить в нем файл, скажем $$BOOT$$.BIN с атрибутом Hidden, в который бы помещались блоки 0-5. Тогда можно было бы делать диск с WorkDir загружаемым.
Правда тут придется так же вести синхронизируемый файл каталога диска чтобы номера блоков у файлов не прыгали. Зато при этом сохранялись бы атрибуты файла - например P.

MiX
09.12.2018, 10:19
Была у меня мысль сделать диск на етхернет, но отложил поскольку до сих пор ни у кого больше етхернета не было.
Да года так 4 как плата DEQNA лежит без дела.


А пока можно проверить получение времени через Ethernet с помощью DATE и TCP/IP
Дык DEQNA вроде как не умеет TCP/IP, если только софтово. Во всяком случае IP адрес я не увидел при сканировании сети.
Только вроде по своему DECnetовскому протоколу.
А раз загружать ДВК по DEQNA, то естественно на этот момент никакого софтового TCP/IP нет.

form
09.12.2018, 10:22
Дык DEQNA вроде как не умеет TCP/IP, если только софтово. Во всяком случае IP адрес я не увидел при сканировании сети.
Ну вообще-то это и есть софтовый функционал в принципе, а не функционал сетевого адаптера.
И TCP/IP для RT-11 отлично работает.

MiX
09.12.2018, 10:36
Ну вообще-то это и есть софтовый функционал в принципе, а не функционал сетевого адаптера.
И TCP/IP для RT-11 отлично работает.
Да но RT-11 должен быть уже загружен. В случае загрузки через DEQNA должен быть мощный загрузчик умеющий транскодировать TCP/IP.

form
09.12.2018, 10:47
Да но RT-11 должен быть уже загружен.
Речь шла о том, что в принцип можно попробовать то, что можно.

Стандартного варианта загрузки с сети для RT-11 не существует, и для V5.0 и новее это в принципе невозможно (вернее можно загрузить MDUP, но не полноценный RT-11).
Можно в теории загрузить RT-11 V4.0, собранный как MRRT или советский вариант RAFOS/RM.
Правда полезноссть результата весьма сомнительна (если речь не идет о загрузке некоего standalone backup) :)
Есть правда еще вариант - использовать такую загрузку как промежуточный вариант чтобы потом развернуть на VM: рабочий (как это делает MDUP.AI).

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

MiX
09.12.2018, 11:10
Речь шла о том, что в принцип можно попробовать то, что можно.
Ну в эмуляторе всё равно DEQNA нет. :)


Стандартного варианта загрузки с сети для RT-11 не существует
А для чего сетевые загрузчики сделаны ?

form
09.12.2018, 11:13
Ну в эмуляторе всё равно DEQNA нет.
В эмуляторе неинтересно, интересно на живом ДВК :)


А для чего сетевые загрузчики сделаны ?
Чтобы грузить урезанный вариант системы которая полностью живет в памяти. При этом может быть ограниченная поддержка запуска программ с сети (в RSX-11S например). Но эмуляции диска через сеть (что позволило бы использовать полноценную систему) при этом нет.

MiX
09.12.2018, 11:22
В эмуляторе неинтересно, интересно на живом ДВК
Ну при случае, могу выставить в сеть. Только как через DEQNA будет идти обмен?


Чтобы грузить урезанный вариант системы которая полностью живет в памяти. При этом может быть ограниченная поддержка запуска программ с сети (в RSX-11S например). Но эмуляции диска через сеть (что позволило бы использовать полноценную систему) при этом нет.
Фиг его знает. :)
Я когда стал использовать HX забыл про дискеты. :)

form
09.12.2018, 11:40
Только как через DEQNA будет идти обмен?
Ну как уже говорил, TCP/IP есть для RT-11. Сервисы вроде FTP/HTTP делаются легко.
TELNET в RT-11 требует особого подхода - нужен свободный терминальный порт который перекрестно соединяется с консольным.
Еще лучше все это выглядит в TSX+ (и совсем отлично в RSX-11M-PLUS) :)


Я когда стал использовать HX забыл про дискеты
Я ими так и не попользовался на 11/83.
Сначала использовался эмулятор TU58 чтобы загрузиться с нуля, потом VTCOM+TRANSF чтобы качать нужное, потом TCP/IP для RT-11 и FTP, ну и своя программка которая позволяла пошинкованый на кусочки образ диска залить на DU в блоки >65535.
HX тогда к сожалению еще не было :)

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

А для эмулятора лучше сделать виртуальный адаптер в стиле HD чтобы умел гонять пакеты с использованием WinPCAP (или может в виндовсе еще что есть - не знаю просто).

MiX
09.12.2018, 12:16
с использованием WinPCAP (или может в виндовсе еще что есть - не знаю просто)
WinPCAP это пакеты для программы анализатора Wireshark. Может WinSCP?

Но это уже за рамки данной темы.

form
09.12.2018, 12:27
WinPCAP это пакеты для программы анализатора Wireshark.
WinPCAP (https://www.winpcap.org/) - это привычная библиотека libpcap из унихов для Windows. Ее много кто использует, в том числе SimH и E11 в виндовсе для поддержки сети.

hobot
09.12.2018, 17:30
Но эмуляции диска через сеть (что позволило бы использовать полноценную систему) при этом нет. FTSN RTBOOT вспомнился в школьной локалке (УК-НЦ) ;-)

form
09.12.2018, 17:51
вспомнился в школьной локалке
Речь о стандартных средствах загрузки через Ethernet.

Patron
10.12.2018, 02:22
Вот такая мысль по поводу WorkDir в HD. Было бы удобно создавать и хранить в нем файл, скажем $$BOOT$$.BIN с атрибутом Hidden, в который бы помещались блоки 0-5. Тогда можно было бы делать диск с WorkDir загружаемым.Так и есть с самого начала. При записи на виртуальный диск в блоки 0..5 - в подключенном к диску каталоге создаётся файл BootSectors.bin

Пример находится в каталоге \AT11SJ.5M, где установлена операционка и который можно загрузить.

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

Если в каталоге имеется файл BootSectors.bin, то в этом файле также хранится точный образ сегментов каталога, что позволяет не терять текущую структуру каталога при каждом перезапуске эмулятора.

form
10.12.2018, 04:12
Если в каталоге имеется файл BootSectors.bin, то в этом файле также хранится точный образ сегментов каталога, что позволяет не терять текущую структуру каталога при каждом перезапуске эмулятора.
Но без этого теряются свойства файла даже сразу после команды их установившей :)

MiX
31.03.2019, 00:00
...
Некоторые отличия эмулятора от оригинала.
Переход по нечётному адресу 000001 на пр. ВМ1,ВМ2 в эмуляторе.

На оригинале.
На ВМ1

160550
@0/000000 5000
000002/177777 77001
@0G
000006
@R0/000000
R1/000001
R2/063437
R3/000000
R4/161237
R5/163666
R6/177614
R7/000006
RS/000004

На ВМ2

000002
@0/000000 5000
000002/177777 77001
@0G 000006
@R0/000000
R1/147530
R2/000000
R3/035250
R4/007676
R5/020514
R6/000016
R7/000006
RS/000004

На ВМ3 после выполнения по нулевому адресу тех-же команд, процессор входит в вечный цикл и на клавиши не реагирует. По нажатию кнопки УСТановка выход на 000004.

По адресу 10

@ 001000
@10/000000 5000
00000012/000000 77001
@10G
@ 000004
@R0/000000
R1/001122
R2/000000
R3/177000
R4/100003
R5/114000
R6/177774
R7/000004
RS/000000

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

Ещё один вариант на ВМ3.

@2/000000 5000
00000004/000000 77001
@2G
@ 077001
@R0/000000
R1/001122
R2/000000
R3/177000
R4/100003
R5/114000
R6/000370
R7/077001
RS/000000

Hunta
13.05.2019, 07:05
Добрый день.

Налетел на такое.

Если при трансляции MACRO налетает в исходнике на ошибки, то с большой степенью вероятности происходит своеобразное замораживание файловой системы на диске HD, подцепленном к каталогу в Windows - то есть никакие изменения в исходнике уже не видны. Приходится закрывать эмулятор и запускать его заново. Ещё информация - запуск идёт из COM файла, где ещё некоторое количество команд типа линковки и копирования. При завершении MACRO с ошибками остаток файла, ессвенно, не выполняется (это как раз норм). Но из за "замораживания" файловой системы запускать повторно после исправления ошибок бесполезно...

С уважением,
Хунта

Patron
16.05.2019, 20:31
Если при трансляции MACRO налетает в исходнике на ошибки, то с большой степенью вероятности происходит своеобразное замораживание файловой системы на диске HD, подцепленном к каталогу в WindowsЕсть такая беда.

Решить проблему алгоритмически невозможно. Причина в том, что при ошибках в компилируемом исходнике - MACRO иногда оставляет в рабочем каталоге временные файлы, а при наличии в каталоге временных файлов файловая операция считается незавершённой и синхронизация с каталогом Windows запрещается. К счастью проблема легко решается "процедурно" - достаточно после компиляции выполнить сжатие каталога RT-11 командой SQ. Тогда мусор из каталога будет убран и синхронизация немедленно восстановится.

Hunta
16.05.2019, 20:36
после компиляции выполнить сжатие каталога RT-11 командой SQ
Аха, спасибо! Решение подходит. Только вставлю команду не после, а до MACRO - после в случае с ошибкой она не выполнится :)

hobot
17.05.2019, 03:53
Patron, либо в конце ком файла сделать перенос исполняемого в вин-папку, а все предыдущие трансляции на одном из эмулируемых устр.

Решить проблему алгоритмически невозможно
а разве правильно написанный ком.файл поправленный с учётом описанной особенности - это не алгоритмическое решение? с вин папкой я то же ловил ошибки из за влияния окошек хоста, самая простая, когда 7-рка по умолчанию назначила всей папке атрибут "только чтение" )

в общем я бы использовать NTFS папку рекомендовал бы только как хранилище, а не устройство по умолчанию и уж тем более не как системное ) Что бы в разгар творческого процесса гарантированно не отвлекаться на Windows заморочки )

Hunta
17.05.2019, 05:56
рекомендовал бы
делать так, как удобней мне, а не hobot-у

Hunta
17.05.2019, 08:03
синхронизация с каталогом Windows запрещается
Подумал. Я бы сказал, что тут не рассинхронизация с каталогом, а вообще RT видит СТАРОЕ содержимое файла. То есть из Windows я файл поправил, а при последующей компиляции исходник без внесённых изменений... Я бы понял, если бы вновь добавленный файл не виден или обращение к удалённому файлу приводит к ошибкам.. То есть проблема на уровне каталога. А возникает проблема на уровне содержимого файла..

Patron
17.05.2019, 14:43
Я бы сказал, что тут не рассинхронизация с каталогом, а вообще RT видит СТАРОЕ содержимое файла.При подключении привода HD к каталогу Windows - эмулятор создаёт в ОЗУ временный DSK-образ ("виртуальный диск RT-11") с которым привод HD работает так же, как и с обычным DSK-образом. В начальный момент времени список файлов и содержимое файлов виртуального диска совпадают со списком и содержимым файлов в каталоге Windows. Такое состояние называется "начальная синхронизация". При любых изменениях с любой из сторон - синхронизация нарушается. Можно ведь не только в каталоге Windows исходник поправить, можно отредактировать его и на виртуальном диске - в обоих случаях синхронизация будет нарушена. Восстановление синхронизации виртуального диска и каталога Windows осуществляется по довольно сложным правилам, но если в каталоге виртуального диска есть временные файлы - синхронизация запрещена постоянно и можно творить жуткие вещи, например внести разные правки в оба "зеркальных" варианта исходника ( в каталоге Windows и на виртуальном диске RT-11 ), после чего вернуть синхронизацию командой SQ и посмотреть, какой вариант "победил". Не уверен, но подозреваю, что победит вариант с более поздним временем сохранения.

Hunta
17.05.2019, 15:35
При подключении привода HD к каталогу Windows - эмулятор создаёт в ОЗУ временный DSK-образ
Тогда понятно. Ну, у меня пока правки идут только в файлах под Windows, так что SQU будет хватать вполне и вроде как будет безопасно.
Спасибо!

AFZ
09.07.2019, 05:43
Что-то у меня не вышло смонтировать виндовую папку в качестве HDn через виндовый интерфейс. Я, конечно, нашел нужное место в конфиге и вписал нужное руками, но вопрс остался. Это что, недоработка, или я чего-то не нашел?

Patron
09.07.2019, 18:01
Что-то у меня не вышло смонтировать виндовую папку в качестве HDn через виндовый интерфейс.Если кнопка монтирования пустая, то для вызова диалога монтирования папки надо перед кликом по кнопке - нажать клавишу <Alt>. Если на кнопке монтирования выбрана папка - для выбора другой папки надо просто кликнуть по кнопке, а для выбора DSK-образа вместо папки - надо кликать при нажатой клавише <Alt>. Если на кнопке монтирования выбран DSK-образ - для выбора другого образа надо просто кликнуть по кнопке, а для выбора папки вместо DSK-образа - надо кликать при нажатой клавише <Alt>.

Проще говоря - для смены типа монтирования надо кликать при нажатой клавише <Alt>. Тип монтирования для пустой кнопки - DSK-образ.

AFZ
23.07.2019, 09:01
Подключаю конфигурацию VM3.cfg, запускаю эмулятор, копирую HD.SYS на DW0:, перезагружаюсь с DW, даю команду DIR HD: и получаю ?MON-F-Trap to 4 012440.

Patron
23.07.2019, 14:07
Подключаю конфигурацию VM3.cfg, запускаю эмулятор, копирую HD.SYS на DW0:, перезагружаюсь с DW, даю команду DIR HD: и получаю ?MON-F-Trap to 4 012440.Я не смог воспроизвести такую проблему. Как ни старался - всё работает как надо. Можно выложить архив с проблемным образом DW и использовавшимся конфигом и я их у себя позапускаю.

AFZ
23.07.2019, 16:07
Вот. (https://yadi.sk/d/5BCecKzBSnB-OA)

Patron
23.07.2019, 20:03
Вот. (https://yadi.sk/d/5BCecKzBSnB-OA)Драйвер HD.SYS в образе диска DW_System54.DSK не совпадает с тем же драйвером в образе диска HDSYS.DSK. Если скопировать драйвер из одного образа в другой средствами Windows - всё приходит в норму. Значит - драйвер испортился при копировании средствами RT-11 в процессе эмуляции. В конфиге стоит максимальное быстродействие, а при таком режиме драйвера DW могут глючить.

Можно для проверки скопировать несколько раз оригинальный драйвер на диск DW при максимальной скорости эмуляции и посмотреть - сколько раз он скопируется нормально. Когда скорость эмуляции ограничена - у драйвера DW гораздо меньше шансов запороть копирование, когда установлена скорость эмуляции: True - драйвер DW обязан работать без глюков.

AFZ
24.07.2019, 11:32
Где взять полноценную пропатченную RT-11V5.04, чтобы там были ХМ-ные дела, и монитор, и драйвера, и остальное?

А то в HDSYS.DSK только 5.07, да еще и без ХМ-ных дел. Даже драйвер пришлось собирать (я правильно выбрал V1.6 ?)

Patron
24.07.2019, 14:00
Где взять полноценную пропатченную RT-11V5.04, чтобы там были ХМ-ные дела, и монитор, и драйвера, и остальное?

Сгенерил патченный RT11XM v05.04 : RT-11XM_(Y)_V05.04_G.zip (http://emulator.pdp-11.org.ru/misc/RT-11XM_(Y)_V05.04_G.zip)

hobot
25.07.2019, 00:36
Сгенерил патченный RT11XM v05.04 : RT-11XM_(Y)_V05.04_G.zip (http://emulator.pdp-11.org.ru/misc/RT-11XM_(Y)_V05.04_G.zip)
Спасибо! В своём хламничке, в разделе ДВК продублирую обязательно !

+++ там! +++
http://archive.pdp-11.org.ru/ukdwk_archive/dwkwebcomplekt/DW_System54XM/

AFZ
05.08.2019, 06:13
Еще проблемка с драйвером HDX. Не хочет работать под TSX-ом. Вот образ диска (https://yadi.sk/d/eDRDV4tgLdcqQg), на нем сгенеренный TSX. Монтирую его в эмулятор, как DW, загружаюсь с него, запускаю TSX, работает. Монтирую, как HD, загружаюсь, даю команду TSX, и тишина... Да, драйвер HD.TSX получен путем переименования HDX.SYS. И он даже работает - загружаюсь с DW, запускаю TSX, набираю DIR HD0:, работает. А загрузиться с HD не может. Скорость CPU ставлю True - на высокой скорости и DW глючит, И TSX не запускается - ругается, что таймер не работает...

(в скобках замечу, что этот же TSX работает и на реальном ДВК с контроллером AZ. Правда, переименовать AZX.SYS в AZ.TSX нельзя - они у меня генерятся по-разному, ХМ-овский передает данные через KPAR1, как это положено в RT-11, а TSX-овский - через KPAR6, как надо в TSX. То есть, конечно, положено эти вещи делать через P1EXT, но я поленился вникать в эти дела и, по-простому, сделал разные генерации для XM и для TSX.) Но ведь HD работает через DMA, адрес получает от системы через $MPPHY, да и работает этот драйвер в качестве несистемного. А как системный - увы. Непонятно...

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

Да, в выложенном файл-образе HD включён, как MAPH. Перегенерил его, как NOMAPH, по барабану. Тем более, что он благополучно работает, как несистемный. А вот загрузить TSX не может.

Кстати, подозреваю, что всё, связанное с .DRBOT, при запуске TSX не при делах - первичную загрузку TSX делает через RT-11. Правда, что там дальше - черт его знает, но первичный загрузчик, по-любому, работает только в нижних 56К.

Patron
06.08.2019, 14:23
загрузиться с HD не можетА с MX грузится?

Если нет - проблема может быть в отсутствии прерываний.

AFZ
06.08.2019, 16:37
А на МХ оно не влезет. Там же, кроме RT-11, должен быть полный TSX. По крайней мере на одностороннюю дискету Э-85 оно не лезет, две дискеты забиты почти полностью. И те 84 блока, на которые МХ больше, чем DZ, не спасут...

А есть же вариант HD с DMA и прерываниями? Может его попробовать? Как?

AFZ
06.08.2019, 19:48
Нет, не из-за прерываний. Сгенерил AZ.TSX без прерываний (ожидание прополкой), запустил в реале, TSX загружается и работает. Может из-за мгновенности?

Patron
06.08.2019, 20:09
А есть же вариант HD с DMA и прерываниями? Может его попробовать? Как?Есть - это HD t3

Перевести контроллер HD в режим t3:


[HD.ini]
HD_InterfaceType = 3



Для работы с таким контроллером нужен драйвер HD v3 из комплекта: HD t1 t2 t3 t4 t5 Driver Distribution Kit (http://emulator.pdp-11.org.ru/misc/HD_v1_v2_v3_v4_v5.zip)

Можно собрать в обычном режиме HD t2 драйвера v3 для SJ и XM, закинуть их на DW, перевести контроллер HD в режим t3, загрузиться с DW и сделать системный диск HD для загрузки под HD t3.

Ynicky
19.09.2019, 20:07
У меня стоит, вроде, последняя версия эмулятора - v0.97j.
Столкнулся с такой проблемой. Когда из образа дискеты копирую файлы в HD1=WorkDir\
не все файлы сохраняют оригинальную дату. Особенно это касается дискет
с большим количеством файлов. Как правило последние файлы из списка по команде DIR
имеют текущую дату и время, а не оригинальную. Это мне доставляет некоторые трудности
в опознании последних версий программ, хранящихся на разных копиях старых образов дискет.
Те файлы, у которых нет даты, тоже становятся с текущей датой (но это нормально).
Я не нашел в теме информации, как это победить (уж очень много страниц).
У меня WIN10/64.

hobot
20.09.2019, 11:15
Ynicky,
попробуй принудительно дату присваивать при операции копирования с ключом SETDATE :



SETDATE[:dd:mmm:yyyy]
Sets the creation date of transferred files to the specified
date. If the date is omitted, the system date is used
SINCE[:dd:mmm:yyyy]


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

Patron, https://zx-pk.ru/threads/2348-dvk-(i-vsjo-chto-s-nimi-svyazano).html?p=1027393&viewfull=1#post1027393 есть подозрение, что эмулятор не совсем корректно образ по ссылке
видит, монтирую как DW - цепляется без проблем, просто образ не содержит драйверов DW и HD
???

Patron
22.09.2019, 12:49
У меня стоит, вроде, последняя версия эмулятора - v0.97j.
Столкнулся с такой проблемой. Когда из образа дискеты копирую файлы в HD1=WorkDir\
не все файлы сохраняют оригинальную дату. Особенно это касается дискет
с большим количеством файлов.Это (ранее не известная) ошибка эмулятора!

Оказалось, что оригинальные даты сохраняются при копировании только для тех файлов, которые попадают в первый сегмент каталога виртуального диска RT-11, подключенного к каталогу Windows.

Пока ошибка не исправлена - файлы из проблемных образов лучше копировать в каталог Windows не в эмуляторе, а через плагин для TotalCommander (https://zx-pk.ru/threads/11015-rt-11-dsk-total-commander-wcx-plugin.html).

Patron
25.09.2019, 16:20
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_25.09.19_16-04 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_25.09.19_16-04.rar)

Изменения:

1. Исправлена ошибка эмуляции виртуального диска RT-11, подключенного к каталогу Windows. Ошибка приводила к утрате оригинальной даты файлов, копируемых в такой диск средствами RT-11, если до этого в каталоге уже находилось 69 (или более) файлов.

hobot
05.10.2019, 21:27
КГД настолько деревянен, что прикрутить его к SIMH не будет слишком сложно.
но зачем нам SIMH ? Вот прикрутить его к нашему-родному - вот счастье, КЦГД - это просто жир! )))

shattered
13.10.2019, 21:29
но зачем нам SIMH ?

чтобы было больше эмуляторов, хороших и разных. тем более что в нем сэмулировано очень много процессоров и устройств pdp-11, добавить еще пяток -- не фантастически сложная задача. Сергей Вакуленко начинал это делать, чтобы запустить Демос -- https://github.com/sergev/vak-opensource/tree/master/bk/simh-dvk

hobot
13.10.2019, 22:37
чтобы было больше эмуляторов, хороших и разных
и на этом фоне не одного нармально и 1 в 1 рабочего вариата БК0010-01 - то одно отвалилось,
то другое не влезло, С.Вакуленко "начинал", когда эмулятора ДВК от Patrona не было вовсе,
если мне нужен ДВК без графики - я точно знаю ответ = решение.
Вот поэтому и хочу к проверенному уже получается и временем эмуляторы такие вкуснятины как
Приткнутая в фоне для режима работы в комплексе КУВТ86 - эмулятор БК0010-01 и дисплейные контроллеры графики (про первую просто идея расширения функционала автор "промолчал", вторые оба когда то были анонсом на неопределённый срок)

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

shattered, что вас заносит всё в мамЭ, симхи и прочие "страшно не оформленные" проекты?
И снова спрошу про ваш личный анонс на "считаю, выложу" дискеты - вы снова скажите, что
"Хоббот грубый оскорбил" ?

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

shattered, я не программист - я на гит-хаб слазил 1 раз, что трелогию Lode Runnera нарисовать за Никитиным исходником - это было уже давно и вынужденный шаг, поскольку надо было делать lode2 , lode3 однозначно )

Titus
13.10.2019, 22:50
чтобы было больше эмуляторов, хороших и разных. тем более что в нем сэмулировано очень много процессоров и устройств pdp-11, добавить еще пяток -- не фантастически сложная задача. Сергей Вакуленко начинал это делать, чтобы запустить Демос -- https://github.com/sergev/vak-openso...er/bk/simh-dvk
Если это эмулятор ДВК - выкладывай скриншоты, т.к. мало кто прям реально скачает и запустит диковинную вещь. А любопытных посмотреть будет больше.

hobot
13.10.2019, 23:03
Сергей Вакуленко начинал это делать, чтобы запустить Демос --
так в эмуляторе ДВК от Patrona запуск есть и запускали же вроде и был образ и скрины или я что-то путаю?

http://archive.pdp-11.org.ru/ukdwk_archive/dwkwebcomplekt/DEMOSDVK/

Titus, ничего люб. в симхе нет - сухое как сухарь и страшненько в плане оформления ПО сугубо для профи и с уклоном в поддержу и эмуляцию родного железа от DEC \ Там вроде бы что то похожее на БК11 эмулируется,
но почему то счастья это не прибавляет (скорее наоборот).

https://www.old-games.ru/forum/threads/ehmuljatory-pdp-11.73943/#post-1355044

Titus
13.10.2019, 23:10
так в эмуляторе ДВК от Patrona запуск есть и запускали же вроде и был образ и скрины или я что-то путаю?

http://archive.pdp-11.org.ru/ukdwk_a...lekt/DEMOSDVK/
Вроде бы в эмуляторе Патрона графики не было, или я отстал от жизни? Если есть, кинь скриншот.

hobot
13.10.2019, 23:20
Вроде бы в эмуляторе Патрона графики не было, или я отстал от жизни? Если есть, кинь скриншот. речь о ОС ДEMOS, с графикой всё по прежнему, ты ничего не пропустил.
Вот кстати, когда нужен КГД,КЦГД - я то же знаю где искать (раб лампы).

shattered
13.10.2019, 23:51
Если это эмулятор ДВК - выкладывай скриншоты, т.к. мало кто прям реально скачает и запустит диковинную вещь. А любопытных посмотреть будет больше.

https://zx-pk.ru/threads/9276-skhemy-i-dokumentatsiya-na-otechestvennye-kompyutery-i-komplektuyushchie.html?p=886654&viewfull=1#post886654

Сегодня один, очень быстро разбирают.


shattered, что вас заносит всё в мамЭ, симхи и прочие "страшно не оформленные" проекты?

Так других-то и нет?

Titus
14.10.2019, 00:08
https://zx-pk.ru/threads/9276-skhemy-i-dokumentatsiya-na-otechestvennye-kompyutery-i-komplektuyushchie.html?p=886654&viewfull=1#post886654

В той теме-то точно его фиг найдешь)

MM
25.10.2019, 19:50
Не подскажите - МС1201.03 или МС1201.04 эмулируется ?
( Нужно именно 1801ВМ3 с регистриками ДП там всякими ).

Если - "да", то как это включить из файлов настроек ?

hobot
25.10.2019, 21:38
МС1201.03
эмулируется, cfg файлы на выбор vm3.cfg и vm3+swr.cfg

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


с регистриками ДП могу ошибаться в этих "тонкостях"

MM
25.10.2019, 22:01
Запустил конфу ДВК-3 с МС1201.03 256 Кбайт ДОЗУ.

Ошибки ДОЗУ почему-то не обнаружены....:v2_dizzy_angel:
https://pic.maxiol.com/thumbs2/1572030005.531453031.3.jpg (https://pic.maxiol.com/?v=1572030005.531453031.3.jpg&dp=2)

MiX
23.02.2020, 22:36
Patron, Здравствуйте!
При записи в регистр 177564/****** 1 эмулятор зависает. Я понимаю что запись единицы приводит к зависанию, но чтоб так, что не реагирует на сброс и на включение/выключение - это круто.
Кстати делал это для проверки включения режима AUTOBAUD (на дековских платах такой режим есть).

Кнопка (на клавиатуре) pause/break должна работать как пауза?

Если можно то сделайте пожалуйста консоль VT52 через мост как отдельное устройство (типа как КМД).

Адрес при включении (на ВМ2) сделайте как раньше- 000002.

Спасибо!

Hunta
24.02.2020, 10:02
При записи в регистр 177564/****** 1 эмулятор зависает. Я понимаю что запись единицы приводит к зависанию, но чтоб так, что не реагирует на сброс и на включение/выключение - это круто.
Засаду подтверждаю....

Patron
24.02.2020, 20:16
При записи в регистр 177564/****** 1 эмулятор зависает.Буду разбираться.



Кнопка (на клавиатуре) pause/break должна работать как пауза?

Только если в секции конфига [links] есть строка:



[links]

VT52 [Pause] + bus


Иначе - при нажатии <pause/break> происходит посылка в линию сигнала BREAK.



Если можно то сделайте пожалуйста консоль VT52 через мост как отдельное устройство (типа как КМД).Не понял совсем.

Сейчас к эмулируемой шине подключается эмулируемый терминальный порт, а уже затем к этому порту - отдельный эмулятор терминала.

В секции [links] конфига это выглядит примерно так:



[links]

bus & TerminalPort
TerminalPort <=> VT52


Если речь об том, чтобы совместить терминал с портом и сажать такой комбайн сразу на шину (как КЦГД), то с точки зрения эмуляции это лишено смысла - гораздо удобнее эмулировать порт и терминал отдельно, объединяя их затем в конфиге.

MiX
24.02.2020, 21:33
Не понял совсем.
Чтобы отдельно логирование вести, да и распределить потоки эмуляции. То есть при зависании одного не приведет к зависанию другого (в одном потоке).


гораздо удобнее эмулировать порт и терминал отдельно, объединяя их затем в конфиге.
Да, но КМД имеет отдельную (служебную) консоль (и свой дебаг) и там видно какая конфигурация запущена и что происходит.

Например если данный эмулятор VT52 это 15ИЭ-00-013, - будет подключен модуль 15ИЭ и это отобразится в служебной консоли* терминала VT52. Если режим КСМ подключается модуль КСМ.

*Не путать со служебной строкой (как в настоящем15ИЭ). Хотя её тоже не плохо бы увидеть :)



Если речь об том, чтобы совместить терминал с портом и сажать такой комбайн сразу на шину (как КЦГД)
Дык там тоже мост есть внутри платы 065<>065 и его эмулировать не нужно. Достаточно TerminalPort <=> КЦГД. Но там уже внутри будет модуль ВМ2 где собственно и потребуется служебная консоль как в КМД.

hobot
26.02.2020, 00:19
Patron, доброй ночи!
Я тут печатать активно начали только сейчас приметил момент, что
"больше" "меньше" главенствуют над "." и "," , в режиме ЛАТ -
я понимаю, что могу SL'ем это победить, а как должно быть?
,.<> - ведь наоборот вроде? Откуда такой перевёртыш является?

таааак. перезагрузил конфиг - всё встало на места,
непонятно...

rrp
01.03.2020, 15:09
Доброго вам времени суток, уважаемые авторы и соавторы данного продукта!
Хоту выразить вам глубокую благодарность за громадный труд, который вы вложили в этот эмулятор. С удовольствием начал его использовать.
Обнаружил, небольшой баг, возможно, это и моя ляпа... - при отладке загрузчика (аппаратного) с DW и MT не всегда корректно отрабатывается вывод по адресу выходного регистра консоли (у меня 177566).
MvB:
MovB (R0)+, @#177566
TTout:
TstB @#177564
BPl TTout
TstB (R0)
BNE MvB
RtS R1
На мой скромный взгляд, эмулятору не хватает связи с реальны "железом" - подключение реальных FDD (возможно это есть, но я еще не все освоил - "извиняйте").
Лично мне, возможно, кто-то еще пожелает такое, хочется что-бы у эмулятора была еще одна фича - реальная эмуляция Цветного Дисплея Растрового (CDR) 400*300 точек c количеством цветовых слоев ═ 8 (две группы по 4), разработка НГУ для САПР печатных плат "ГЕЛИОС" (HELIOS, в оригинале был CAD CALAY c цветным графическим дисплеем, по-моему, GDP256).

Hunta
01.03.2020, 20:37
Лучше сделать так:


MvB:
TstB @#177564
BPl MvB

MovB (R0)+, @#177566

TstB (R0)
BNE MvB

RtS R1



подключение реальных FDD
Проблема в том, что на ДВК и Кванте было два варианта контроллера - MX, который не реально сделать с PC-юшном FDD, и MY, у которого специфичный формат, который требует подгрузки драйвера, и не на всех современных контроллерах срабатывает. Так что особого смысла, особенно учитывая, что можно сделать образ дискеты и цеплять его, - нет.


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

rrp
01.03.2020, 21:28
Спасибо! Так будет короче, но эффект еще и в том, что когда вводится с клавиатуры символ, то приходится вводить его несколько раз, он вводится, но не выводиться, его, похоже, перехватывает эмулятор, потому, что после выхода из программы загрузки (ˆC) они (не выведенные символы) выводятся системой.
Input:
TstB @#177560
BPl Input
Mov @#177562, R4
Out:
TstB @#177564
BPl Out
MovB R4, @#177566
BIC #60, R4
RtS R1
Реализация эмулятора (FDD + CDR) у меня есть, но она, к моему великому сожалению, написана для TVGA 8900 на ISA, а исходного текста программки VGA.EXE нет (похоже, что она позволяла делать "окно" в памяти VGA).
Этот эмулятор использовал драйвер PU1700.COM или 800.COM и дискеты MY читались и писАлись замечательно (прямо из эмулятора), но в "Эмуляторе ДВК" есть возможность передавать файлы через WorkDir, что тоже замечательно.

Hunta
01.03.2020, 22:35
когда вводится с клавиатуры символ, то приходится вводить его несколько раз, он вводится, но не выводиться, его, похоже, перехватывает эмулятор, потому, что после выхода из программы загрузки (ˆC) они (не выведенные символы) выводятся системой.
Я думаю, его перехватывает не эмулятор, а работающая система, из под который Вы запускаете свою программу.

Если делать по правильному, то надо запрещать прерывания в/в терминала (BIC #100, @#177560 и BIC #100, @#177564) и, скажем, проверять введённый символ на какой-то (типа Ctrl/C) - по которому программа вновь разрешит прерывания по вводу (BIS #100, @#177560) и выполнит .EXIT

Patron
02.03.2020, 00:26
Обнаружил, небольшой баг, возможно, это и моя ляпа...Такого бага в этом эмуляторе не может быть, потому что он проходит без ошибок все тесты соответствия.

MM
02.03.2020, 01:29
Цветного Дисплея Растрового (CDR) 400*300 точек c количеством цветовых слоев ═ 8 (две группы по 4), разработка НГУ для САПР печатных плат "ГЕЛИОС" (HELIOS, в оригинале был CAD CALAY c цветным графическим дисплеем, по-моему, GDP256).
Можно по-подробнее это устройство описать, лучше с фото и назначеним регистров, а лучше и со схемой ?
По-возможности, в разделе ДВК в отдельном топике ?
https://zx-pk.ru/forums/66-dvk-uknts.html

rrp
02.03.2020, 14:48
Такого бага в этом эмуляторе не может быть, потому что он проходит без ошибок все тесты соответствия.
Возможно его и нет - проверю на реальной машине.

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

Тему создал: https://zx-pk.ru/threads/31439-sapr-pechatnykh-plat-quot-gelios-quot-(hellios-cad-calay).html?p=1049046#post1049046, описание и примеры программирования в Теме, схемы и разводка самой платы была в файлах самого Гелиоса, еще есть различные тесты.

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

MM, Случайно ответил Patron....
Тему создал:https://zx-pk.ru/threads/31439-sapr-pechatnykh-plat-quot-gelios-quot-(hellios-cad-calay).html?p=1049046#post1049046 описание и примеры программирования в Теме, схемы и разводка самой платы была в файлах самого Гелиоса, еще есть различные тесты.

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

Hunta, Согласен, так будет правильнее, но при старте (включении питания) машины и запуском программы с адреса 173000 все разрешения прерываний на внешних устройствах должны быть сброшены.

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

Согласен, так будет правильнее, но при старте (включении питания) машины и запуском программы с адреса 173000 все разрешения прерываний на внешних устройствах должны быть сброшены.

Hunta
03.03.2020, 06:35
Согласен, так будет правильнее, но при старте (включении питания) машины и запуском программы с адреса 173000 все разрешения прерываний на внешних устройствах должны быть сброшены.
Но сейчас то код работает в других условиях и это надо учитывать

form
15.04.2020, 21:52
Дошли руки посмотреть что там поменялось в HD (пробовал как-то запользовать последний эмулятор с RSX - не пошел). Глянул на исходник HD.MAC, прилагающийся к эмулятору и немного впал в ступор.
Упоминается бит DMA в CSR, но никакого DMA судя по исходникам и в помине нет (раньше был) - вся перекачка данных выполняется вручную, тем самым делая поддержку прерываний по сути бесполезной.
Расширение адреса видимо пропало как класс (хотя раз теперь DMA нету, то и нафиг оно не нужно).
Прошу поправить если я что-то не так понял :)

MiX
15.04.2020, 22:39
Прошу поправить если я что-то не так понял
Смотри- здесь. (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=929457&viewfull=1#post929457)

form
15.04.2020, 22:43
Значит про DMA все понял верно.
Тогда собственно вопрос - можно ли управлять версией контроллера или оно фиксированно в эмуляторе?

MiX
15.04.2020, 22:58
можно ли управлять версией контроллера
Можно, смотри - здесь. (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=1023160&viewfull=1#post1023160)

form
17.04.2020, 11:33
Разобрался в изменениях HD из-за которых старый драйвер перестал работать в RSX (независимо от того какой тип контроллера указать).
независимо от типа контроллера (рассматриваем 2 и 3 по сути), I/O теперь не мгновенный
запись байта в младший байт регистра данных теперь не трогает старший байт (раньше он занулялся)

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

Теперь пытаюсь вспомнить подробности как заставить работать восстановление после "сбоя питания".
На данный момент при отжатии Power происходит штатный останов до "восстановления", но при нажатии Power, печатаются несколько звездочек и происходит останов. Вектор 24 оказывается зачищенным.
Пошел искать в теме сообщения когда ранее тестировал фичу, но может кто навскидку ткнет что надо поправить чтобы при "восстановлении питания" происходило повторное псевдопрерывание по 24?

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

Все, разобрался.
Теперь можно допинать драйвер, кое-что подправить в SAV, а то он, бедняга, считает что это UNIBUS система (и надо сказать, оснований для таких мыслей немало) да перенести ноду под эмулятором ДВК на новый вариант.

AFZ
18.04.2020, 06:11
form, а TSX ты с новым эмулятором пробовал? У меня не пошел. С эмулированного DW запускается и работает, а с HD висит. То есть, что-то не то во взаимодействии драйвера с эмулируемым устройством, типа, устройство Патрон изменил, а драйвер не подправил.

form
18.04.2020, 06:42
а TSX ты с новым эмулятором пробовал? У меня не пошел.
Скорее всего драйвер HD в TSX не той версии.
В остальном проблем не должно быть.
Гляну сегодня.

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

Собрал свой драйвер под TSX.
Тип HD должен быть выставлен как 3.
В TSGEN.MAC должен быть с флагами DMA,MAPH.

Драйвер, прилагаемый к эмулятору по идее тоже будет работать если из него убрать код печати на экран в инсталяционной процедуре. Только обязательно собирать с опциями MMG$T и TIM$IT.

Это касается и RT-11 - нужно собирать с точными опциями. Там в драйвере есть всякие SET HD ERLG и SET HD TIMIT, но они работать не будут по понятным причинам в драйверах с обслуживанием прерываний или где используется .FORK (HD v3.0, v4.0, v5.0).
Это можно исправить:
; .DRAST HD,5,DONE

BR DONE
HDINT:: .INTEN 5,PIC

; .FORK FORKBK

MOV @#54,R4 ;можно R5
ADD 402(R4),R4
JSR R5,@R4
.WORD FORKBK-.


.SH ALL
TSX-Plus Version = 6.50

18-Apr-2020

Active Handler Handler Handler
Device I/O Status V. base P. base size CSR Vector
------ ------ ------ ------- ------- ------- ------ ------
TT 0 000004
LD 0 102446
CL 0 016057 045752 000000 512
HD 0 102762 120000 073640 202 177720 164
LP 0 030003 120000 073631 406 177514 200
NL 0 000025 120000 073630 60
VM 0 102447 076770 000000 426

Assignments:
SY --> HD7:
DK --> HD7:

There are no allocated devices

Uptime: 00:00:19
System use: Run=1%, I/O-wait=0%, Swap-wait=0%, Idle=98%
I/O Activity: User I/O=0%, Swapping I/O=0%

Job Line Pri State Size Connect CPU time Program Job name
--- ------ --- ------- ----- --------- -------- ------- ------------
1* 1(0) 50 IN 39Kb 00:01:00 00:00:00 KMON

Line Type Vector CSR Terminal Speed Active Line Name
---- ----- ---------- ------ -------- -------- ------ ------------
1* Oper. DL 060 177560 VT52 9600 8N Yes Console
2 Local DL 300 176500 VT52 9600 8N No DLV11 - 1
3 Local DL 310 176510 VT52 9600 8N No DLV11 - 2
4 Local DL 320 176520 VT52 9600 8N No DLV11 - 3
5 Local DL 330 176530 VT52 9600 8N No DLV11 - 4

CL version number 18.

Unit Line Job Options
---- ---- ---- ----------------------------
CL0 none none
CL1 none none
CL2 none none
CL3 none none

Total installed memory = 4088Kb
Size of unmapped TSX and handlers = 33Kb (100076)
Size of mapped TSX system regions = 80Kb
Total size of TSX and mapped data = 127Kb
Size of mapped device handlers = 1Kb
Size of sharable run-time systems = 54Kb
Size of data cache buffer area = 0Kb
Space available for user jobs = 1862Kb
Swappable job context area = 7Kb
Current job memory limit = 56Kb
Maximum job memory limit = 64Kb

QUAN0 = 2
QUAN1 = 20
QUAN1A = 2
QUAN1B = 2
QUAN1C = 1
QUAN2 = 10
QUAN3 = 20
INTIOC = 30
HIPRCT = 40

Spooled devices: LP0

Logical subset disks:
No logical disks are mounted

Mounted devices:
Device Associated jobs
---------- ------------------------------
HD7: 1

Shared run-time systems:
CBR063

There are no named regions

Program Attributes and Privileges
-------------- -----------------------------------------
HD7:DUP.SAV DUP/PRIV=(SYSPRV,NODEBUG)
HD7:IND.SAV NOWAIT/IND/PRIV=(NODEBUG)
HD7:KED.SAV SINGLECHAR/NOWAIT/HIGH/PRIV=(NODEBUG)
HD7:KEX.SAV SINGLECHAR/NOWAIT/HIGH/PRIV=(NODEBUG)
HD7:K52.SAV SINGLECHAR/NOWAIT/HIGH/PRIV=(NODEBUG)
HD7:LOGON.SAV LOCK/BYPASN/PRIV=(BYPASS,SETNAME,SETPRV,SYSPRV,
NODEBUG)
HD7:PATCH.SAV SINGLECHAR/PRIV=(NODEBUG)
HD7:SETUP.SAV IOPAGE/SETUP/PRIV=(NODEBUG)
HD7:SYSMON.SAV /PRIV=(MEMMAP,NODEBUG)
HD7:TECO.SAV SINGLECHAR/NOWAIT/PRIV=(NODEBUG)
HD7:TRANSF.SAV SINGLECHAR/NOWAIT/NONINTERACTIVE/NOWINDOW/PRIV=(
NODEBUG)
HD7:TSAUTH.SAV BYPASN/PRIV=(NODEBUG)
HD7:TSXUCL.SAV TSXUCL/PRIV=(NODEBUG)
HD7:VTCOM.SAV SINGLECHAR/NOWAIT/MEMLOCK/PRIV=(PSWAPM,NODEBUG)

Authorized privileges: ALLOCATE,BYPASS,DEBUG,DETACH,GETCXT,MEMMAP,
MESSAGE,NFSREAD,NFSWRITE,OPER,PSWAPM,REALTIME,
RLOCK,SEND,SETNAME,SETPRV,SPFUN,SYSGBL,
SYSPRV,TERMINAL,WORLD,GROUP,SAME,SUBPROCESS,
UP1,UP2,UP3,UP4

Current privileges: ALLOCATE,BYPASS,DEBUG,DETACH,GETCXT,MEMMAP,
MESSAGE,NFSREAD,NFSWRITE,OPER,PSWAPM,REALTIME,
RLOCK,SEND,SETNAME,SETPRV,SPFUN,SYSGBL,
SYSPRV,TERMINAL,WORLD,GROUP,SAME,SUBPROCESS,
UP1,UP2,UP3,UP4

SL status: OFF,NOKED,NOTTYIN,SUBSTITUTE

VM Base=100000 Top=170000 Size=3584
.

AFZ
18.04.2020, 14:40
А для 5.1 SJ/FB не сгенеришь? И для XM?.. И что надо добавить в конфиг?

form
18.04.2020, 14:59
А для 5.1 SJ/FB не сгенеришь? И для XM?.. И что надо добавить в конфиг?
Для XM должно быть MMG$T=1, TIM$IT=1 (HD.TSX из архива ввыше подойдет тоже).
Для SJ/FB достаточно собрать вариант без опций и с TIM$IT=1.
Ну или поправить прилагаемые исходники как выше написал - тогда получится универсальный вариант, настраивающийся через SET.

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

На всякий случай тот вариант из которого я собирал HD.TSX выше.
Это драйвер только для t3 контроллера без подстройки под систему - надо генерить с конкретными опциями.
Если не лень будет - допилю его до поддержки 32bit I/O, разделов и номеров 10-77.

AFZ
18.04.2020, 15:02
Откуда TIM$IT ? И собирать V3.0, да?

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


допилю его до поддержки 32bit I/O, разделов и номеров 10-77. Откуда у RT-11 32 бита? А 10-77 надо бы отдельно - или по параметру генерации, или вообще отдельным исходником.

form
18.04.2020, 15:06
Откуда TIM$IT ? И собирать V3.0, да?
Версия должна совпадать всяко.
Если есть родной файл .CND, то компиляция делается просто:

.MAC xxxxxx.CND+HD/OB

Для XM еще файл +XM перед HD.
Если нету - просто в начале драйвера определить TIM$IT=1, собрать, убрать, еще раз собрать.
Для XM прилагается HDX с готовыми определениями.

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


Откуда у RT-11 32 бита?
По жизни есть (с версии 5) для DU (на самом деле 24, но никто 32 не мешает сделать).
Никто не мешает сделать и для HD.

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


А 10-77 надо бы отдельно - или по параметру генерации, или вообще отдельным исходником.
Я в драйвере WD для УКНЦ тупо смотрел на параметр UNI$64 и в соответствии с ним генерил драйвер с поддержкой или без.
На самом деле эти вещи друг с другом не связаны - драйвер без поддержки будет работать в системе с поддержкой и наоборот (для устройств 0-7).

hobot
18.04.2020, 16:02
а это ничего, что у меня последний ДВК эм. нормально HD разделы как работали так и работают ?
RSX надо с DW запускать , кто же её с HD запускает ))) То есть причина тому практическая ???
Или доступ к HD разделам перестал работать ???
TSX - я не использую, ничего сказать не могу, впрочем как и RSX по большому счёту.
Пытаюсь осознать и посочувствовать вышеописываемой проблеме, но что как то далековато от народа )))

form
18.04.2020, 16:11
нормально HD разделы как работали так и работают ?
Откуда там разделы?

AFZ
18.04.2020, 16:19
Если нету - просто в начале драйвера определить TIM$IT=1, собрать, убрать, еще раз собрать.
Для XM прилагается HDX с готовыми определениями.Обычная сборка для SJ/FB/SB, включая стандартные в дистрибутивах, сделана без IT. Если вдруг где-то попадется сборка без ДП, но с IT, это явно чья-то самодеятельность. А вот ХМ стандартно всегда с IT, и я даже не знаю, можно ли собрать ХМ без IT ?

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


По жизни есть (с версии 5) для DU (на самом деле 24, но никто 32 не мешает сделать).
Никто не мешает сделать и для HD.Главный вопрос: зачем? Для "больших" систем никто не мешает сделать HD любого потребного размера, а для RT-11/TSX оно просто не нужно.

form
18.04.2020, 16:25
Главный вопрос: зачем? Для "больших" систем никто не мешает сделать HD любого потребного размера, а для RT-11/TSX оно просто не нужно.
Например у меня есть копия моего физического диска.
Он 2Gb и весь доступен под RT-11 на живом 11/83, а в эмуляторе я от него вижу только начало.
Вот и хочется иметь возможность видеть его весь.

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


можно ли собрать ХМ без IT ?
Такая конфигурация не предусмотрена, но попробовать вручную можно :)

hobot
18.04.2020, 17:01
Откуда там разделы?
устройства в смысле конечно !!!

form
18.04.2020, 17:11
устройства в смысле конечно !!!
Это ничего общего с разделами не имеет.

form
20.04.2020, 22:17
Драйвер HD с расширенными номерами устройств и поддержкой больших дисков.
Тип контроллера должен быть установлен в 3.
Драйвер работает только в RT-11 V05.05 и новее.
Если монитор собран без поддержки 64 устройств, будет видно только 8 дисков.

Для простоты номера HD0-HD7 всегда обращаются к началу диска с таким же физическим номером.
Для номеров H10-H77 можно настроить трансляцию параметрами SET HDn UNIT=u,PART=p.
По умолчанию старшая цифра номера определяет PART, а младшая UNIT.
Посмотреть текущую настройку трансляции можно командой SET HD INFO.

В комплекте есть собранные драйверы HD.SYS (без опций SYSGEN), HDTM.SYS (с поддержкой device timeout) и HDX.SYS (для XB/XM мониторов).

После перенастройки параметров трансляции, драйвер, ранее загруженный в память, не меняется.
Если есть загружаемые устройства с номерами больше 7, то после перенастройки трансляции требуется сделать заново COP/BOO (актуально для загрузки командой BOOT/FOREIGN).

Прямую поддержку работы с 32bit блоками как в DU делать не стал.
Функция получения размера устройства так же работает только в классическом варианте, показывая RTшный размер.

.INI H17:/NOQ

.SQ/OU:H17: SY:

.COP/BO H17:RT11XM H17:

.BO H17:

RT-11XM (S) V05.07

.SET TT QUIET

?DATE-I-Time source: RT-11
?DATE-I-Date & time: 21-APR-2020 01:18:24

.SH
TT (Resident)
HD (Resident)
HD5 = DK
H17 = SY
MQ (Resident)
SD
SL (Loaded)
VM
VM0 = CF , WF
SP
XL
LP
LS
BA
NL
LD
7 free slots


.SET HD INFO
H10: is set UNIT = 0, PART = 1
H11: is set UNIT = 1, PART = 1
H12: is set UNIT = 2, PART = 1
H13: is set UNIT = 3, PART = 1
H14: is set UNIT = 4, PART = 1
H15: is set UNIT = 5, PART = 1
H16: is set UNIT = 6, PART = 1
H17: is set UNIT = 7, PART = 1
H20: is set UNIT = 0, PART = 2
H21: is set UNIT = 1, PART = 2
H22: is set UNIT = 2, PART = 2
H23: is set UNIT = 3, PART = 2
H24: is set UNIT = 4, PART = 2
H25: is set UNIT = 5, PART = 2
H26: is set UNIT = 6, PART = 2
H27: is set UNIT = 7, PART = 2
H30: is set UNIT = 0, PART = 3
H31: is set UNIT = 1, PART = 3
H32: is set UNIT = 2, PART = 3
H33: is set UNIT = 3, PART = 3
H34: is set UNIT = 4, PART = 3
H35: is set UNIT = 5, PART = 3
H36: is set UNIT = 6, PART = 3
H37: is set UNIT = 7, PART = 3
H40: is set UNIT = 0, PART = 4
H41: is set UNIT = 1, PART = 4
H42: is set UNIT = 2, PART = 4
H43: is set UNIT = 3, PART = 4
H44: is set UNIT = 4, PART = 4
H45: is set UNIT = 5, PART = 4
H46: is set UNIT = 6, PART = 4
H47: is set UNIT = 7, PART = 4
H50: is set UNIT = 0, PART = 5
H51: is set UNIT = 1, PART = 5
H52: is set UNIT = 2, PART = 5
H53: is set UNIT = 3, PART = 5
H54: is set UNIT = 4, PART = 5
H55: is set UNIT = 5, PART = 5
H56: is set UNIT = 6, PART = 5
H57: is set UNIT = 7, PART = 5
H60: is set UNIT = 0, PART = 6
H61: is set UNIT = 1, PART = 6
H62: is set UNIT = 2, PART = 6
H63: is set UNIT = 3, PART = 6
H64: is set UNIT = 4, PART = 6
H65: is set UNIT = 5, PART = 6
H66: is set UNIT = 6, PART = 6
H67: is set UNIT = 7, PART = 6
H70: is set UNIT = 0, PART = 7
H71: is set UNIT = 1, PART = 7
H72: is set UNIT = 2, PART = 7
H73: is set UNIT = 3, PART = 7
H74: is set UNIT = 4, PART = 7
H75: is set UNIT = 5, PART = 7
H76: is set UNIT = 6, PART = 7
H77: is set UNIT = 7, PART = 7

.

rrp
27.04.2020, 17:47
Уважаемые, извините, коли я чего-то в этой теме не дочитал - уж, очень много всего написано.
У меня возникла проблема следующего характера - хочу загрузить диск с XXDP (в состав эмулятора входит образ XXDP+_E0.DSK), но при загрузке эмулятор вылетает по Trap to 4.
Образ XXDP+_E0.DSK подключил к HD0:, таймер выключил.
Что я делаю не так?

hobot
27.04.2020, 20:43
Образ XXDP+_E0.DSK
https://zx-pk.ru/threads/24073-xxdp-i-tmos-2-na-dvk-i-uknts.html

rrp
27.04.2020, 21:01
https://zx-pk.ru/threads/24073-xxdp-i-tmos-2-na-dvk-i-uknts.html
Спасибо!

AFZ
23.05.2020, 07:36
Patron, а можно получить последнее руководство по программированию для контроллера HD ?

И, может быть, подумаем на тему включения в эмулятор контроллера AZ - вроде бы, он уже прижился и устаканился. Руководство по программированию для него я уже опубликовал, здесь (https://forum.maxiol.com/index.php?showtopic=5388#), сообщение номер 10.

form
23.05.2020, 07:48
включения в эмулятор контроллера AZ
Если спецификация готова - могу сделать плагин для E11 для отладки.


а можно получить последнее руководство по программированию для контроллера HD ?
По v3 могу рассказать что и как - я для него в последнее время драйвера делал для RT и RSX.

AFZ
24.05.2020, 11:21
Patron, а как железно обновить оглавление HDn, назначенного на папку Windows? Я правлю какой-либо исходник, любимым ФАРом, допустим, перехожу в окно эмулятора, а он видит старую копию. Как бы попросить его обновиться? Причем, желательно, чтобы это обновление инициировалось программой из-под RT-11, чтобы включить ее в .COM-файл, и забыть об этом. В принципе, помогает команда SQUEEZE для этого HD, но, увы, только без ключа /NOQ. С ним - не помогает.

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


Если спецификация готова - могу сделать плагин для E11 для отладки.Я же выложил ссылку чуть выше. Глянь, достаточно ли?


По v3 могу рассказать что и как - я для него в последнее время драйвера делал для RT и RSX. У нас с Максом бродят мысли пристроить в наш AZ ПЛИСину пожирнее и DMA. И, если будет DMA, то аппаратный контроллер HD - вопрос только прошивки.

form
24.05.2020, 11:28
.COM-файл
Не проверял на эмуляторе, но предполагаю что под RT-11 такой подойдет:
D 1000=13700,54,5060,256,5007
ST 1000
Если конечно не включен UCF режим.
А вообще где-то вроде описывался алгоритм как заставить перечитать.
А если DIR сделать, после него не обновляет?

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


Я же выложил ссылку чуть выше. Глянь, достаточно ли?
Можно ссылочку чтобы не искать, а то я сегодня сразу кучей дел занят :)

AFZ
24.05.2020, 18:39
Можно ссылочку чтобы не искать, а то я сегодня сразу кучей дел занят


Руководство по программированию для него я уже опубликовал, здесь, сообщение номер 10.Не нашел, как там у Макса взять ссылку на конкретную мессагу, всегда посылает в начало темы. Открой вот это (https://forum.maxiol.com/index.php?showtopic=5388#) и промотай на сообщение номер 10 (подписано справа сверху в каждой мессаге).

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

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

Да, там еще (в 12-й мессаге) выложен исходник драйвера AZ, но он несвежий, до сети, вернее, сеть там включается, а вот сброс сети в первичном загрузчике реализован некорректно, из-за чего оно валится при теплой перезагрузке. Кончим тестировать - выложу новые исходники.

form
24.05.2020, 18:48
Там, правда, многовато букв, но, зато, как мне кажется, я изложил с мельчайшими подробностями и довольно понятно.
Вроде все понятно.
Посмотрю.

hobot
24.05.2020, 23:40
AFZ, по личному опыту работы с внешней папкой в эмуляторе лучше всего перезапускать конфиг.

form
25.05.2020, 16:01
Вроде все понятно.
В общем попробовал вспомнить молодость с E11 плагинами, но что-то разочаровался - совсем все плохо, и что-то путное сделать по-прежнему нельзя (ну может кроме DOSа).
Ни файл образа диска подключить ни асинхронную работу организовать.
В общем на досуге лучше подумаю про SimH :)

MiX
25.05.2020, 22:09
Значит - протестируем Эл100/25 и сделаем точную копию её процессора.
Интересно как ведет себя процессор при обращении к несуществующей памяти.


$L 157770
$E 157770 000000
$E 157772 177777
$E 157774 000000
$E 157776 177777
$E 160000
И все, дальше эмулятор не реагирует. Вероятно что унибасные машины не умеют трапаца.

Прошивку 134 я отключил.

Hunta
26.05.2020, 08:24
Вероятно что унибасные машины не умеют трапаца.

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

Когда ты в 134-ой - именно она реагирует (в halt) режиме на прерывание по несуществующему адреса. На Э100/25 пульт гораздо проще, режима halt нет - так что это забота работающего за пультом - сделать так, что бы была реакция на прерывания.

Ну и на PDP-2011 пульт напоминает пульт от Э100/25, там мне такое поведение хорошо знакомо

Lady Eklipse
26.05.2020, 21:49
Прошу прощения, а как в эмуляторе работает клавиша ЗБ ("забой")? Del ничего не делает, Backspace выдаёт слэш. Тут промелькало, что "забой" - это на самом деле курсор влево - пробел - курсор вправо. Можно ли написать макрос и привязать к Backspace?

Hunta
27.05.2020, 14:12
а как в эмуляторе работает клавиша ЗБ
Ну в обще то она будет работать не в эмуляторе, а в программе. И как будет отрабатываться - зависит от программы. Если, скажем, использовать 134-ое ПЗУ на ВМ3 - так и будет отрабатывать - сотрёт последний введённый символ

Lady Eklipse
27.05.2020, 18:53
Ну в обще то она будет работать не в эмуляторе, а в программе. И как будет отрабатываться - зависит от программы. Если, скажем, использовать 134-ое ПЗУ на ВМ3 - так и будет отрабатывать - сотрёт последний введённый символ
Всё, что мне хочется - это потыкать Бейсик НЦ, ввести пару программок. Я всё делаю по книжке Усачёва «Персональная ЭВМ ДВК-1». Тумблеры ДУП, ЛИН, РЕД включены, что ещё нужно, чтобы заработал Забой и на какую клавишу он посажен?

Hunta
27.05.2020, 19:25
А сам Бейсик то стартовал?

Lady Eklipse
27.05.2020, 19:55
А сам Бейсик то стартовал?

Стартовал и работает, не могу только Backspace использовать, выдаёт слэши.

Hunta
27.05.2020, 20:27
Набрать PRINT 100, нажать два раза Backspace, нажать Enter - что будет на экране?

Lady Eklipse
27.05.2020, 21:10
Набрать PRINT 100, нажать два раза Backspace, нажать Enter - что будет на экране?

https://i.imgur.com/sANpmT4.png

hobot
27.05.2020, 22:01
не могу только Backspace использовать
видимо - это особенность ПЗУ Бейсика, стрелка влево для редактирования поможет?
можно так-же разные другие бейсики позапускать, но уже из под RT-11 в эмуляторе
https://zx-pk.ru/threads/17417-basic-dvk.html

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


видимо - это особенность ПЗУ Бейсика
точнее терминала, под системой то же требуется параметр драйвера TT и\или SL для "правильной" работы забоя и стрелок.
в режиме ПЗУ Бейсик НЦ это сделать наверное не возможно...

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

если не принципиален именно этот вариант бейсика - можно UKNCBTL + BASIC(Вильнюс)картридж запустить.

Hunta
28.05.2020, 08:57
В общем, это так отрабатывается backspace. На backspace рисует обратный слэш, указывая отмену символа. Один слэш - один символ с конца отменен, два - два и т.д. Не совсем понятно, но про это в книжке написано. А вот символы @O после запуска - не понятно, косяк или так и должно. Если ввести что то, кроме enter - начинаются вопросы про расширенные функции и что то ещё. Потом начинает работать

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


под системой то же требуется параметр драйвера TT для "правильной" работы забоя
Потому что может быть подключен видеотерминал (да, были такие), который не отрабатывает код 10(8), я уж не говорю про "пишущую машинку"

Lady Eklipse
28.05.2020, 10:12
В общем, это так отрабатывается backspace. На backspace рисует обратный слэш, указывая отмену символа. Один слэш - один символ с конца отменен, два - два и т.д. Не совсем понятно, но про это в книжке написано.
Ого, спасибо, что помогли разобраться! Оказывается, это Забой с отголосками бумажных терминалов, я теперь чувствую себя ламером, который пытается запустить Crysis на IBM 286.

Ещё один вопрос, Усачёв в своей книжке пишет: « В ДВК-1 имеется лишь единственное устройство ввода — вывода информации — дисплей.«.
Какой смысл вообще тогда в машине, кроме как обучение основам Бейсика, если после выключения все данные исчезают, и надо снова набирать программу с клавиатуры? Неужели нет даже поддержки перфолент?

Википедия утверждает, что в последующих исполнениях и перфоленты, и дисководы подключаются, значит, этот экземпляр просто для демонстрации школьникам основ программирования в 1983-м году, когда не было для этого ничего лучше МК-61?

Hunta
28.05.2020, 10:28
В ДВК-1 имеется лишь единственное устройство ввода — вывода информации — дисплей
Сложно сказать, что он подразумевал под устройствами в/в, по попадавшейся мне информации - та модификация, которая с зашитым бейсиком - так же позволяла подключать принтер по параллельному интерфейсу. Другие модификации были и с флопами. Но, в истории и модификациях ДВК - не силён.

Могу только сказать, что на платах МС1201.01 (типа материнки для ДВК-1 ДВК-2) есть разъём, который позволяет подключать что то с параллельным интерфейсом - принтер или накопитель на 8-ми дюймовых дискетах, насколько я в курсе.

Ну и в исполнение ДВК-1, которое с отдельным блоком, а не единственная 1201.01, воткнутая в корзину внутри терминала 13ИЭ, можно воткнуть контроллер флопов MX. Насколько я помню - загрузчик с них есть в ПЗУ

Lady Eklipse
28.05.2020, 12:04
Сложно сказать, что он подразумевал под устройствами в/в
На самом деле, я просто опустила эту часть цитаты, в книге это чётко отмечено: "Обмен информацией между внешней и оперативной памятью осуществляется с помощью устройств ввода — вывода. Сюда относятся карточный и ленточный перфораторы для работы с соответствующими перфоносителями, накопитель на магнитной ленте (магнитофон), накопитель на магнитных дисках (дисковод), печатающее устройство, дисплей.".
Принтер сюда тоже входит. Я думаю, первый экземпляр ДВК-1 - это какой-то или тестовый вариант, или продукт для образовательных учреждений, максимально урезанный и с вшитым Бейсиком для школьников и студентов, чтобы знакомить их с азами новой невиданной науки - программирования.

AFZ
28.05.2020, 14:12
Именно так. Некоторое время они шли классом - один ДВК-2 с дисководами и принтером (учительский) и 6 или 12 ДВК-1 (ученические). Впрочем, вариант ДВК-1 с отдельным блоком микро-ЭВМ никто не мешал дооборудовать чем угодно. Правда, этого самого "чего угодно" в свободном доступе не было вообще...

hobot
28.05.2020, 21:22
https://pic.maxiol.com/thumbs2/1590689191.787615421.ris1.jpg (https://pic.maxiol.com/?v=1590689191.787615421.ris1.jpg&dp=2)

Рис. 1. Первый компьютерный класс на базе ДВК в школе № 719 (1985 г.).
Это Зеленоград, школа в моём мкр. - в этот класс попасть извне (со стороны)
и машинное время получить не было никакой возможности. Все сотрудники в
белых халатиках и всё по расписанию - никакой расп самодеятельности!
Это ж ЭВМ! )



В 1985 г. в средних школах Зеленограда впервые появился курс «Информатика». Предприятия Научного центра установили в школах персональные компьютеры ДВК, затем УКНЦ собственного производства. Первые компьютерные классы в рамках московского пилотного проекта появились в трех зеленоградских школах: № 609, 719 и 805 (сегодня – лицей № 1557)

AFZ
01.06.2020, 20:16
AFZ, по личному опыту работы с внешней папкой в эмуляторе лучше всего перезапускать конфиг.Тогда уж проще перезапустить сам эмулятор. Добавить ему в автостарт сразу сборку нужного проекта, исправил исходник, запустил эмулятор, и все, сразу же готов собранный проект. Чуть сложнее будет переход от одного проекта к другому, да и Аллах с ним...


У нас с Максом бродят мысли пристроить в наш AZ ПЛИСину пожирнее и DMA. И, если будет DMA, то аппаратный контроллер HD - вопрос только прошивки. form, кстати, учитывая вероятность появления железного контроллера HD надо бы подумать о смене его адреса - у того же J-11, т.е. 11/73 и иже с ним (и, соответственно, ЦП М8) область 177700-177777 целиком забита всяким разным, в основном, разными диагностическими регистрами процессора. В том числе и 177720 тоже занят. В принципе, область 177200-177277 свободна, не считая 177220-227, которые я занял своим AZ...

hobot
01.06.2020, 21:52
исправил исходник, запустил эмулятор, и все, сразу же готов собранный проект.
это выполнимо с консольным эмулятором RT-11 Patron'а

MiX
19.07.2020, 14:03
Patron, Здравствуйте!
Возможно ли запустить прошивку пульта от платы М9312 для PDP11/04/34.

Прошивка с адреса 165000.

Спасибо.

MiX
19.07.2020, 16:07
UPD. В принципе запускается если из под 134 прошивки набрать 17765020G.

Patron
12.08.2020, 13:44
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_14.08.20_20-52 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_14.08.20_20-52.rar)

Изменения:

1. Исправлена ошибка эмуляции режима BREAK терминального порта, из-за которой работа линии передачи не восстанавливалась после сброса порта. Теперь, после разрыва линии передачи записью 1 в регистр 0177564 - можно восстановить линию следующими способами: 1) записать 0 в младший бит регистра; 2) сбросить порт; 3) выключить и включить питание.

2. В каталог Paper Tapes\ добавлен файл Program.bin, содержащий образ перфоленты с примером программы для БЭЙСИК ДВК НЦ. В файле конфигурации Бэйсик НЦ.cfg образ Program.bin подключен к перфовводу.

Теперь, поле запуска конфига Бэйсик НЦ.cfg - можно загрузить программу с перфоленты командой OLD:



БЭЙСИК ДВК НЦ
@0
ЖДУ
OLD
ЖДУ
RUN
7 4 1 0
8 5 2 9
6 3 7 4

ОСТ СТРОКЕ 150
ЖДУ

MiX
14.08.2020, 12:02
можно восстановить линию следующими способами: 1) записать 0 в младший бит регистра; 2) сбросить порт; 3) выключить и включить питание.
Не реагирует на ввод, соответственно ничего невозможно записать. После сброса (кнопка сброс) пульт работает, но при просмотре регистра пишет /000201. Почему 201 если запись была 1 ?
При записи 1 на реальном ДВК на терминал посылаются нули. Дамп показывает 1000 000 000 000... 1000. Т.е 1000 и 32 тройных нуля, потом опять 1000 итд. Это на 1801вп1-065 (скорость 57600).
После сброса регистр 177564/000200.

А после выключения/включения по любому будет 177564/000200.


добавлен файл Program.bin
Там текстовый файл. Может быть сделать расширение .BAS.
Прямо скопировал текст отсюда. (http://avitech.com.au/?page_id=709)
Создал файл cal.bas.
Результат немного другой.

@0
ЖДУ
OLD
ЖДУ
RUN
INTEREST IN PERCENT?9
AMOUNT OF LOAN?2500
NUMBER OF YEARS?2
NUMBER OF PAYMENTS PER YEAR?4

AMOUNT PER PAYMENT = 344.9615
TOTAL INTEREST = 259.6921

INTEREST APP TO PRIN BALANCE
56.25 288.7115 2211.288
49.75399 295.2075 1916.081
43.11182 301.8497 1614.231
36.3202 308.6413 1305.59
29.37577 315.5857 990.0043
22.2751 322.6864 667.3178
15.01465 329.9469 337.371
7.590847 337.3707
LAST PAYMENT = 344.9618

ОСТ СТРОКЕ 160
ЖДУ




Теперь, поле запуска конфига Бэйсик НЦ.cfg - можно загрузить программу с перфоленты командой OLD:

Просмотреть можно командой LIST.

Кстати Бэйсик НЦ поддерживает ещё и DX вроде как.

MiX
14.08.2020, 18:05
С реальной платой DL11-W M7856 (скорость 9600) получается так:
L 177564
E 177564 000200
D 1

Дамп показывает: 1000 000
После инита.
L 177564
E 177564 000200

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

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

На 1801ВП1-035

176564/000200 1
176564/000201

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

На плате с ВМ3 результат такой:
17777564/000200 1
Дамп: 1000 000

И на ВМ2

177564/000200 1
Дамп: 1000 000

На ВМ1 как и говорил 1000 и 32 тройных нулей, и потом опять тоже самое.

Patron
14.08.2020, 20:44
Не реагирует на ввод, соответственно ничего невозможно записать.
Со вводом проблем нет, просто нет вывода, поэтому вводить "/0<ВК>" надо вслепую.



После сброса (кнопка сброс) пульт работает, но при просмотре регистра пишет /000201.Исправлю на 0200.

MiX
14.08.2020, 21:31
Со вводом проблем нет, просто нет вывода, поэтому вводить "/0<ВК>" надо вслепую.
Круто! :)


Исправлю на 0200.
И вывод вместо "1000" надо "1000 000".

Patron
15.08.2020, 11:47
Заменил релиз на исправленный ( DVK_Emulator_14.08.20_20-52 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_14.08.20_20-52.rar) ).

Теперь после сброса - в регистре 0177564 всегда только 0200.

Hunta
12.09.2020, 21:23
Как в эмуляторе ДВК, а так в HX сервере эмулятора VT52 вырубить перекодировку на лету текстовых файлов??

Patron
18.09.2020, 12:01
Как в эмуляторе ДВК, а так в HX сервере эмулятора VT52 вырубить перекодировку на лету текстовых файлов??
В смысле, чтобы при подключении к папке Windows, скопированные туда текстовые файлы хранились в оригинальной кодировке. Никак. Смысл папок Windows в эмуляторе в том, чтобы максимально упростить программирование для RT-11 в блокноте Windows, который оригинальные кодировки не поддерживает. Чтобы достать из DSK-образа оригинальный текстовый файл - нужно использовать DSK-плагин и при просмотре/копировании зажимать <Shift> одновременно с нажатием F3/F5.

Hunta
18.09.2020, 12:25
Никак.
Очень плохо.

Пример - файл из состава биос Союз-Неона - хранится УЖЕ в нужной кодировке - и если его скопировать в папку Windows - текст портится и биос собирается неправильный.

Второй пример - у меня есть (текстовые) файлы с нестандартной кодировкой. Теперь мне понятно, почему у меня получалась какая то хрень при копировании файла Windows и обратно.

Третий пример - копирование текстовых файлов (уже в нужной кодировке) между хостом PDP-11 и HX сервером.

Результат - ценность подключения папок Windows как дисков для меня резко упала...


нужно использовать DSK-плагин
Я им не пользуюсь

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

Придётся хакать и эмулятор и HX сервер...

Patron
18.09.2020, 15:36
Очень плохо.
Можно будет улучшить алгоритм, чтобы если в папке Windows есть файл с именем .NoRecode - то у текстовых файлов будут только отрезаться/добавляться завершающие нули (текстовые программы Windows с завершающими нулями не дружат). А при наличии файла .BinaryText - текстовые файлы будут обрабатываться как двоичные (т.е. вообще без изменений).

Hunta
18.09.2020, 16:16
А при наличии файла .BinaryText
Если в этом варианте файлы эмулятор и HX сервер вообще не будут трогать содержимое файлов - будет идеально.
Собственно, я думал, что что то похожее на поведение в плагине было реализовано :)

Patron
24.09.2020, 14:49
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_24.09.20_14-32 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_24.09.20_14-32.rar)

Изменения:

1. Теперь, если путь к подключенной папке Windows содержит (с учётом регистра) строку: "Not Recoded" - текстовые файлы в таком каталоге обрабатываются как двоичные, т.е. не изменяются вообще никак.

2. В папку WorkDir\ добавлена вложенная папка Not Recoded\.

Hunta
25.09.2020, 06:07
Patron, а что насчёт HX сервера в эмуляторе VT52?

Patron
25.09.2020, 12:04
а что насчёт HX сервера в эмуляторе VT52?
Разница всех вариантов эмулятора - только в названии .exe-файла (по имени исполнимого файла выбирается ini-файл настроек). Нужно скопировать файл pdp11.exe в каталог эмулятора терминала и там переименовать в VT52.exe

Hunta
25.09.2020, 14:25
там переименовать в VT52.exe
Спасибо, значит я правильно помнил :)

ra3qdp
01.12.2020, 13:43
а если в эмуляторе нажать "пульт", набрать программку и запустить по G, то она выполняется по шагам или как ?

Hunta
01.12.2020, 14:35
Не Пульт, а HALT.
Выполнится одна команда и опять выход в пульт

ra3qdp
01.12.2020, 16:43
а как запустить набранную вручную программу ?

Hunta
01.12.2020, 18:42
В смысле - как?


запустить по G

ra3qdp
01.12.2020, 20:10
ну например набрать с 1000 адреса и 1000G