PDA

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



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

Patron
04.03.2012, 18:27
...

Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_22.08.23_16-43 (https://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_22.08.23_16-43.rar), являющегося побочным продуктом разработки модульного API эмуляции.

Изменения:

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

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

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



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


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


( Постоянная ссылка на данное описание (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=1184587#post1184587) )

==============================================

Найти ссылки и задать вопросы по программам для ДВК можно здесь:

Архив программ для ДВК (https://archive.pdp-11.org.ru/ukdwk_archive/dwkwebcomplekt/)

Архив программ для УКНЦ и ДВК (https://archive.pdp-11.org.ru/)

ПОИСК ФАЙЛОВ для УКНЦ\ДВК (https://zx-pk.ru/threads/16861-poisk-fajlov-dlya-uknts-dvk.html)

Софт для ДВК/PDP11 (https://zx-pk.ru/threads/10718-soft-dlya-dvk-pdp11.html)

ДВК (и всё, что с ними связано) (https://zx-pk.ru/threads/2348-dvk-(i-vsjo-chto-s-nimi-svyazano).html)

==============================================

Описание эмулятора.

1. Использование эмулятора в конфигурации по-умолчанию.
Основные сведения (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=475710#post475710).
Системная консоль (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=479830#post479830).
Отладочная консоль (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=479887#post479887).

2. Эмулятор терминала.
Основные сведения (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=476132#post476132).
Настройки клавиатуры (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=476600#post476600).
Настройки цвета (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=476753#post476753).
Настройки курсора (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=476927#post476927).
Настройки полосы статуса внутреннего окна (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=477262#post477262).

3. Изменение эмулируемой конфигурации.
Загрузка файлов конфигурации (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=479940#post479940).
Формат файлов конфигурации (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=480073#post480073).
Свойства окон объектов (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=480394#post480394).
Запуск терминального сервера (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=480934#post480934).
Запуск терминального клиента (https://zx-pk.ru/threads/20092-emulyator-terminala-tipa-vt52.html?p=543414#post543414).
Загрузка RT-11 через порт системного терминала (https://zx-pk.ru/threads/20092-emulyator-terminala-tipa-vt52.html?p=543602#post543602).
Смена образов носителей в приводах (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=547001#post547001).
Использование консольного дампа (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=562746#post562746).
Использование встроенного дизассемблера (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=653866#post653866).
Использование ловушки адреса (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=774144#post774144).
Подключение реальной клавиатуры МС 7004 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=674019#post674019).
Загрузка ранних версий RT-11 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=693189#post693189).
Загрузка XXDP и ТМОС-2 (https://zx-pk.ru/threads/24073-xxdp-i-tmos-2-na-dvk-i-uknts.html?p=742857#post742857).
Устройство HD - варианты контроллеров и драйверов (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=929457#post929457).
Работа с образами перфолент (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=801290#post801290).
Запись данных из образа перфоленты в память реальной ДВК через порт терминала (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=1162040#post1162040).

==============================================

Предыдущие релизы::DVK_Emulator_16.10.22_18-03 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=1164319#post1164319)
DVK_Emulator_04.09.22_00-03 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=1162040#post1162040)
DVK_Emulator_24.09.20_14-32 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=1082055#post1082055)
DVK_Emulator_14.08.20_20-52 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=1076328#post1076328)
DVK_Emulator_25.09.19_16-04 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=1027900#post1027900)
DVK_Emulator_04.12.17_20-12 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=939711#post939711)
DVK_Emulator_28.11.17_19-51 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=936474#post936474)
DVK_Emulator_28.09.17_16-25 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=929708#post929708)
DVK_Emulator_04.09.17_12-43 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=926918#post926918)
DVK_Emulator_10.08.17_02-48 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=923523#post923523)
DVK_Emulator_06.08.17_14-38 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=923013#post923013)
DVK_Emulator_26.07.17_18-06 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=921346#post921346)
DVK_Emulator_17.01.17_21-08 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=898131#post898131)
DVK_Emulator_18.04.16_14-00 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=868063#post868063)
DVK_Emulator_21.03.16_18-18 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=864072#post864072)
DVK_Emulator_16.03.16_12-37 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=863175#post863175)
DVK_Emulator_03.03.16_20-10 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=860626#post860626)
DVK_Emulator_01.12.15_16-10 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=844556#post844556)
DVK_Emulator_27.11.15_17-15 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=843952#post843952)
DVK_Emulator_24.10.15_21-39 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=836859#post836859)
DVK_Emulator_10.06.15_18-32 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=809754#post809754)
DVK_Emulator_02.05.15_20-12 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=801290#post801290)
DVK_Emulator_23.02.15_18-57 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=783365#post783365)
DVK_Emulator_04.02.15_19-49 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=779750#post779750)
DVK_Emulator_30.01.15_14-31 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=778024#post778024)
DVK_Emulator_17.01.15_16-28 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=774144#post774144)
DVK_Emulator_03.01.15_23-15 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=768206#post768206)
DVK_Emulator_31.12.14_21-20 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=767166#post767166)
DVK_Emulator_19.12.14_17-10 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=763235#post763235)
DVK_Emulator_11.12.14_19-42 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=760895#post760895)
DVK_Emulator_12.11.14_17-12 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=753218#post753218)
DVK_Emulator_24.10.14_16-10 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=747858#post747858)
DVK_Emulator_08.10.14_16-54 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=747189#post747189)
DVK_Emulator_30.09.14_15-40 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=741439#post741439)
DVK_Emulator_21.03.14_21-44 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=692750#post692750)
DVK_Emulator_09.02.14_14-35 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=672426#post672426)
DVK_Emulator_25.01.14_15-40 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=665943#post665943)
DVK_Emulator_07.01.14_00-00 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=659077#post659077)
DVK_Emulator_30.12.13_17-00 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=657336#post657336)
DVK_Emulator_19.12.13_00-19 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=653816#post653816)
DVK_Emulator_07.05.13_16-37 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=599225#post599225)
DVK_Emulator_23.04.13_12-22 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=595846#post595846)
DVK_Emulator_04.04.13_12-37 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=588958#post588958)
DVK_Emulator_18.02.13_19-37 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=577479#post577479)
DVK_Emulator_13.02.13_23-42 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=576043#post576043)
DVK_Emulator_17.01.13_15-39 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=568590#post568590)
DVK_Emulator_04.01.13_18-24 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=564482#post564482)
DVK_Emulator_27.12.12_18-37 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=561778#post561778)
DVK_Emulator_25.11.12_13-30 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=554855#post554855)
DVK_Emulator_20.11.12_17-44 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=553924#post553924)
DVK_Emulator_05.11.12_16-19 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=546885#post546885)
DVK_Emulator_20.10.12_18-53 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=546885#post546885)
DVK_Emulator_27.09.12_17-15 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=543170#post543170)
DVK_Emulator_15.03.12_15-10 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=480910#post480910)
DVK_Emulator_04.03.12_18-07 (https://zx-pk.ru/threads/18351-emulyator-dvk.html?p=475407#post475407)

Patron
05.03.2012, 13:30
Использование эмулятора в конфигурации по-умолчанию.

1. Основные сведения.
---------------------------

Для начала работы с эмулятором нужно запустить на выполнение файл pdp11.exe.

При первом запуске эмулятор определяет язык интерфейса в соответствии с установленным в Windows и загружает файл конфигурации по-умолчанию ( default.cfg ).

Вид окна эмулятора зависит от установленной темы оформления интерфейса Windows.

Если темы не используются - окно будет выглядеть так:

http://s1.hostingkartinok.com/uploads/images/2012/03/ffef216c871dbef7295faf84fa9f52d3.png
Если установлена тема "Windows XP" - окно будет таким:

http://s1.hostingkartinok.com/uploads/images/2012/03/6a3c64fca25406ea306da809418bee0f.png

Размеры, положение и состояние окна запоминаются эмулятором в файле pdp11.ini. Там же находятся параметры

nMainWindowMinWidth = 692
nMainWindowMinHeight = 522определяющие минимальный размер, до которого можно уменьшить окно.

...

В конфигурации по-умолчанию эмулируется процессор 1801ВМ1 на плате МС1201.0 ( с 56 КБ ОЗУ и прошивкой ПЗУ 000.dat )

Скорость эмуляции задаётся параметром CPU MIPS Лимит со значением по-умолчанию True. В этом режиме осуществляется достоверная эмуляция реального быстродействия процессора (примерно 0.180 MIPS). При запуске игр от Электроники-60 ( например, TETRIS ) даже такое небольшое быстродействие может оказаться чрезмерным, тогда как при компиляции исходных текстов программ оно будет явно недостаточным. В таком случае нужно нажать на кнопку с величиной параметра и выбрать желаемое значение:

http://s1.hostingkartinok.com/uploads/images/2012/03/28a86350e74916dec673a0f846fff33b.png

http://s1.hostingkartinok.com/uploads/images/2012/03/49a14a93557a126fe06aaad110fdf250.png

Максимальная скорость вывода символов на экран терминала определяется двумя параметрами: BPS и CPS Лимит ( если совсем точно, то влияет ещё и третий параметр DL11W_TerminalPort_BitsPerByte, задаваемый в ini-секции объекта типа DL11-W файла конфигурации. Имя объекта TerminalPort, секция [TerminalPort.ini] значение по-умолчанию 10 ). Установки по-умолчанию соответствуют наиболее точной эмуляции реальной скорости работы последовательного интерфейса ДВК. Рекомендуется сразу их изменить. Скорость порта повысить ( например, до 19200 ), а при запуске игр задавать прямое ограничение скорости вывода параметром CPS Лимит ( при ограничении 900 CPS скорость вывода чуть меньше, чем при BPS 9600 без ограничения, а при ограничении 600 CPS - скорость вывода на ~ 30% меньше достоверной ).

При поступлении каждого байта в терминал - курсор на экране гаснет. Время (в миллисекундах) в течении которого курсор будет оставаться погашенным - задаётся параметром Cursor_OFF_Latency_MS в секции [VT52.ini] файла default.cfg. Значение по-умолчанию 30. Для комфортной игры в некоторых случаях лучше повысить это значение до максимального ( 500 ).

Чтобы не редактировать файл конфигурации каждый раз, когда нужно сменить настройки с игровых на рабочие - можно скопировать файл default.cfg под другим именем ( например, games.cfg ) и загружать его в эмулятор (используя пункт меню "Файл -> Открыть") каждый раз, когда требуется "неторопливая" конфигурация.

Образы, подключенные к приводам устройства HD, задаются в секции [HD.ini] файла эмулируемой конфигурации ( там можно использовать и относительные и абсолютные пути ). По-умолчанию эта секция выглядит так:



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


Смена образов носителей в приводах может осуществляться при помощи виджета SB_StorageMediaButton, описанного здесь (http://zx.pk.ru/showthread.php?p=547001#post547001).

...

Кнопка [Пауза] на полосе статуса конфига позволяет в любой момент остановить/продолжить эмуляцию.

...

ZEman
05.03.2012, 19:32
выложите пожалуйста игры и софт для двк и электроника 60.

Patron
05.03.2012, 19:43
выложите пожалуйста игры и софт для двк и электроника 60.Найти ссылки и задать вопросы по софту ДВК можно здесь:

Архив программ для УКНЦ и ДВК (http://archive.pdp-11.org.ru/)

ПОИСК ФАЙЛОВ для УКНЦ\ДВК (http://zx.pk.ru/showthread.php?t=16861)

Софт для ДВК/PDP11 (http://zx.pk.ru/showthread.php?t=10718)

ДВК (и всё, что с ними связано) (http://zx.pk.ru/showthread.php?t=2348)

Patron
06.03.2012, 14:07
Эмулятор терминала.

1. Основные сведения.
---------------------------


Для вывода информации в "эмуляторе ДВК" используется универсальный эмулятор терминала, предоставляемый объектом Terminal.

Терминал эмулирует систему команд VT52 и по своим особенностям наиболее близок к терминалу 15ИЭ-00-013.

...

Когда число строк, выведенных на экран терминала, превышает 24 - они уходят с экрана вверх и становятся доступны для просмотра при помощи скроллинга, осуществляемого перемещением слайдера ( находящегося сбоку от внутреннего окна терминала ), или вращением колеса мыши.

В буфере скроллинга находятся 1200 последних выведенных строк.

...

Настройки скорости порта BPS и CPS Лимит никак не связаны с работой терминала. При начале работы - терминал отправляет во входной поток байтов команды протокола ByteStream для определения характеристик и возможностей подключенного порта. Если подключенный порт допускает удалённую настройку характеристик - эта возможность реализуется терминалом. В противном случае - кнопки BPS и CPS Лимит блокируются:

http://s1.hostingkartinok.com/uploads/images/2012/03/5c9e34c4f072d10fa79f8b46cc502150.png
При непрерывном выводе информации на экран - терминал определяет скорость вывода в символах в секунду ( CPS ) и сообщает её в графе CPS полосы статуса внутреннего окна:

http://s1.hostingkartinok.com/uploads/images/2012/03/d16a47637339a92e566454af2a15c67f.png...

При нажатии комбинации клавиш <Shift><Insert> - содержимое буфера обмена вставляется в клавиатурный ввод.

При нажатии клавиши <Print Screen> - в буфер обмена помещается текстовая копия текущего экрана ( и всех последующих экранов, если в результате скроллинга текущий экран не является последним ).

...

Четыре кнопки после BPS ( в конфигурации по-умолчанию это [Шрифт][Auto][В][Lc] ) позволяют настроить характеристики шрифта, используемого при выводе информации.

Если нажать кнопку [Lc] ( при этом она превратится в кнопку [LЦ] ) - маленькие буквы на экране станут большими буквами противоположного алфавита:

http://s1.hostingkartinok.com/uploads/images/2012/03/46901bdbb98f343382610b96228779dc.png
Кнопка [В] позволяет изменять "жирность" шрифта, кнопка [Шрифт] - позволяет выбрать для отображения информации любой из установленных в системе моноширинных шрифтов:

http://s1.hostingkartinok.com/uploads/images/2012/03/d5c75f35de1d1c6e2b574cf72eaacdc1.png

http://s1.hostingkartinok.com/uploads/images/2012/03/b7a10733eefc9d5417916cdc0cad2475.png

http://s1.hostingkartinok.com/uploads/images/2012/03/c2c8398e1e69e341039f54e809bd740d.pngПри выборе шрифта, имеющего только один вариант размера - кнопка выбора размера шрифта блокируется. Во всех остальных случаях её значение по-умолчанию [Auto], что означает автоматический выбор максимально допустимого размера шрифта.

В этом режиме, если увеличить размера окна эмулятора - окно терминала также увеличится и размер шрифта в окне терминала станет больше:

http://s1.hostingkartinok.com/uploads/images/2012/03/8fe2aa30dd427b98c82ae451c15b1849.pngНажав кнопку размера шрифта - можно установить любой фиксированный его размер, меньший автоматического:

http://s1.hostingkartinok.com/uploads/images/2012/03/ca0ecf6654ac17cbdb53e5a7e1d5550c.png

http://s1.hostingkartinok.com/uploads/images/2012/03/e23094e67ba6ed65e5e19e24b4984908.png

http://s1.hostingkartinok.com/uploads/images/2012/03/5df82b20e7d1924abe28f73e4e61f4d6.pngПри этом следует отметить, что варианты размеров выбранного шрифта могут весьма значительно отличаться, в зависимости от выбранной "жирности":

http://s1.hostingkartinok.com/uploads/images/2012/03/97982f67d215cf514720dcf9146ca374.png

http://s1.hostingkartinok.com/uploads/images/2012/03/e79ecb083c8266eaa501c4e82550205a.pngНаприме р, вот такой вариант шрифта Courier New доступен только в "жирном" режиме:

http://s1.hostingkartinok.com/uploads/images/2012/03/257a26afc5acfae3016101c4b1b9c587.png...

По умолчанию использование сглаживания шрифтов в окне терминала запрещено. Для отмены этого запрета - нужно установить в 0 значение параметра bFontAntialiasDisable в ini-секции объекта типа Terminal в .cfg-файле эмулируемой конфигурации. Для "эмулятора ДВК" в конфигурации по-умолчанию - это секция [VT52.ini].

В таком случае, при включённом в Windows сглаживании шрифтов - они будут сглаживаться и в окне терминала, что также иногда приводит к радикальному изменению вида шрифта:

http://s1.hostingkartinok.com/uploads/images/2012/03/11e2234ccbdceda59ff72aa302e50ec8.png

http://s1.hostingkartinok.com/uploads/images/2012/03/5612338cb2b6b05aeca0b08e7ece27f3.pngЕсли фокус ввода находится в окне терминала, то при вращении колеса мыши с нажатой клавишей <Ctrl> - используемый размер шрифта будет увеличиваться или уменьшаться в зависимости от направления вращения.

...

При нажатой кнопке [Лог] - выводимые на экран строки копируются в файл с именем объекта и расширением .log
Для "эмулятора ДВК" в конфигурации по-умолчанию - это файл VT52.log. Состояние Log объекта типа Terminal фиксируется в ini-секции объекта в файле конфигурации (строчка InitialStateOf[Log] ). Если установить там 1, то все строки, выведенные на экран с начала работы эмулятора - попадут в файл VT52.log.

Каждая выводимая на экран строка копируется в лог только при выводе символа конца строки. Поэтому, если при работе в мониторе RT-11 набрать команду, нажать кнопку [Лог] и клавишу <Enter> - набранная до нажатия кнопки [Лог] строка попадёт в лог целиком.

...

Индикатор RUS/LAT ( находящийся преимущественно в состоянии LAT ) - "кликабелен". При клике мышью на этом индикаторе - он изменяет состояние RUS/LAT без отправки каких-либо кодов в выходной поток. Эта возможность позволяет восстановить "синхронизацию с языком", когда из-за сбоя в выполняемой эмулятором программе ДВК ( или по иной причине ), при выходе из программы в монитор RT-11 - на экран не посылается код <Lat> ( 017 ):
http://s1.hostingkartinok.com/uploads/images/2012/03/1cc96221406a7d8b5ee28914da1d67ff.png

http://s1.hostingkartinok.com/uploads/images/2012/03/aca2bd8b2b61d441c0cf6ba3d29a34ed.png

hobot
06.03.2012, 17:18
Найти ссылки и задать вопросы по софту ДВК можно здесь:

Архив программ для УКНЦ и ДВК

ПОИСК ФАЙЛОВ для УКНЦ\ДВК

Софт для ДВК/PDP11

ДВК (и всё, что с ними связано)

ИМХО: может лучше как-то в первом сообщении темы разместить? В шапке?
Спасибо за обновления!


выложите пожалуйста игры и софт для двк и электроника 60.
http://zx.pk.ru/showpost.php?p=473934&postcount=1708

ZEman
07.03.2012, 08:24
hobot, просто большое спасибо :)
подлючил твой образ диска смотрю, играю - класс !

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

Patron
07.03.2012, 12:29
есть небольшая непонятка, как сделать так чтобы отображалась в эмуляторе нижняя панелька ?
ну эта та где "пауза, вкл, сброс, пульт, таймер".
чё только ни делал у меня этой панельки нету.Показом нижней панельки ( т.е. полосы статуса окна объекта Config ) управляет состояние StatusBar объекта Config. Т.е. нужно открыть файл конфигурации ( по-умолчанию это default.cfg ), найти там секцию [Config.ini] и в этой секции - строчку InitialStateOf[StatusBar].

В файле default.cfg из комплекта поставки эмулятора эта строчка выглядит так:
InitialStateOf[StatusBar] = 1Если и при 1, и при 0 в этой строке окно эмулятора выглядит одинаково - значит что-то сильно не в порядке.

В комплекте поставки эмулятора есть файл 60Kb.cfg, реализующий "хакерский" вариант ДВК с 60 Кб ОЗУ.

Если загрузить этот файл командой "Файл -> Открыть", то окно эмулятора должно выглядеть так:

http://s1.hostingkartinok.com/uploads/images/2012/03/b9ab19047290b7dbd05eb7cad58b634c.png
Если теперь найти в файле 60Kb.cfg секцию [Config.ini] и установить InitialStateOf[StatusBar] в 0


[Config.ini]
ExtendedStartLog=0
InitialStateOf[StatusBar]=0
SaveChangesFor[StatusBar]=0
InitialStateOf[ControlBar]=0
SaveChangesFor[ControlBar]=0
InitialStateOf[Log]=0
SaveChangesFor[Log]=0
ActiveWindowHandle=
ActiveConfigID=
то при последующих запусках окно эмулятора должно выглядеть так:

http://s1.hostingkartinok.com/uploads/images/2012/03/5527b9e3fa349f4a231a0244f793057c.pngСравнив окна можно заметить, что во втором случае - полоса статуса конфига не отображается.

Содержимое этой полосы ( и всех остальных полос такого типа ) определяется в конкретном файле конфигурации.

В файле default.cfg из комплекта поставки - создаются кнопки и другие контролы ( виджеты ), которые затем подключаются к эмулируемым процессору и шине и помещаются на полосу статуса конфига.

В файле 60Kb.cfg ничего такого не делается ( специально, чтобы дать пользователям возможность попробовать самостоятельно привести полосу статуса конфига этой конфигурации в соответствие с файлом default.cfg ).

ZEman
07.03.2012, 12:52
Patron, спасибо за информацию, теперь всё появилось.

есть одно небольшое пожелание:

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

Patron
07.03.2012, 13:06
нельзя ли добавить в эмулятор функцию виртуального (обманного) сохранения ?
тоесть чтобы программа "думала" что она сохраняет информацию на диск а на самом деле ничего на диск не сохраняется.Если в Windows установить для файла того образа, в который собирается писать программа, атрибут "Read Only" - то при любой попытке записи в этот образ устройство HD будет сообщать об ошибке.

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

Patron
07.03.2012, 17:06
Эмулятор терминала.

2. Настройки клавиатуры.
------------------------------


Базовые параметры объектов типа Terminal находятся в ini-файле класса - Terminal.ini.

Любой из этих параметров может быть переопределён для конкретного экземпляра объекта типа Terminal в ini-секции такого объекта в файле конфигурации.

Например.

В файле Terminal.ini из комплекта поставки эмулятора для клавиши <F12> задана такая подставляемая строка:


ANSI_STR_FOR_KEY[F12] = "F12 "


А в секции [VT52.ini] файла default.cfg такая:


ANSI_STR_FOR_KEY[F12] = "f12 "


Запустив эмулятор в конфигурации по-умолчанию и нажав клавишу <F12> можно проверить, какая из подстановок будет выполнена.

Всего можно определить в файле Terminal.ini и переопределить в ini-секциях объектов типа Terminal в файлах конфигурации подставляемые строки для следующих клавиш:


ANSI_STR_FOR_KEY[F1] = "Help me !!! "
ANSI_STR_FOR_KEY[F2] = "Dir\015"
ANSI_STR_FOR_KEY[F3] = "F3 "
ANSI_STR_FOR_KEY[F4] = "F4 "
ANSI_STR_FOR_KEY[F5] = "\033g"
ANSI_STR_FOR_KEY[F6] = "\033h"
ANSI_STR_FOR_KEY[F7] = "\033S"
ANSI_STR_FOR_KEY[F8] = "\033c"
ANSI_STR_FOR_KEY[F9] = "\033\024"
ANSI_STR_FOR_KEY[F10] = "\033\010"
ANSI_STR_FOR_KEY[F11] = "\033\023"
ANSI_STR_FOR_KEY[F12] = "F12 "

ANSI_STR_FOR_KEY[Insert] = "\033P"
ANSI_STR_FOR_KEY[Delete] = "\033e"
ANSI_STR_FOR_KEY[Home] = "\033Q"
ANSI_STR_FOR_KEY[End] = "\033f"
ANSI_STR_FOR_KEY[PageUp] = "\033R"
ANSI_STR_FOR_KEY[PageDown] = "\033d"

ANSI_STR_FOR_KEY[PF1] = "\033P"
ANSI_STR_FOR_KEY[Pad_Slash] = "\033Q"
ANSI_STR_FOR_KEY[Pad_Star] = "\033R"
ANSI_STR_FOR_KEY[Pad_Minus] = "\033S"
ANSI_STR_FOR_KEY[Pad_Plus] = "\012"

ANSI_STR_FOR_KEY[LCtrl] = "\016"
ANSI_STR_FOR_KEY[RCtrl] = "\017"
ANSI_STR_FOR_KEY[LWin] = "\016"
ANSI_STR_FOR_KEY[RWin] = "\017"
ANSI_STR_FOR_KEY[LAlt] = "\016"
ANSI_STR_FOR_KEY[RAlt] = "\017"

ANSI_STR_FOR_KEY[Apps] = "\012"


Легко заметить, что в конфигурации по-умолчанию - клавиши <Ctrl>, <Win> и <Alt>, расположенные слева от пробела - генерят код перехода на русский регистр ( 016 ), а расположенные справа - код перехода на латинский регистр ( 017 ).

Клавиша <Apps> генерит по-умолчанию код LF ( 012 ).

Код, назначенный для клавиши PF1 :


ANSI_STR_FOR_KEY[PF1] = "\033P"

генерится при нажатии на клавишу <Num Lock>, но только в том случае, если параметр Use_NumLock_as_PF1 имеет действующее значение 1.

По умолчанию параметры управления клавиатурой таковы:


KeyboardControlling = 1
NumLockControlling = 1
NumpadSwapping = 1
Use_NumLock_as_PF1 = 0


Параметр KeyboardControlling разрешает или запрещает терминалу имитировать нажатия на клавиши <Num Lock>, <Caps Lock> и <Scroll Lock>.

Параметр NumLockControlling позволяет выборочно запретить терминалу имитировать нажатия на клавишу <Num Lock>.

Параметр NumpadSwapping отвечает за имитацию эмулятором терминала - цифрового и дополнительного клавиатурных блоков терминала 15ИЭ-00-013. При имитации терминала VT52 этот параметр лучше установить в 0, а при имитации 15ИЭ-00-013 - в 1.

Если NumpadSwapping = 1, то при включенном <Num Lock> - KEYPAD PC-шной клавиатуры имитирует NUMPAD терминалов VT52 и 15ИЭ-00-013, а стрелки PC-шной клавиатуры - имитируют стрелки терминалов VT52 и 15ИЭ-00-013 ( режим по-умолчанию ), тогда как при выключенном <Num Lock> - KEYPAD PC-шной клавиатуры имитирует KEYPAD клавиатуры 15ИЭ-00-013 ( отсутствующий у VT52 ), а стрелки PC-шной клавиатуры - имитируют клавиши 4, 5, 6 и 8 NUMPAD.

Поскольку большинство динамичных игр для PDP-11 управляются клавишами 4, 5, 6 и 8 NUMPAD - выключив <Num Lock> в режиме NumpadSwapping = 1 - можно передать эти функции стрелкам.

Но главное в том, что большинство программ для ДВК управляются кодами клавиш KEYPAD клавиатуры 15ИЭ-00-013. Поэтому, при выключенном <Num Lock> в режиме NumpadSwapping = 1 такие программы можно использовать более привычным и естественным образом.

...

В окне терминала клавиши <Alt>, <F10>, <Win> и <Apps> не выполняют своих системных функций, а генерят коды наравне с другими клавишами.

Клавиши <Ctrl> генерят назначенные им коды только при одиночном нажатии, тогда как при нажатии совместно с другими клавишами - обеспечивают генерацию управляющих кодов.

В режиме KeyboardControlling = 1:

1. При каждом получении фокуса ввода окном объекта типа Terminal - объект запоминает текущее состояние параметров <Num Lock>, <Caps Lock> и <Scroll Lock> клавиатуры и восстанавливает свой контекст, а при потере фокуса - осуществляет обратную операцию.

Каждый экземпляр терминала имеет свой собственный контекст состояний клавиатуры.

2. Одиночное нажатие на левую клавишу <Shift> всегда устанавливает <Caps Lock>, а одиночное нажатие на правую клавишу <Shift> - всегда сбрасывает <Caps Lock>.

3. Последовательные нажатия на клавишу <Scroll Lock> посылают в выходной поток коды <Ctrl/S> и <Ctrl/Q>.

Patron
07.03.2012, 23:24
Эмулятор терминала.

3. Настройки цвета.
-----------------------


Базовые параметры класса Terminal, определяемые в файле Terminal.ini и переопределяемые ( при необходимости ) в ini-секциях объектов типа Terminal в файлах конфигурации:



TerminalTextColor_RGB = 0,0,0
FrameBackgroundColor_RGB = 178,178,178
TerminalBackgroundColor_RGB = 170,204,221


позволяют настроить цвет текста и фона в окне терминала.

Например, такие настройки:



TerminalTextColor_RGB = 44,220,86
FrameBackgroundColor_RGB = 125,130,140
TerminalBackgroundColor_RGB = 42,46,44


дадут такой результат:

http://s1.hostingkartinok.com/uploads/images/2012/03/7f938d934a25b444178b60377571908c.png


Tакие настройки:



TerminalTextColor_RGB = 150,200,240
FrameBackgroundColor_RGB = 172,170,160
TerminalBackgroundColor_RGB = 50,60,55


дадут такой результат:

http://s1.hostingkartinok.com/uploads/images/2012/03/2ffa35d593ec2f5d55b9bdf9c42ed689.png

А такие настройки:



TerminalTextColor_RGB = 230,210,120
FrameBackgroundColor_RGB = 145,140,135
TerminalBackgroundColor_RGB = 48,44,58


дадут такой результат:

http://s1.hostingkartinok.com/uploads/images/2012/03/0cf8943e785a32a46baf2a1d18f54a52.png

...

Patron
08.03.2012, 13:16
Эмулятор терминала.

4. Настройки курсора.
--------------------------


Базовые параметры класса Terminal, определяемые в файле Terminal.ini и переопределяемые ( при необходимости ) в ini-секциях объектов типа Terminal в файлах конфигурации:



CURSOR_Y_START_% = 0
CURSOR_X_START_% = 0
CURSOR_Y_END_% = 100
CURSOR_X_END_% = 100
CURSOR_BLINK_ON_TIME_MS = 800
CURSOR_BLINK_OFF_TIME_MS = 300

позволяют настроить вид и "поведение" курсора.

Когда окно объекта типа Terminal получает фокус ввода - курсор начинает "моргать" с периодами включения и выключения, задаваемыми ( в миллисекундах ) параметрами CURSOR_BLINK_ON_TIME_MS и CURSOR_BLINK_OFF_TIME_MS.

...

Изменяя начальное и конечное значения строки и столбца отображения курсора в матрице символа - можно в широких пределах менять его форму.

По умолчанию курсор занимает всё знакоместо, но в разделе [VT52.ini] файла default.cfg - значения, определяющие форму курсора, переопределяются следующим образом:



CURSOR_Y_START_% = 85


В результате курсор меняет форму с такой: http://hostingkartinok.com/uploads/images/2012/03/0cdeb6c96993aaf8f3b2870ef8c60fa0.png на такую http://s1.hostingkartinok.com/uploads/images/2012/03/592661890c6bdaa3c089e97b2c761155.png.

...

Если же вместо "CURSOR_Y_START_% = 85" использвать такое значение:


CURSOR_X_END_% = 15


то результат будет таким: http://s1.hostingkartinok.com/uploads/images/2012/03/b2128cf869220a95a8c9298613815cab.png

Patron
09.03.2012, 13:21
Эмулятор терминала.

5. Настройки полосы статуса внутреннего окна.
--------------------------------------------------------


Строка


InitialStateOf[TerminalStatusBar]= 1
в секции [VT52.ini] файла default.cfg ( как и в секции любого другого объекта типа Terminal в любом другом файле конфигурации ) управляет показом полосы статуса внутреннего окна эмулятора терминала.

Если установить это значение в 0, то результат будет таким:

http://s1.hostingkartinok.com/uploads/images/2012/03/eb9a0c6d161ec5af0e3abf295625dc21.png

...

Базовые параметры класса Terminal, определяемые в файле Terminal.ini и переопределяемые ( при необходимости ) в ini-секциях объектов типа Terminal в файлах конфигурации:


TerminalStatusBar_Part[RUS/LAT] = nPosition[-1] ; nPriority[8] ; bHidden[0]
TerminalStatusBar_Part[GoldMode] = nPosition[-2] ; nPriority[0] ; bHidden[0]
TerminalStatusBar_Part[Log] = nPosition[-3] ; nPriority[4] ; bHidden[0]

TerminalStatusBar_Part[Font] = nPosition[4] ; nPriority[7] ; bHidden[0]
TerminalStatusBar_Part[BPS] = nPosition[3] ; nPriority[5] ; bHidden[0]
TerminalStatusBar_Part[CPS_Limit]= nPosition[2] ; nPriority[6] ; bHidden[0]
TerminalStatusBar_Part[CPS] = nPosition[1] ; nPriority[3] ; bHidden[0]


позволяют настроить положение и присутствие конкретных контролов (виджетов) на полосе статуса терминала.

Виджеты с отрицательными номерами позиции - выравниваются вправо, а с положительными - влево.

Если изменить номера их позиций вот так:



TerminalStatusBar_Part[RUS/LAT] = nPosition[1] ; nPriority[8] ; bHidden[0]
TerminalStatusBar_Part[GoldMode] = nPosition[2] ; nPriority[0] ; bHidden[0]
TerminalStatusBar_Part[Log] = nPosition[3] ; nPriority[4] ; bHidden[0]

TerminalStatusBar_Part[Font] = nPosition[-4] ; nPriority[7] ; bHidden[0]
TerminalStatusBar_Part[BPS] = nPosition[-3] ; nPriority[5] ; bHidden[0]
TerminalStatusBar_Part[CPS_Limit]= nPosition[-2] ; nPriority[6] ; bHidden[0]
TerminalStatusBar_Part[CPS] = nPosition[-1] ; nPriority[3] ; bHidden[0]


то результат окажется таким:

http://s1.hostingkartinok.com/uploads/images/2012/03/ecb7f3012b9c9df1450c1b68713789fb.png

Параметр bHidden каждого виджета управляет разрешением/запретом его отображения. Чтобы не слишком нужные виджеты перестали "засорять" полосу статуса - их параметры bHidden можно установить в 1.

В итоге, следующие (например) настройки:



TerminalStatusBar_Part[RUS/LAT] = nPosition[-1] ; nPriority[8] ; bHidden[0]
TerminalStatusBar_Part[GoldMode] = nPosition[-2] ; nPriority[0] ; bHidden[0]
TerminalStatusBar_Part[Log] = nPosition[-3] ; nPriority[4] ; bHidden[0]

TerminalStatusBar_Part[Font] = nPosition[4] ; nPriority[7] ; bHidden[1]
TerminalStatusBar_Part[BPS] = nPosition[3] ; nPriority[5] ; bHidden[0]
TerminalStatusBar_Part[CPS_Limit]= nPosition[2] ; nPriority[6] ; bHidden[0]
TerminalStatusBar_Part[CPS] = nPosition[1] ; nPriority[3] ; bHidden[1]


дадут такой результат:

http://s1.hostingkartinok.com/uploads/images/2012/03/63079df65175f233e57fde420d204f0f.png
...
P.S.
В процессе составления данного описания выяснилось, что установка в 1 параметра bHidden кнопки [Log] ( как и кнопки [G] ) не приводит к её "уничтожению". Вместо этого кнопка начинает "жить собственной жизнью". Данная ошибка будет исправлена в следующих версиях эмулятора терминала.

Patron
14.03.2012, 15:34
Использование эмулятора в конфигурации по-умолчанию.

2. Системная консоль.
---------------------------

Объекты типа Config организуют окна, открываемые объектами, создаваемыми в используемом файле конфиграции - в виде набора закладок.

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

Выбрав закладку Консоль в "эмуляторе ДВК", запущенном в конфигурации по-умолчанию - можно увидеть примерно следующее ( точный вид зависит от используемой темы оформления интерфейса Windows ):

http://s1.hostingkartinok.com/uploads/images/2012/03/6588ed5bd964e97e560929c6757d960b.png
Если в секции [Config.ini] файла default.cfg установить в 1 параметр InitialStateOf[Log], то при каждой загрузке файла конфигурации default.cfg - будет создаваться лог системной консоли с именем файла конфигурации и расширением .log . В конфигурации по-умолчанию это будет файл default.log следующего содержания:


Конфиг загружается: default.cfg

Конфиг: Встроенный модуль : Main_module.em
Конфиг: Встроенный модуль : CPU11_module.em
Конфиг: Встроенный модуль : DSK_module.em
Конфиг: Встроенный модуль : Port_module.em
Конфиг: Встроенный модуль : Terminal_module.em


HD: HD0 подключен к [HDSYS.DSK]

CPU: Скорость эмуляции: Достоверная скорость 1801ВМ1

[0.14] Конфиг загружен

bus: Подготовка эмуляции..
---------------------------------------------------------------------------------
Устройство Имя Компонент Адреса Векторы
---------------------------------------------------------------------------------
1801ВМ1 CPU ВЕ-Регистры 0177700:3
ВЕ-Таймер 0177706:3
Плата МС1201 CpuBoard Сетевой таймер 0100:1
ПЗУ-Бэйсик Отключен
ПЗУ-Пульт 0160000:0
ПЗУ-Загрузчик 0173000:256
ОЗУ 0177600:32
SEL2 0177714:1
SEL1 0177716:1
Диск HD HD 0177720:2
Плата DL11-W TerminalPort Порт терминала 0177560:4 060:2
Сетевой таймер Отключен
Плата DL11-W TerminalPort2 Порт терминала 0176510:4 0310:2
Сетевой таймер Отключен
---------------------------------------------------------------------------------

Эмуляция запущена..


Эмуляция остановлена..
Конфиг закрыт..

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

http://s1.hostingkartinok.com/uploads/images/2012/03/5ebdbd1349401425bf9302f8ab5f89d9.png
Установив в 1 в секции [Config.ini] файла default.cfg параметр ExtendedStartLog - можно узнать время создания (в секундах от начала загрузки файла конфигурации) каждого объекта эмулируемой конфигурации:



Конфиг загружается: default.cfg

[0.00] ReadIniSection [modules]

[0.00] Конфиг: Встроенный модуль : Main_module.em
[0.00] Конфиг: Встроенный модуль : CPU11_module.em
[0.00] Конфиг: Встроенный модуль : DSK_module.em
[0.00] Конфиг: Встроенный модуль : Port_module.em
[0.00] Конфиг: Встроенный модуль : Terminal_module.em

[0.00] ReadIniSection [objects]

[0.01] Создан объект: [bus]
[0.01] Создан объект: [Debug]
[0.01] Создан объект: [CPU]

HD: HD0 подключен к [HDSYS.DSK]

[0.01] Создан объект: [HD]
[0.06] Создан объект: [VT52]
[0.06] Создан объект: [Booter]
[0.06] Создан объект: [CpuBoard]
[0.06] Создан объект: [TerminalPort]
[0.06] Создан объект: [TerminalPort2]
[0.06] Создан объект: [MIPS_LIMIT_Part]
[0.06] Создан объект: [MIPS_Part]
[0.06] Создан объект: [Timer_Button]
[0.08] Создан объект: [HALT_Button]
[0.08] Создан объект: [Reset_Button]
[0.08] Создан объект: [Power_Button]
[0.08] Создан объект: [Pause_Button]

[0.08] ReadIniSection [links]

[0.09] Объекты связаны

CPU: Скорость эмуляции: Достоверная скорость 1801ВМ1

[0.14] Конфиг загружен

bus: Подготовка эмуляции..
---------------------------------------------------------------------------------
Устройство Имя Компонент Адреса Векторы
---------------------------------------------------------------------------------
1801ВМ1 CPU ВЕ-Регистры 0177700:3
ВЕ-Таймер 0177706:3
Плата МС1201 CpuBoard Сетевой таймер 0100:1
ПЗУ-Бэйсик Отключен
ПЗУ-Пульт 0160000:0
ПЗУ-Загрузчик 0173000:256
ОЗУ 0177600:32
SEL2 0177714:1
SEL1 0177716:1
Диск HD HD 0177720:2
Плата DL11-W TerminalPort Порт терминала 0177560:4 060:2
Сетевой таймер Отключен
Плата DL11-W TerminalPort2 Порт терминала 0176510:4 0310:2
Сетевой таймер Отключен
---------------------------------------------------------------------------------

Эмуляция запущена..


Эмуляция остановлена..
Конфиг закрыт..

Patron
14.03.2012, 19:03
Использование эмулятора в конфигурации по-умолчанию.

3. Отладочная консоль.
----------------------------

Выбрав в окне эмулятора, запущенного в конфигурации по-умолчанию, закладку Debug - можно увидеть содержимое отладочной консоли:

http://s1.hostingkartinok.com/uploads/images/2012/03/13e4979b6bc6991be0473129f7fcb5c1.png
На эту консоль эмулятор процессора ( объект CPU типа 1801VM1 ) выводит информацию о всех обращениях к несуществующим адресам и о неопознанных кодах команд.

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

При запущенном драйвере EM.SYS команды EIS и FIS эмулируются этим драйвером, но поскольку переход в драйвер осуществляется через вектор прерывания по резервной команде - полноценная работа программы, использующей команды EIS и FIS - может сопровождаться непрерывным выводом сообщений о неопознанных командах на отладочную консоль.

Patron
14.03.2012, 19:10
Изменение эмулируемой конфигурации.

Загрузка файлов конфигурации.
----------------------------------------------


В комплекте поставки "эмулятора ДВК" находятся три файла конфигурации: 1) default.cfg; 2) 60Kb.cfg; 3) Бэйсик НЦ.cfg.

Первый из них является файлом конфигурации по-умолчанию и автоматически загружается при первом запуске эмулятора. Однако, можно в любой момент выбрать в меню эмулятора пункт "Файл -> Открыть" и загрузить любой другой имеющийся файл конфигурации:

http://s1.hostingkartinok.com/uploads/images/2012/03/4bd53afc65ead3a044a3e27401b63235.png
В файле 60Kb.cfg эмулируется доработанный вариант ДВК-1 с увеличенным на 4К объёмом памяти:

http://s1.hostingkartinok.com/uploads/images/2012/03/b9ab19047290b7dbd05eb7cad58b634c.png

http://s1.hostingkartinok.com/uploads/images/2012/03/163dd778445583f2a63279abec0f27e0.png
Кроме того, в этом файле конфигурации не создаются кнопки ( и другие виджеты ), располагающиеся на полосе статуса конфига в конфигурации по-умолчанию. Это сделано для того, чтобы пользователи могли попробовать самостоятельно доработать этот .cfg-файл, добавив туда нужные строчки из файла default.cfg.

...

В файле Бэйсик НЦ.cfg эмулируется ДВК-1 с установленным ПЗУ Бэйсик и настройкой начального пуска на переход в ПЗУ:
http://s1.hostingkartinok.com/uploads/images/2012/03/cef2cadef61e5d8ed94cf61d1a538f48.pngОшибочк а..

После добавления состояния Boot в объект Booter - файл Бэйсик НЦ.cfg не был скорректирован, а поскольку состояние Boot объекта Booter имеет по-умолчанию значение 1, то теперь при загрузке этого файла конфигурации осуществляется принудительный запуск RT-11.

Поэтому, для перехода в ПЗУ-Бэйсик нужно отжать и снова нажать кнопку [Вкл.] ( или нажать и снова отжать кнопку [Сброс] ):

http://s1.hostingkartinok.com/uploads/images/2012/03/49ee04b7c4dd871f8b1bad7ccd239835.png

Но мы не ищем лёгких путей - поэтому для нормальной загрузки файла конфигурации Бэйсик НЦ.cfg - вообще удалим из него объект Booter, закомментировав строку создания этого объекта в секции [objects]:



[objects]

bus = Ядро:PDP11A16

Debug = Ядро:Console
CPU = CPU_module:1801VM1
HD = DSK_module:HD
VT52 = Terminal_module:Terminal
; Booter = Ядро:Booter
CpuBoard = CPU_module:MS1201


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

http://s1.hostingkartinok.com/uploads/images/2012/03/7f6b40c65b0c313cf63b038c1993659f.pngОпять ошибочка..

Но на этот раз гораздо понятнее, в чём дело! Эмулятор явно недоволен тем, что мы требуем от него подключить к эмулируемой шине несуществующий объект Booter.

Видимо, нужно снова открыть в редакторе файл Бэйсик НЦ.cfg и отредактировать упомянутую строку в секции [links].

Было:


[links]

bus & CPU | CpuBoard | HD | TerminalPort | Booter


Стало:


[links]

bus & CPU | CpuBoard | HD | TerminalPort ; | Booter


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

http://s1.hostingkartinok.com/uploads/images/2012/03/d06b704deeed76a185b0e48f6e279796.png
Ура!

Достигнута долгожданная цель, к которой ( в нашем лице ) стремилось всё прогрессивное человечество !!!

Patron
14.03.2012, 23:14
Изменение эмулируемой конфигурации.

Формат файлов конфигурации.
--------------------------------------------

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

Все файлы конфигурации имеют ( в основном ) следующий формат:


[section]
key = value
; comment
основанный на формате MS PrivateProfile для .ini-файлов.

Символ ';' имеет особый смысл и исключает строку из рассмотрения ( превращая её в комментарий ) только в том случае, когда является первым непробельным символом в строке.

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

...

Секция [modules] содержит объявления используемых модулей в формате:


имя_модуля = путь_к_файлу_модуля
Модули эмулятора - это обычные файлы .dll, переименованные в .em

Поиск файла модуля ( если путь к файлу модуля не исключает такой возможности ) вначале осуществляется в каталоге встроенных модулей. В комплекте поставки "эмулятора ДВК" все поставляемые модули встроены в файл pdp11.exe.

В версии модульного API, существующей на момент создания данного описания - средства просмотра пользователем каталога встроенных модулей отсутствуют.

Чтобы экспортируемые модулем объекты могли быть использованы в эмулируемой конфигурации - модуль должен быть объявлен в секции [modules].

...

Секция [objects] содержит объявления используемых объектов в формате:



имя_объекта = имя_модуля:тип_экспортируе� �ого_модулем_объекта

В версии модульного API, существующей на момент создания данного описания - средства просмотра пользователем списка экспортируемых модулем объектов отсутствуют.

В процессе загрузки файла конфигурации - объекты создаются в том порядке, в котором они объявлены в секции [objects], и если объект создаёт окно средствами модульного API - такие окна располагаются на панеле закладок объекта Config в порядке создания "владеющих" ими объектов ( слева направо ).

Все имена объектов, объявленных в секции [objects], должны быть уникальны (иначе эмулятор будет ругаться).

...

Секция [links] содержит строки ( несовместимые с форматом MS PrivateProfile для .ini-файлов ), описывающие способы динамического связывания созданных объектов на специальном языке описания связей ( который будет рассмотрен позже ).

В секции [links] "поведение" символа ';' отличается от других секций. В любых других секциях символ ';' "работает" ( превращая строку в комментарий ) только в самом начале строки, а в секции [links] - символ ';' означает начало комментария в любой позиции.

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

...

Все остальные секции .cfg-файлов имеют формат:



[имя_объекта.ini]
параметр = значение
; комментарий
и автоматически размещаются там объектами при их первом создании ( в том случае, если объект имеет хотя бы одно хранимое состояние или хотя бы один хранимый параметр ).

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

Начальные значения всех параметров в "свежей" секции объекта - соответствуют их значениям по-умолчанию. Только что автоматически созданная "свежая" секция объекта не может содержать значений базовых параметров ( из глобального ini-файла класса ), однако при любом изменении базовых параметров экземпляра объекта в процессе эмуляции - их изменённые значения будут сохранены в секции этого объекта в файле конфигурации.

Patron
15.03.2012, 17:16
Изменение эмулируемой конфигурации.

Свойства окон объектов.
-----------------------------------


Чтобы главное окно объекта попало в закладки конфига - оно должно быть создано при помощи модульного API. Все такие окна принадлежат к базовому классу Workfield, а автоматически создающие их объекты - к базовому классу WorkfieldOwner. Это обеспечивает универсальное единообразие свойств главных окон объектов модульного API.

Для выяснения этих свойств - создадим пустой файл, назовём его test.cfg и загрузим в эмулятор командой меню "Файл -> Открыть":

http://s1.hostingkartinok.com/uploads/images/2012/03/8ce73e800682ca92f58eb80978af346b.png

Открыв затем файл test.cfg в текстовом редакторе - можно обнаружить, что объект Config уже "прописал" туда свою секцию:


[Config.ini]
InitialStateOf[Log]=0
SaveChangesFor[Log]=0
ExtendedStartLog=0
ActiveWindowHandle=
ActiveConfigID=
InitialStateOf[ControlBar]=0
SaveChangesFor[ControlBar]=0
InitialStateOf[StatusBar]=0
SaveChangesFor[StatusBar]=0


Изменим значения состояний ControlBar и StatusBar на 1:



[Config.ini]
InitialStateOf[Log]=0
SaveChangesFor[Log]=0
ExtendedStartLog=0
ActiveWindowHandle=
ActiveConfigID=
InitialStateOf[ControlBar] = 1
SaveChangesFor[ControlBar] = 0
InitialStateOf[StatusBar] = 1
SaveChangesFor[StatusBar] = 0


и снова запустим эмулятор:

http://s1.hostingkartinok.com/uploads/images/2012/03/24e1e595f06791b14890c229baef81cd.png
Сравнив результаты можно заметить, что выше и ниже окна закладок появились полосы для размещения виджетов ( верхняя называется ControlBar, а нижняя - StatusBar ).

Отключим верхнюю полосу, установив InitialStateOf[ControlBar] опять в 0 и добавим в файл test.cfg строки, необходимые для создания консоли:



[modules]

Main = Main_module.em

[objects]

Con = Main:Console


[Config.ini]
InitialStateOf[Log]=0
SaveChangesFor[Log]=0
ExtendedStartLog=0
ActiveWindowHandle=
ActiveConfigID=
InitialStateOf[ControlBar] = 0
SaveChangesFor[ControlBar] = 0
InitialStateOf[StatusBar] = 1
SaveChangesFor[StatusBar] = 0

Снова запустим эмулятор:

http://s1.hostingkartinok.com/uploads/images/2012/03/620e9e037c3aceaef6eb8c06e1951b5e.png
Открыв ещё раз файл test.cfg в редакторе - можно обнаружить, что там появилась новая секция, размещённая созданным экземпляром консоли:



[Con.ini]
TabTitle=""
InitialStateOf[ControlBar]=1
SaveChangesFor[ControlBar]=0
InitialStateOf[StatusBar]=1
SaveChangesFor[StatusBar]=0
LeftDumpSeparator="«"
RightDumpSeparator="»"
InitialStateOf[Dump]=1
SaveChangesFor[Dump]=0
InitialStateOf[Log]=0
SaveChangesFor[Log]=0

Как видим - здесь состояния ControlBar и StatusBar имеют по умолчанию значения 1, поэтому, перейдя на закладку Con можно окончательно убедиться, что окно консоли имеет свои собственные полосы виджетов и что по умолчанию они включены:

http://s1.hostingkartinok.com/uploads/images/2012/03/f6c0e38221caf413c17eb624baf5fd30.png

То же справедливо и для окон "свежесозданных" объектов типа Terminal - у них верхняя и нижняя полосы главного окна также по умолчанию включены:




[modules]

Main = Main_module.em
Term = Terminal_module.em

[objects]

Con = Main:Console
VTxx = Term:Terminal

http://s1.hostingkartinok.com/uploads/images/2012/03/2e32ef28efb794e62f2fa708c2553a9c.png
...

Все главные окна объектов ( кроме окна корневого конфига ) имеют параметр TabTitle, определяющий название закладки. По умолчанию этот параметр не задан и тогда название закладки главного окна объекта совпадает с именем объекта, указанным при его создании.

Однако, если в нашем тестовом файле конфигурации test.cfg изменить параметры TabTitle консоли и терминала на "Консоль", то результат может показаться довольно оригинальным:

http://s1.hostingkartinok.com/uploads/images/2012/03/3a34d19be1a2e7b6c088af22c49ff78a.png

hobot
15.03.2012, 21:27
В версии модульного API, существующей на момент создания данного описания - средства просмотра пользователем каталога встроенных модулей отсутствуют.
но это же можно реализовать будет или будут как-то иначе скомпилированы сами
модули ??? не в один exe наверное а расчленёнкой ??? хотя мне то больше как пользователя интересует доработка именно ДВК-эмулятора (в смысле контроллера графического дисплея) про цветной вроде как есть EmuStudio, но вот обычный было бы просто супер!!! "ПОЧТИ" реальная мощная ДВК где работает "ПИФ-ПАФ" )))

И на скринах видна дата последней сборки 15 марта 2012 - это просто для теста,
описания перекомпилировано было??? Или грядёт обновление ???

Titus
15.03.2012, 21:40
про цветной вроде как есть EmuStudio, но вот обычный было бы просто супер!!!
Вообще и ч/б есть в EmuStudio)

Patron
15.03.2012, 22:21
И на скринах видна дата последней сборки 15 марта 2012 - это просто для теста, описания перекомпилировано было??? Или грядёт обновление ???Обновление грядёт. Но кроме разных исправлений там будет добавлена только возможность использовать терминал вместо консоли. Т.е. объекты Config, Console и Terminal станут полностью идентичны по входным и выходным сокетам ( так в модульном API называются интерфейсы обмена потоковыми данными между объектами ).

В теущей сборке терминал не может получать входной поток текста.

hobot
15.03.2012, 23:08
Обновление грядёт.
Ждём! Любой прогресс этого проекта я думаю все понимают насколько это важно.


Вообще и ч/б есть в EmuStudio)
EmuStudio - как я уже писал не раз - вещь уникальная в принципе !!!
Мне бы и не приснился такой гибрид из УКНЦ и ДВК-видео-контроллеров сделать,
но вот практически доказано, что можно, вот интересно насколько такое возможно
с реальным железом (но это уже пробовали обсуждать и здесь не по теме)

Patron
15.03.2012, 23:14
интересно насколько такое возможно
с реальным железомПри выводе на разные мониторы и когда регистры устройств не конфликтуют - проблемы у подобной "гибридизации" чисто "монтажные".
Но если регистры конфликтуют, а монитор один - "это фантастика" :)

Titus
15.03.2012, 23:21
При выводе на разные мониторы и когда регистры устройств не конфликтуют - проблемы у подобной "гибридизации" чисто "монтажные".
Но если регистры конфликтуют, а монитор один - "это фантастика" :)
Если работает на эмуляторе, то уже не фантастика, т.к. эмулятор эмулирует лишь некое абстрактное железо)

Patron
15.03.2012, 23:29
Если работает на эмуляторе, то уже не фантастика, т.к. эмулятор эмулирует лишь некое абстрактное железоНо те меры, которые осуществляет эмулятор для "разрешения железных противоречий" - невозможно облечь в "плоть и кровь" лишь при помощи паяльника. Тут явно пахнет чем-то вроде заказных микросхем.

hobot
15.03.2012, 23:31
При выводе на разные мониторы и когда регистры устройств не конфликтуют - проблемы у подобной "гибридизации" чисто "монтажные".
Но если регистры конфликтуют, а монитор один - "это фантастика" :)

Понимаю проблему так !!! У каждого контроллера свой видео выход их легко можно
проводками в один универсальный как-то придумать (ну я так размышляю), а регистрами управляет видео_драйвер ???
При включении все идет как обычно (бортовое видео), по мере необходимости
драйвер согласованно пересылает и преобразовывает нужные последовательности
данных в нужные регистры на железном уровне (скажем так).
Бортовое - родной видео УКНЦ
доп. - некий ЦГА_ЕГА (ну что то типа КГД_КЦГД).
Многомониторность? Ну на родной плате два выхода штатных есть можно их и использовать как-то наверное ))) Но лучше конечно одну картинку с переключалкой
как и в эмуляторе

Titus
16.03.2012, 00:40
Но те меры, которые осуществляет эмулятор для "разрешения железных противоречий" - невозможно облечь в "плоть и кровь" лишь при помощи паяльника. Тут явно пахнет чем-то вроде заказных микросхем.
Естественно, на базе родной УКНЦ такой гибрид сделать было бы сложновато. Но, во-первых она сама состоит из сплошных заказных микросхем, и если речь идет о некоем клоне с поддержкой КГД и КЦГД, то это будет не на базе стандартных УКНЦ-шевских чипов.
В принципе, чтобы сделать гибрид УКНЦ + КСМ + КГД + КЦГД на основе честного железа, понадобилось бы 4(!) процессора, три ВМ2, и один ВМ80. Некоторое число стандартных УКНЦ-шных чипов, и заказной чип типа Альтеры.

hobot
16.03.2012, 09:57
Естественно, на базе родной УКНЦ такой гибрид сделать было бы сложновато. Но, во-первых она сама состоит из сплошных заказных микросхем, и если речь идет о некоем клоне с поддержкой КГД и КЦГД, то это будет не на базе стандартных УКНЦ-шевских чипов.
В принципе, чтобы сделать гибрид УКНЦ + КСМ + КГД + КЦГД на основе честного железа, понадобилось бы 4(!) процессора, три ВМ2, и один ВМ80. Некоторое число стандартных УКНЦ-шных чипов, и заказной чип типа Альтеры.
(не по теме продолжу)
ИМХО:
Надо четкое ТЗ сочинить для начала, что вообще хотелось бы от персональной
ПИДИПИ-11 образца 2012-года получить, определить желаемую функциональность очень четко, совместимость ограничить как-то, а элементы(железо) это уже вопрос реализации этого ТЗ )))

Patron
16.03.2012, 21:20
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_15.03.12_15-10.

Изменения:

1. В классе Terminal добавлен безымянный входной сокет потока текста. Это даёт возможность использовать объекты типа Terminal вместо объектов типа Console для вывода текстовых сообщений объектов.

2. Добавлен файл конфигурации Server.cfg, для терминального подключения к эмулируемой ДВК-1 по TCP/IP ( IP по-умолчанию == Все IP-адреса хост-машины ; порт по-умолчанию == 8023 ).

...

Patron
16.03.2012, 22:11
Изменение эмулируемой конфигурации.

Запуск терминального сервера.
---------------------------------------------


Для запуска терминального сервера нужно загрузить файл конфигурации Server.cfg, входящий в комплект поставки эмулятора.

Сервер обслуживает одно TCP/IP подключение к порту системного терминала. По умолчанию сервер ожидает входящие соединения на всех IP-адресах хост-машины. Порт по-умолчанию: 8023.

Настройки сервера находятся в секции [IP_Adapter1.ini] файла Server.cfg:


[IP_Adapter1.ini]
Listen_on_IP =""
Listen_on_Port = 8023
Connect_to_IP =""
Connect_to_Port= 0
Extended_Log=0


Для прямого задания IP-адреса ожидания подключения нужно изменить параметр Listen_on_IP, например так:



[IP_Adapter1.ini]
Listen_on_IP = 127.0.0.1
Listen_on_Port = 8023
Connect_to_IP =""
Connect_to_Port= 0
Extended_Log=0


В данной конфигурации терминал используется только для контроля обмена данных. Терминальный ввод возможен лишь при IP-подключении:

http://s1.hostingkartinok.com/uploads/images/2012/03/8c5521b293f4d75fd03216192922ff6b.png

hobot
17.03.2012, 23:11
000.DAT - монитор МС1201.0, стартовый адрес 0160000
013.DAT - ПЗУ Бэйсик для МС1201.0, стартовый адрес 0140000, ввод-вывод на PR/PP/PC11 (перфолента!)
055.DAT - монитор МС1201.2, стартовый адрес 0140000
091.DAT - ПЗУ КМД изначальный, addr=0, ОЗУ на 1809РУ1, контроллер 1801ВП1-097
092.DAT - ПЗУ КМД, addr=0, ОЗУ на 537РУ11, контроллер 1801ВП1-128
093.DAT - ПЗУ КМД, addr=0, ОЗУ на 1809РУ1, контроллер 1801ВП1-128
134.DAT - монитор МС1201.3, addr=0
134e.DAT - монитор МС1201.3, addr=0,
для работы с фирменными терминалами (без русского в сообщениях, загрузчик RR вместо DX)
181.DAT - ПЗУ КЦГД, addr=0100000, изначальный вариант, система команд vt102
182.DAT - ПЗУ КЦГД, addr=0100000, много bugfixов, система команд vt220,
графические программы, написанные под 181, уже не идут =(
255.DAT - ПЗУ КМД, addr=0, ОЗУ на 537РУ8/РУ10
фиксировано по адресам 020000..027777, контроллер 1801ВП1-128

SEL1_Data = 0160003 <--- этот параметр отправляет настройки раздела куда-то там
(стартовый адресс или что то такое верно?), а есть шанс другой вместо БАСИКА dat файл скормить? и почему для базового ПЗУ адрес изменён? (вроде увеличен до нечётного). Я (если честно) поэкспериментировал, но получается "карусель" ошибок
в закладке "debug" )))

Alex_K
17.03.2012, 23:22
SEL1_Data = 0160003 <--- этот параметр отправляет настройки раздела куда-то там

Это значение регистра SEL1 с адресом 177716. У 1801ВМ1 старший байт этого регистра определяет стартовый адрес и адреса векторов останова и фатальных ситуаций. Стартовый адрес соответственно 160000. А младший байт может использоваться системой по своему усмотрению. В МС1201.0 с ПЗУ 1801РЕ1-000 в частности биты 0 и 1 содержат условия начального пуска:
00 (0) - перезапуск по вектору 24;
01 (1) - выход в пультовый отладчик;
10 (2) - запуск с адреса 173000 (загрузка с DX);
11 (3) - запуск с адреса 140000 (ПЗУ пользователя).
Так что в эмуляторе пока имеют смысл только условия 1 и 3.

hobot
17.03.2012, 23:27
условия начального пуска:
условие пуска ! спасибо )))
сейчас будем продолжим его прошивками кормить )))
у меня их много )))

Alex_K
17.03.2012, 23:41
условие пуска ! спасибо )))
сейчас будем продолжим его прошивками кормить )))
у меня их много )))
А для МС1201 с процессором 1801ВМ1 имеют смысл только прошивки -000 и -054 со стартового адреса 160000. А для стартового адреса 140000 собственно мне известен только Бейсик.
Так что другие прошивки не подойдут, не стоит и мучиться.

hobot
17.03.2012, 23:46
-054
???

Alex_K
17.03.2012, 23:54
???
Прошивка -054 для платы МС1201.01, поддерживает загрузку с MX, DY (8-дюймовый дисковод с двойной плотностью записи), а также уже восемь условий начального пуска.
Прошивка - http://zx.pk.ru/showpost.php?p=407632&postcount=30

Patron
18.03.2012, 00:01
а есть шанс другой вместо БАСИКА dat файл скормить?При помощи объекта ROM можно подключать любые образы ПЗУ с любых адресов памяти.

Но желательно делать это так, чтобы образы в памяти не пересекались ( пока это не проверяется ). Или проверяется.. Не помню. Вполне может быть, что каждая ячейка ПЗУ считается, как регистр устройства ROM, поэтому если диапазоны адресов двух ПЗУ пересекаются, то может вылезти сообщение о конфликте установленных устройств.

Например, можно подключить ПЗУ Бэйсик с адреса 0140000 таким манером:



[objects]

ROM = CPU_module:ROM

[links]

bus & CPU | CpuBoard | HD | TerminalPort | Booter | TerminalPort2 | ROM


[ROM.ini]
ROM_DataFile = 013.dat
ROM_BaseAddress = 0140000
ROM_Bytes = 020000
ROM_LatencyNS = 120
ROM_Disable = 0



Кстати, всё это уже написано в default.cfg, но немного иначе:



[objects]

;;; ROM = CPU_module:ROM

[links]

bus & CPU | CpuBoard | HD | TerminalPort | Booter | TerminalPort2 ;; | ROM


[ROM.ini]
ROM_DataFile = 013.dat
ROM_BaseAddress = 0140000
ROM_Bytes = 020000
ROM_LatencyNS = 120
ROM_Disable = 1


Сравнив - довольно легко понять, что и как надо изменить.

Patron
18.03.2012, 00:11
А для МС1201 с процессором 1801ВМ1 имеют смысл только прошивки -000 и -054 со стартового адреса 160000.Есть ещё прошивка -031 ( монитор ДВК МС1201.1 ) (http://zx.pk.ru/attachment.php?attachmentid=34063). Она отличается ( вроде ) только добавлением загрузки с MX.

...

Alex_K
18.03.2012, 00:28
Есть ещё прошивка -031 ( монитор ДВК МС1201.1 ) (http://zx.pk.ru/attachment.php?attachmentid=34063). Она отличается ( вроде ) только добавлением загрузки с MX.

...

Да не только. Так же уже восемь условий начального пуска, есть загрузка с DY (адрес 173200). А вот чем конкретно отличаются -031 и -054, это надо дизассемблировать и смотреть.

hobot
18.03.2012, 00:30
Есть ещё прошивка -031 ( монитор ДВК МС1201.1 ). Она отличается ( вроде ) только добавлением загрузки с MX.

Давайте все ДВК-ромы какие есть уже в одном месте соберём? (http://pdp-11.org.ru/~hobot_lmb/ukdwk_archive/dwkwebcomplekt/dwkrom/)
Я то скинул туда пачку, которую кто-то выложил на форуме и
текстовый файл - это копия сообщения(описание), если честно я думал, что эти номерочки означают физические номера ПЗУшек и что их ограниченное количество )))
2:Alex_K - извиняюсь, я уже слегка снова запутался в аббревиатурах, что такое КСМ? Контроллер чего? )))

---------- Post added at 00:30 ---------- Previous post was at 00:29 ----------


-054
вроде такого в папке нет (((

Patron
18.03.2012, 00:32
Сейчас проверил - похоже, что и с 31-й, и с 54-й прошивками пульт работает без проблем. Только с расширенными условиями пуска надо будет разобраться. Не факт, что значение активирующего их "дополнительного" бита SEL1 эмулятор позволит задать в .cfg-файле.

Alex_K
18.03.2012, 00:35
2:Alex_K - извиняюсь, я уже слегка снова запутался в аббревиатурах, что такое КСМ? Контроллер чего? )))
КСМ - контроллер символьного монитора. Являлся заменой 15ИЭ-00-013 в моноблоке ДВК-3 с платой МС1201.02 (процессор 1801ВМ2).

---------- Post added at 00:35 ---------- Previous post was at 00:33 ----------


Сейчас проверил - похоже, что и с 31-й, и с 54-й прошивками пульт работает без проблем. Только с раширенными условиями пуска надо будет разобраться. Не факт, что значение активирующего их "дополнительного" бита SEL1 эмулятор позволит задать в .cfg-файле.
А дополнительный бит - это бит 4, он определяет дополнительные условия, типа автоматической загрузки с DY или с MX.

hobot
18.03.2012, 00:41
КСМ - контроллер символьного монитора. Являлся заменой 15ИЭ-00-013 в моноблоке ДВК-3 с платой МС1201.02 (процессор 1801ВМ2).
я видел что вы его выкладывали не так давно, его тоже наверное нужно в туже папку подшить к остальным DVKROM ? Я имею в виду - логически это было бы верно ?
И вот тогда такой вопрос - я читаю там описание всех РОМОВ (http://pdp-11.org.ru/~hobot_lmb/ukdwk_archive/dwkwebcomplekt/dwkrom/dwk-rom.txt) но где же там обычный
КГД - без цвета который? Неужели нету или я снова что-то путаю ?

---------- Post added at 00:41 ---------- Previous post was at 00:37 ----------

Patron, а вот ещё на засыпку вопрос - ламерский - как подпихнуть вместо 1801
другую ДВК на вм2 или вм3 писать новый эмулятор ??? То есть как это в будущем планируется в рамках данной разработки ??? (уф.)
а есть шанс укнц-ром подпихнуть ))) и кассету бейска-вильнюс )))

Titus
18.03.2012, 00:50
но где же там обычный
КГД - без цвета который? Неужели нету или я снова что-то путаю
КГД не имеет ROM'a, это просто дополнительная видеопамять с регистрами и все.

---------- Post added at 00:50 ---------- Previous post was at 00:49 ----------



а есть шанс укнц-ром подпихнуть ))) и кассету бейска-вильнюс )))
УКНЦ-ROM будет работать ТОЛЬКО на УКНЦ)

Alex_K
18.03.2012, 00:55
а вот ещё на засыпку вопрос - ламерский - как подпихнуть вместо 1801
другую ДВК на вм2 или вм3 писать новый эмулятор ??? То есть как это в будущем планируется в рамках данной разработки ??? (уф.)
а есть шанс укнц-ром подпихнуть ))) и кассету бейска-вильнюс )))
Чтоб подпихнуть ROM, это надо эмулировать не только процессор, но и материнскую плату. Т.к. прошивки работают еще и с ресурсами платы.

Patron
18.03.2012, 00:58
как подпихнуть вместо 1801 другую ДВК на вм2 или вм3 писать новый эмулятор ??? То есть как это в будущем планируется в рамках данной разработки ???В модульном API есть такое понятие "шина" ( bus ) Шина - это диспетчер эмуляции конкретной архитектуры. Для эмуляции архитектур с 16-разрядным адресом я написал шину PDP11A16. Там, если нужно заменить страницу памяти - она просто копируется устройством ( в имеющемся эмуляторе это устройство называется CpuBoard ) из своего "персонального" массива страниц памяти в общий массив 64К, который обслуживает шина. В принципе, таким несложным способом можно эмулировать весьма хитрые архитектуры памяти.

Значит, если шина PDP11A16 устраивает - нужно написать эмулятор процессора с интерфейсом этой шины и эмулятор диспетчера памяти, также с интефейсом шины PDP11A16.

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

hobot
18.03.2012, 01:58
КГД не имеет ROM'a, это просто дополнительная видеопамять с регистрами и все.
просто плата с памятью и выходом на дисплей?
вот бы ее запустить(эмулировать) на двк-эмуляторе ))) хочется граф(зелёненькие) и звук системы охлаждения, а пикает и так очень правильно ( по тональности) !


Значит, если шина PDP11A16 устраивает - нужно написать эмулятор процессора с интерфейсом этой шины и эмулятор диспетчера памяти, также с интефейсом шины PDP11A16.
Спасибо.
В архив к остальным РОМ залью архив КСМ от Alex_K и ещё две
прошивки 031 и 054 - как их описать в текстовом файлике правильно???
параметры запуска в разных прошивках - по мне - секретная какая-то информация))) а должно быть наоборот !

---------- Post added at 01:58 ---------- Previous post was at 01:56 ----------

уже там только описания к ним нет ))) (http://pdp-11.org.ru/~hobot_lmb/ukdwk_archive/dwkwebcomplekt/dwkrom/)

Titus
18.03.2012, 01:59
просто плата с памятью и выходом на дисплей?
вот бы ее запустить(эмулировать) на двк-эмуляторе ))) хочется граф(зелёненькие) и звук системы охлаждения, а пикает и так очень правильно ( по тональности) !
Тут уже не раз говорилось о том, почему пока не написана эмуляция графики.
А зелененькие буковки можешь посмотреть и в EmuStudio)

hobot
18.03.2012, 02:03
А зелененькие буковки можешь посмотреть и в EmuStudio)
Зелёненькие буковки я как раз могу в эмуляторе Patrona смотреть, благо тут
где-то очень правильные цвета для конфига (ты наверное и выложил) уже
готовые есть, (картинку под спойлер убрал)

http://savepic.net/2577772.png

я про пиф-паф и остальные ASPcorp. радости - но на ДВК! ))))
И надо что-бы вентилятор БП работал ))) Пик-пик )))

Titus
18.03.2012, 02:09
я про пиф-паф и остальные ASPcorp. радости - но на ДВК! ))))
Они на EmuStudio работают в этом же зеленом цвете так же. Ну разве что без пик-пика)

hobot
18.03.2012, 02:36
по поводу "уже писали почему пока нет графики",
на самом деле ты же и обсуждал это с Patron, а я только читал и понял его
позицию так (если правильно понял)

вот получается такая штука
[ эулятор ДВК в таком виде как сейчас
с запущенным приложением LAND.SAV]
-->
обращается к несуществующему устройству (видеокарточке КГД)
-->
несуществующее устройство должно дать картинку (куда???)
на новую закладку (КГД) ???
или на существующую VT52 в эмуляторе ???
или будет всё по другому когда(и если) дойдёт до реализации КГД.

Насколько я понял, Patron (я пытаюсь разобраться) писал, что для начала надо чтобы "кто-то" написал сэмулировал видео-сигнал? или конкретный дисплей ? Почему именно в такой последовательности?
Все вопросы риторические.

http://pdp-11.org.ru/~hobot_lmb/ukdwk_archive/dwk.png

Patron
18.03.2012, 12:39
Насколько я понял, Patron (я пытаюсь разобраться) писал, что для начала надо чтобы "кто-то" написал сэмулировал видео-сигнал? или конкретный дисплей ? Почему именно в такой последовательности?Сейчас в "эмуляторе ДВК" эмулируется текстовый терминал, получающий поток байтов из последовательного порта. В этой ( на первый взгляд несложной ) операции задействовано 2 эмулятора ( эмулятор последовательного порта и эмулятор терминала ) и модуль реализации протокола "поток байтов".

Для вывода же информации КСМ + КГД на эмулятор видеомонитора - нужно написать модуль реализации протокола "поток видео" ( а для этого сначала должна быть написана спецификация этого протокола ), потом нужно написать эмулятор видеомонитора, и наконец - написать эмуляторы плат КСМ и КГД.

hobot
18.03.2012, 23:38
нужно написать модуль реализации протокола "поток видео"
а разве этот шаг не входит "автоматически" в эмуляцию КГД ? Дисплей то картинку
уже с этой платы получает? Или я что-то не улавливаю ))) Если есть допустим любая видеокарточка - что-бы её эмулировать не нужно же писать эмулятор(модуль) видео-шнура )))
Ну я утрирую конечно. Модуль реализации "поток видео" - я понимаю - это отдельная часть эмулятора, но мне думается это не отдельный модуль, это часть
эмуляции конкретной железки, для КЦГД поток видео (герцовка и прочие характеристики) будут же совсем другими или этот модуль будет настраиваемым?
Извиняюсь, но для меня это не слишком явный момент, поэтому и спрашиваю.

Patron
19.03.2012, 00:05
а разве этот шаг не входит "автоматически" в эмуляцию КГД ?Точно так же, как изучение языка программирования "автоматически" входит в написание любой программы на нём. А когда, прежде чем писать программу, нужно не просто изучить, а с нуля придумать используемый язык, да ещё так, чтобы он был простым, универсальным и полноценым - такой "шаг" уже не выглядит мелким и второстепенным.

hobot
20.03.2012, 02:16
http://savepic.net/2596908.png
Ещё один вариант ТЕТРИСА (СТАКАН) для ДВК (скобочки [] присутствуют) !

Будьте бдительны не путайте данный файл с ТЕХНОКОМОВСКИМ NEWTET.SAV для УКНЦ !



http://savepic.net/2601004.pnghttp://savepic.net/2602028.png

hobot
21.03.2012, 08:31
Немного другой вариант игры SPACE_INVADERS, предлагает
в самом начале выбрать уровень сложности, управление как и
в варианте на системе от Patrona, хотя в самом начале
игры и управление описывается также.

Пришлось только немного поправить (закомментировать) в исходнике
одну константу и заново скомпилировать игру! И ура, всё сразу заработало)

http://savepic.net/2574430.png

В архиве SPCINV.(SAV,DAT,COM,MAC)
>>> источник <<< (http://www.ibiblio.org/pub/academic/computer-science/history/pdp-11/rt/games/)

hobot
10.04.2012, 00:43
Patron, если что то подобное пропустил прошу дать ссылку, а вопрос такой:
Можно по HD.SYS драйверу, который используется в эмуляторе ДВК какое-то подробное описание дать? Подкупает его ээээ универсальность, ведь ему пофигу (как показывает практика) что там за образ и какого объёма - он всё всё кушает. Вот такую бы универсальную вещь на "условно несуществующую новую PDP" что бы ей
было пофиг что там на флешке(твердотелом накопителе) - образ дискеты или целого харда, а загрузчик и ядро системы (RT-11 например) на уровне прошивки
с возможность перенаправления загрузки на один из образов или внешний носитель (вопросы вопросы - жаль всё по разным темам разбрасывается, надо бы как-то в одну все обсуждения такие собрать???)

Patron
10.04.2012, 12:10
ему пофигу (как показывает практика) что там за образ и какого объёмаЭто верно для драйвера любого устройства, поддерживающего "тома переменного размера" ( например, LD ).

hobot
14.04.2012, 02:54
Воскрешаем РАФОС?

http://savepic.net/2712229.png

http://savepic.net/2718373.png



Image : raf2hd.dsk

Format : DSK
Size : 800 Kb

Volume ID: RT11A
Owner :

File Blocks Date Bytes
---------- ------ ----------- ----------
USED .COM 1 24-Jun-1991 512
PIP .SAV 23 24-Jun-1991 11'776
DUP .SAV 41 24-Jun-1991 20'992
DIR .SAV 17 24-Jun-1991 8'704
MMS .SYS 9 24-Jun-1991 4'608
MTS .SYS 9 24-Jun-1991 4'608
LPS .SYS 2 24-Jun-1991 1'024
NLS .SYS 2 24-Jun-1991 1'024
UXS .SYS 2 24-Jun-1991 1'024
FORMAT.SAV 19 24-Jun-1991 9'728
RESORC.SAV 15 24-Jun-1991 7'680
TECO .SAV 50 24-Jun-1991 25'600
MACRO .SAV 51 24-Jun-1991 26'112
CREF .SAV 6 24-Jun-1991 3'072
LINK .SAV 41 24-Jun-1991 20'992
LIBR .SAV 22 24-Jun-1991 11'264
SIPP .SAV 20 24-Jun-1991 10'240
BINCOM.SAV 10 24-Jun-1991 5'120
QUEUE .REL 14 24-Jun-1991 7'168
QUEMAN.SAV 13 24-Jun-1991 6'656
FILEX .SAV 18 24-Jun-1991 9'216
SRCCOM.SAV 13 24-Jun-1991 6'656
DUMP .SAV 8 24-Jun-1991 4'096
PATCH .SAV 10 24-Jun-1991 5'120
PAT .SAV 8 24-Jun-1991 4'096
HELP .SAV 7 24-Jun-1991 3'584
HELP .TXT 157 24-Jun-1991 80'384
BATCH .SAV 26 24-Jun-1991 13'312
ERROUT.SAV 16 24-Jun-1991 8'192
SLP .SAV 9 24-Jun-1991 4'608
CNT .SAV 4 24-Jun-1991 2'048
LOGON .SAV 6 24-Jun-1991 3'072
MANAG .SAV 9 24-Jun-1991 4'608
TSPM .SAV 7 24-Jun-1991 3'584
VRF .SAV 3 24-Jun-1991 1'536
LDA .SAV 5 24-Jun-1991 2'560
SIZE .SAV 4 24-Jun-1991 2'048
DOC .SAV 82 24-Jun-1991 41'984
DET .SAV 2 24-Jun-1991 1'024
DISK .SAV 6 24-Jun-1991 3'072
TEM .SAV 5 24-Jun-1991 2'560
MES .SAV 13 24-Jun-1991 6'656
MEH .SAV 13 24-Jun-1991 6'656
MTPIP .SAV 21 24-Jun-1991 10'752
MTPIP .HLP 5 24-Jun-1991 2'560
README.LST 7 24-Jun-1991 3'584
ODT .OBJ 9 24-Jun-1991 4'608
VDT .OBJ 9 24-Jun-1991 4'608
TODT .OBJ 30 24-Jun-1991 15'360
TSODT .REL 9 24-Jun-1991 4'608
VTHDLR.OBJ 9 24-Jun-1991 4'608
USED .SAV 49 24-Jun-1991 25'088
SYSMAC.MAC 75 24-Jun-1991 38'400
SYSMAC.SML 79 24-Jun-1991 40'448
SYSLIB.OBJ 222 24-Jun-1991 113'664
TTS .SYS 2 24-Jun-1991 1'024
DMS .SYS 5 24-Jun-1991 2'560
RKS .SYS 3 24-Jun-1991 1'536
RUS .OBJ 1 24-Jun-1991 512
SWAP .SYS 30 24-Jun-1991 15'360
RAFSJ .SYS 72 24-Jun-1991 36'864
DXS .SYS 3 24-Jun-1991 1'536
ACCESS.SYS 3 24-Jun-1991 1'536
STAR01.SYS 1 24-Jun-1991 512
MTROL .SAV 16 24-Jun-1991 8'192
MARKPL.SAV 3 24-Jun-1991 1'536
DECOD2.SAV 18 24-Jun-1991 9'216
DECOD2.TXT 24 24-Jun-1991 12'288
MYS .SYS 3 1'536
DDS .SYS 6 3'072
MZS .SYS 4 12-Jan-1990 2'048
HDS .SYS 3 01-Mar-1980 1'536
< UNUSED > 67 34'304
---------- ------ ----------- ----------
72 Files, 1519 Blocks
67 Free blocks
:redface:

Gina
15.08.2012, 19:59
Чо-то я читал-читал, так и не понял, как мне текстовым редактором командовать?
Как вот выйти в командный режим и обратно в текстовый? Надо ПФ1,7 передать. А какие установки в ini сделать, чтобы заработало? Чо-то я ставил там нолики и единички, один хрен, не пашет. :) Зато цвета поменял, спасибо :)

Patron
15.08.2012, 23:18
Надо ПФ1,7 передать.Это на какой клавиатуре?

Клавиатура 15ИЭ-00-013 выглядит так:

http://s2.hostingkartinok.com/uploads/images/2012/08/1addefe3cd57d679db781d903644e3be.jpg

Управляющие клавиши ( по умолчанию ) отображаются так:

http://s2.hostingkartinok.com/uploads/images/2012/08/733ffb623565470e2b0849ed25fae8c6.jpg

Когда [ NumLock ] горит - дополнительные клавиши ( по умолчанию ) отображаются так:

http://s3.hostingkartinok.com/uploads/images/2012/08/51544f07cd76abd854892275703d2c06.jpg

...

Когда [ NumLock ] не горит - дополнительные клавиши ( по умолчанию ) отображаются так:

http://s2.hostingkartinok.com/uploads/images/2012/08/f7f1e795d64c457f982f5cf7ba45237d.jpg

BYTEMAN
15.08.2012, 23:36
Клавиатура 15ИЭ-00-013 выглядит так:
о, какжись у меня есть плата от этого чуда...

Gina
03.09.2012, 22:15
О! Спасибо за картинку, думаю, она не только мне пригодится :)
У меня была другая клавиатура, более продвинутая, наверное. МС-7004 вроде. И комп ДВК-4М.
Но К52 не было. Был К13.
А как в К52 выходить в командный реж из текстового? Я щас поищу, но на всякий пожарный надо спросить :)

Вот, мож кому полезно будет, но пока ответа я там не нашёл
http://www.az-libr.ru/Persons/0GN/fe16506c/Books/000/009.shtml

Patron
04.09.2012, 11:14
У меня была другая клавиатура
Чтобы настроить клавиши [F1]..[F12] на выдачу интересующих последовательностей кодов - нужно отредактировать следующие строчки файла Terminal.ini


ANSI_STR_FOR_KEY[F1] = "Help me !!! "
ANSI_STR_FOR_KEY[F2] = "Dir\015"
ANSI_STR_FOR_KEY[F3] = "F3 "
ANSI_STR_FOR_KEY[F4] = "F4 "
ANSI_STR_FOR_KEY[F5] = "\033g"
ANSI_STR_FOR_KEY[F6] = "\033h"
ANSI_STR_FOR_KEY[F7] = "\033S"
ANSI_STR_FOR_KEY[F8] = "\033c"
ANSI_STR_FOR_KEY[F9] = "\033\024"
ANSI_STR_FOR_KEY[F10] = "\033\010"
ANSI_STR_FOR_KEY[F11] = "\033\023"
ANSI_STR_FOR_KEY[F12] = "F12 "

Gina
22.09.2012, 15:34
А можно ли как-то подключить к эмулятору проц K1801ВМ3? А то у меня прога пишет несколько раз Trap10 и вылетает. А на железе работала :-(
Я писал в секции CPU_Module:1801VM3, но эмулятор на это не купился.
Думаю, это из-за присутствия в коде всяких MUL, DIV, ASH

З.Ы. Давайте торговаться ;) Если вы мне скажете, как подключить ВМ3, я попробую написать вариант, который не использует всякие левые команды. Прога написана на Macro-11 и представляет собой отладчик типа MIRAGE26 на БК, но с доп.примочками.
ну или приделаю в код эмулятор этих команд, чтобы можно было пускать на реальном железе, если оно у кого ещё осталось.
Прога уже есть в архиве у hobot'а, осталось сделать описалово, чтобы можно было по-человечески пользоваться, а для этого надо её погонять туда-сюда :)

Patron
22.09.2012, 20:03
А можно ли как-то подключить к эмулятору проц K1801ВМ3?Пока нет - нужен эмулятор этого процессора, который пока не написан.


А то у меня прога пишет несколько раз Trap10 и вылетает. Думаю, это из-за присутствия в коде всяких MUL, DIV, ASHКоманды MUL, DIV, ASH эмулирует драйвер EM.SYS. Если он не запущен - его нужно включить командой монитора SET EM ON.

Gina
22.09.2012, 23:54
Дык оно ж в начале загрузки пишет список команд и среди них SET EM ON. И всё равно :(. Прога в начале запускается, т.е. файл читается корректно. Как только дело доходит до MUL/DIV - а это вывод восмеричного числа, пишет серию трапов по 10 адресу и в пультовый режим. А там вся прога на восьмеричных числах. Щас ещё поковыряюсь, мож ещё что сообщу.
Что это такое может быть?

Titus
23.09.2012, 00:29
Дык оно ж в начале загрузки пишет список команд и среди них SET EM ON. И всё равно :(. Прога в начале запускается, т.е. файл читается корректно. Как только дело доходит до MUL/DIV - а это вывод восмеричного числа, пишет серию трапов по 10 адресу и в пультовый режим. А там вся прога на восьмеричных числах. Щас ещё поковыряюсь, мож ещё что сообщу.
Что это такое может быть?
Если нужны эти команды, то они в ВМ2 есть. А ВМ2 в эмуляторе EmuStudio.

Gina
23.09.2012, 00:42
А где его взять? Токо если он для УКНЦ, то может и не покатить. Прога написана для ДВК, использует стандартные вызовы RT-11.

Patron
23.09.2012, 00:47
это вывод восмеричного числаПроще и лучше всего (на мой взгляд) использовать вывод числа без MUL/DIV.

Следующий код позволяет выводить числа с любым основанием, указанием числа позиций вывода и символа-заполнителя незанятых позиций.



;
; DIGIT.MAC - Вывод числа с любым основанием, указанием числа позиций вывода
; и символа-заполнителя незанятых позиций.
;
.MCall .Print, .Exit

START:
Mov #60, FILL ; Символ-заполнитель
Mov #Buf,R0 ; Адрес буфера для вывода
Mov #77, R1 ; Число для вывода
Call DIGIT
.Byte 8.,3. ; Основание и количество позиций вывода
.Print #Buf

.Exit

; ================================
;
; R0 = адрес буфера строки
; R1 = число для вывода
;
DIGIT::
MOVB @(SP),OSN ;
INC (SP) ;
MOVB @(SP),NDIG ;
INC (SP) ;
BIC #^C17,NDIG ;
BIC #^C77,OSN ;
MOV #SYMR,ADDS ;
BIT #40,OSN ;
BNE 1$ ;
ADD #SYMD-SYMR,ADDS ;
1$: CALL DIG ;
RETURN ;

DIG: MOV R1, -(SP) ;
MOV #-1, R1 ;
1$: INC R1 ;
SUB OSN, (SP) ;
BCC 1$ ;
ADD (PC)+, (SP) ;
OSN: .WORD 0 ;
DEC NDIG ;
TST R1 ;
BEQ L2$ ;
CALL DIG ;
L2$: TSTB (PC)+ ;
NDIG: .WORD 0 ;
BEQ L3$ ;
BMI L3$ ;
MOVB (PC)+, (R0)+ ;
FILL:: .WORD 40 ;
DECB NDIG ;
BR L2$ ;
L3$: ADD (PC)+,@SP ;
ADDS: .WORD SYMR ;
MOVB @(SP)+, (R0)+ ;
RETURN ;
;

SYMR: .ASCII ! ABCDEFGHIJKLMNOPQRSTUVWXYZ$./! ;
SYMD: .ASCII !0123456789ABCDEF! ;
.EVEN
;
; ================================

Buf: .BlkB 80.

.END START
;


Результат запуска в эмуляторе:


.RU DIGIT
077

Gina
23.09.2012, 00:58
"Проще и лучше всего (на мой взгляд) использовать вывод числа без MUL/DIV."
Вот не согласен с Вами, уж извините, конечно. Не проще и не лучше! :)
Готов согласиться, что это ваш эмулятор, что ВМ1 не поддерживает MUL/DIV и не обязан, что я припёрся тут со своей прогой и чего-то хочу, и опять же никто мне не обязан, может я чо-то криво настроил, но...
"проще и лучше без" привело нас к тому, что они там щас делают 64 и 128битные Пентиумы, а мы и свои ДВК загнобили. Они там создают крутые авто, а мы и свои проэто самое. и т.д. и т.п. MUL/DIV для чего-то же ведь буржуи придумали? Вряд ли бы они стали их делать просто так и ИМХО это лучше, чем в цикле крутить.

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

Titus
23.09.2012, 01:04
А где его взять? Токо если он для УКНЦ, то может и не покатить. Прога написана для ДВК, использует стандартные вызовы RT-11.
Его взять ТУТ (http://zx.pk.ru/showthread.php?t=18027). На нем идет большинство программ для ДВК КЦГД. Только надо перейти в режим КЦГД после загрузки - F6.

Gina
23.09.2012, 01:22
Titus, ты будешь ржать, но оно-таки работает! И без всякого F6 (не уверен, что у меня был КЦГД, хотя, фиг знает) В работе прога использует стандартные вызовы .print & .ttyout :) Смотрится забавно, но команды отрабатывает :)

Значит, на эмуляторе от Patron'а у меня чо-то с EM.SYS :-/

З.Ы. Файл называется MARIAH.SAV его hobot расшарит в составе архива, как только я напишу описание, а может и до этого :)

Titus
23.09.2012, 01:36
Titus, ты будешь ржать, но оно-таки работает! И без всякого F6 (не уверен, что у меня был КЦГД, хотя, фиг знает) В работе прога использует стандартные вызовы .print & .ttyout :) Смотрится забавно, но команды отрабатывает :)
Ржать может и не буду, но, походу твоя прога работает на обычной УКНЦ)

Patron
23.09.2012, 01:38
у меня чо-то с EM.SYSЕсли на родном ВМ2 программа работает, а на ВМ1 с EM.SYS не работает - это плохо. Мы тут весной EM.SYS "чинили и улучшали" - может он после этого вообще работать перестал..

Попробуйте выделить из своей программы в отдельный файл фрагмент кода с выводом числа, который работает на ВМ2, но не работает на ВМ1 с EM.SYS и выложите здесь.

Gina
23.09.2012, 02:05
"Мы тут весной EM.SYS "чинили и улучшали" да, я читал эту ветку только что :)
фрагмент кода там команда DIV BASE, R2 или MUL #BASE, R3. Более подробно выложу завтра. Два часа уже, ОГО, спать пора! :)

2 Titus: но на УКНЦ же клавиатура другая, нет клавиш ПФ1-ПФ4. Или есть?

Titus
23.09.2012, 02:33
но на УКНЦ же клавиатура другая, нет клавиш ПФ1-ПФ4. Или есть?
Я не знаю, что такое ПФ1-4) Если это F1-F4, то есть)

Gina
23.09.2012, 11:07
2 Titus ПФ1-ПФ4 ну это такие клавиши, которые на доп.цифровой клаве в верхнем ряду вместо NumLock и др. Вот фотка http://img-fotki.yandex.ru/get/6604/6858560.2/0_8b18e_9c43beb4_orig Они там справа верхние белые.
А в УКНЦ коды F1-F4 какие?

2 Patron. A вы исходниками эмулятора не делитесь? А то бы я приделал на соплях туда эти команды и честно бы написал "эта заплата приделана криворуким прогером Gina и Patron к ней никакого отношения не имеет" ;)
Ещё мысля, а можно ли в эмуляторе сделать менюшку для быстрого подключения дискет? Ну, чтобы инишник не править/перечитывать?
З.Ы. обещанный код (считывание числа и его печать в 3х вариантах)

.TITLE ANYNUM
.IDENT /V01/
.LIBRARY/DK:MRHLIB.MLB/
.MCALL PUSH,POP
.WEAK EXP,MAXLW
.PSECT SUBNUM RW,I,LCL,REL,CON
NUMIN:: CLR R3
PUSH R0
MOVB (R1)+,R0
CMPB R0,#'0
BLO 1$
SUB #60,R0
CMPB R0,#9.
BLOS 2$
SUB #7,R0
CMPB R0,#'Z-67
BLOS 2$
SUB #40,R0
2$: CMPB R0,RADIX
BLO 3$
1$: DEC R1
POP R0
RETURN
3$: MUL (PC)+,R3
RADIX:: .WORD EXP
ADD R0,R3
BR NUMIN+4
NUMW:: INC NMB
BR NUMZ
NUMB:: COM NMB
BIC #177400,R3
NUMZ:: PUSH R0
PUSH R2
MOV (PC)+,R0
FORM:: .WORD MAXLW
MOV R3,R2
2$: CLR R2
DIV RADIX,R2
PUSH R3
MOV R2,R3
SOB R0,2$
MOV FORM,R0
MOV R0,R3
TST (PC)+
NMB: .WORD 0
BEQ 1$
BPL 2$
BIC #1,R3
ADD R3,SP
ASR R0
ADC R0
2$: POP R3
ADD #60,R3
CMP R3,#'9
BLOS 4$
ADD #'@-'9,R3
4$: MOVB R3,(R1)+
SOB R0,2$
BR 3$
1$: TST @SP
BNE 2$
TST (SP)+
SOB R0,1$
MOVB #60,(R1)+
3$: CLR NMB
POP R2
POP R0
RETURN
.END

Titus
23.09.2012, 12:44
А в УКНЦ коды F1-F4 какие?
Вы имеете ввиду коды контроллера клавиатуры УКНЦ или же системные коды? Если системные, так это вопросы не ко мне, а к RT-11. Кроме того, в режиме ДВК (КЦГД) конроллер клавиатуры не УКНЦ, а МС-7004.

Patron
23.09.2012, 13:11
я бы приделал на соплях туда эти командыЧтобы программа нормально работала на Э-60, ДВК-1, БК-0011 и других компьютерах с процессором 1801ВМ1 - нужно, чтобы она "дружила" с драйвером EM.SYS.
По идее - никаких проблем с командами типа MUL (PC)+,R3 или DIV RADIX,R2 у EM.SYS быть не должно.


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


обещанный код (считывание числа и его печать в 3х вариантах)Но мне-то этот код нужно скомпилировать, запустить и увидеть результат. При том, что никаких DK:MRHLIB.MLB у меня нет. Оформите этот код в виде небольшой самостоятельной программки, чтобы я мог её скомпилировать и запустить у себя.

hobot
23.09.2012, 17:16
Patron, я сейчас в теме про архив расшарю дискеты от Gina там исходник Марии
будет )
Gina, надеюсь ты не против? А описание к ней просто позже по готовности прилепим? И ещё вот ради эксперимента версия EM.SYS не прошедшая "переподготовку" этой весной (*) )))

Gina
23.09.2012, 23:24
а ты уже наверное расшарил? Ну да ладно :) Вот там есть mrhlib.mlb :)
Спасибо за версию, щас затестим, а то я уже прогу наполовину переписал :)
А можете сразу MARIAH.SAV запустить, у неё команды похожие на MIRAGE26 в БК. Набираешь А1000 ввод и всё вылетает :)

hobot
23.09.2012, 23:54
а ты уже наверное расшарил?
Да расшарил ) Но, как я вижу, грядёт обновлённая МАРИЯ (компиляция-сборка-версия как угодно 2012) + Описание + автор на форуме ) Это же замечательно.

Gina
24.09.2012, 00:56
Да, давайте в 2012 году все начнём под ДВК писать! 8-)
Вот это будет удар по буржуям! Такого они точно не ждут! :)

Patron
24.09.2012, 15:49
Набираешь А1000 ввод и всё вылетает :)

Всё понятно с первого взгляда на результаты запуска:

.RU MARIAH
Mariah>A1000
ASSEMBLING ADDRESS=?Mariah-F-Trap to 10 in ?Mariah-F-Trap to 10 in

MARIAH.SAV перехватывает прерывание Trap to 10 и не даёт драйверу EM.SYS эмулировать команды MUL / DIV.

hobot
24.09.2012, 20:50
грядёт обновлённая МАРИЯ
http://i.smiles2k.net/music_smiles/discoball.gif (http://smiles2k.net/music_smiles/index.html)

Gina
24.09.2012, 23:01
Ыыы :) Ну, как мне сказала подруга, раз я поставил такое прерывание, значит, в этом был смысл. И правда, если отлаживаемая прога пытается выполнить данные, он должен не в пульт вылететь, а написать, что, мол, фигня произошла по такому-то адресу :)
В общем, я уже почти все такие команды позаменил, осталось чуть-чуть. ИМХО, так надёжнее. Включил клиент эмулятор или забыл, отладчик должен работать и работать! ;)

Gina
27.09.2012, 10:16
А вот, я ещё заметил, что ваш эмулятор (а также эмулятор Titus'a EmuStudio) почему-то в Esc последовательностях воспринимает только заглавные буквы. Пишешь Esc s, печатает Esc S. А на реальном железе (Квант 4С) различал большие и маленькие.

Patron
27.09.2012, 13:30
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_27.09.12_17-15

Изменения:

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

2. Добавлена поддержка адаптера COM-порта для потока байтов ( объект Terminal_ComPort_Adapter ), что должно позволить подключать к эмулятору реальные терминалы и иное оборудование с последовательным интефейсом.

3. Добавлен файл конфигурации =COM1=.cfg, для подключения к эмулируемой ДВК-1 реального терминала с последовательным интерфейсом через порт COM1.

4. Добавлены файлы прошивок 031.dat и 054.dat, которые можно указывать в файлах конфигурации вместо 000.dat.

5. Эмуляция ОЗУ перенесена из эмулятора процессора в эмулятор материнской платы с соответствующим изменением разделов [CPU.ini] и [CpuBoard.ini] во всех файлах конфигурации.

...
P.S. Сразу после релиза была выявлена небольшая неточность в оформлении заголовка главного окна программы при переименовании исполнимого файла, поэтому сборка обновилась ещё раз.

hobot
28.09.2012, 08:31
Patron, несколько нескромных вопросов в связи с обновлением -->
1. а куда делся такой параметр скорости работы как True ?
2. Очень интересно что за драйвер на системном разделе появился?
http://savepic.net/3447619.gif

Прилеплю вот такие часики к этому сообщению )
http://savepic.net/3445571.gif

Patron
28.09.2012, 12:08
1. а куда делся такой параметр скорости работы как True ?Параметр True остался там, где и был.


2. Очень интересно что за драйвер на системном разделе появился?Внимательно прочитав описание релиза от 4-го Марта ( DVK_Emulator_04.03.12_18-07 (http://zx.pk.ru/showthread.php?postid=475407) ) можно заметить такой пункт:

2. Добавлен драйвер HX.SYS версии 1.0 поддержки блочных устройств, подключаемых через последовательный порт по протоколу HX 1.0Драйвер HX добавлен уже давно и нужен для использования PC в качестве дискового накопителя с последовательным интерфейсом (или c IP-интерфейсом) при подключении к реальным компьютерам ( включая возможность одновременной эмуляции диска и терминала через один COM-порт / IP-порт ). Т.к. адаптер COM-порта появился только сейчас - работа драйвера HX ранее не описывалась. Теперь же я планирую посвятить этому драйверу специальную тему Загрузка RT-11 через порт системного терминала (http://zx.pk.ru/showthread.php?p=543602#post543602) в разделе ДВК, УКНЦ (http://zx.pk.ru/forumdisplay.php?f=66).

Patron
20.10.2012, 19:32
Обновилась текущая сборка "эмулятора ДВК": DVK Emulator_20.10.12_18-53

Изменения:

1. Добавлен виджет SB_StorageMediaButton, позволяющий "на лету" менять образы дисков в приводах эмуляторов накопителей ( на данный момент это HD и HX ). Пример использования добавлен в файл конфигурации default.cfg.

2. Исправлена работа прямого ограничения скорости вывода на экран ( CPS Лимит ), слегка нарушенная в предыдущем релизе.

3. Уменьшена скорость передачи байтов объектом ODT_Loader для более уверенной передачи загрузчика HX на медленные машины.

...

Patron
21.10.2012, 16:16
Изменение эмулируемой конфигурации.

Смена образов носителей в приводах.
------------------------------------------------------

Возможность смены образов носителей в приводах эмулируемых устройств (без перезапуска эмулятора) обеспечивает объект типа SB_StorageMediaButton.

Относящиеся к этому объекту строки в файле конфигурации default.cfg выглядят так:


[modules]
Ядро = Main_module.em

[objects]
MediaButton = Ядро:SB_StorageMediaButton

[links]
Config + MediaButton + HD

[MediaButton.ini]
SB_Part_Data = nPosition[6] | nPriority[0] | bHidden[0]
DefaultFileExt = DSK
FileButtonWidth_Px = 104
FileButtonWidth_AutoAdjust = 1
SelectedDrive = HD0


В секции [links] задаётся на какой полосе какого окна разместить MediaButton ( по умолчанию - на полосе статуса окна конфига ) и какие эмуляторы накопителей к нему подключить ( по умолчанию - HD ) для управления сменой образов носителей в приводах.

Если к MediaButton подключен только один накопитель - виджет содержит две кнопки - кнопку выбора привода и кнопку выбора файла образа. При подключении к MediaButton последующих накопителей - у виджета появляется ещё одна кнопка для выбора устройства.

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

http://s1.hostingkartinok.com/uploads/images/2012/10/e0f73eeb36b013ed06c0ce22c20d6285.png

После выбора привода - его название ( например, HD1 ) отображается на левой кнопке, а имя файла подключенного образа - на правой кнопке. При выборе привода, к которому ещё не подключен образ носителя - кнопка выбора образа будет пустой:

http://s4.hostingkartinok.com/uploads/images/2012/10/f236dd04b714a7e097f6df252db905f8.png

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

http://s1.hostingkartinok.com/uploads/images/2012/10/f654e669121750a0b4d324af42a93e61.png

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

При ручном вводе имени несуществующего файла - появится диалог создания файла:

http://s4.hostingkartinok.com/uploads/images/2012/10/049a617c787de29b822a10ffbbcd73bd.png

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

http://s4.hostingkartinok.com/uploads/images/2012/10/de5c93e7837386632a08a5cb5bc97ce2.png

Новый образ имеет размер 800 КБайт ( в случае подключения к HD или HX ) и целиком заполнен нулями, поэтому, перед записью на него файлов - образ нужно проинициализировать.

Максимальный размер кнопки выбора образов задаётся параметром FileButtonWidth_Px в разделе объекта в файле конфигурации. Если установлен параметр FileButtonWidth_AutoAdjust - размер кнопки каждый раз автоматически уменьшается до размера имени выбранного файла образа.

Если размер имени подключенного файла образа превышает значение параметра FileButtonWidth_Px - на кнопке выбора образов будут отображены только первые поместившиеся символы имени этого файла.

hobot
23.10.2012, 22:14
Patron, спасибо за обновление и подробное описание, единственное - не успел я пожелать кнопку для скриншотов, но видимо это решаемо? Для грядущих обновлений?

Patron
24.10.2012, 03:12
кнопку для скриншотовПоскольку экран терминала текстовый - он делает текстовый скриншот при нажатии на <Print Screen>. При этом в буфер обмена копируются все строки от текущей верхней строки до самой последней строки, выведенной на экран, даже если она не видна.

Если промотать экран до самого верха и нажать <Print Screen> - в буфер обмена будут скопированы все строки, находящиеся в буфере скроллинга.

У меня на кнопку <Print Screen> обычно назначена сторонняя утилита для графического скриншота, поэтому для выполнения "родного" текстового скриншота экрана терминала - утилиту приходится закрывать.

hobot
24.10.2012, 14:51
Если промотать экран до самого верха и нажать <Print Screen> - в буфер обмена будут скопированы все строки,
У меня не работает ( То есть я все скрины из вашего эмулятора делаю этой самой кнопкой, но при этом мне всегда приходится делать само окно эмулятора не активным, иначе сколько я не тыркаю "КОПИЮ ЭКРАНА" буфер то пустой, ни в одной
программе PASTE не активен, увы.
-------------------------------------------
Вот сейчас специально ещё раз проверил, неа! У меня ничего в буфер не сохраняет
после нажатия <Print Screen>.
-------------------------------------------
Хотя я ещё не обновил последнюю версию, может в ней сработает, проверить надо !

---------- Post added at 14:51 ---------- Previous post was at 14:06 ----------


Поскольку экран терминала текстовый - он делает текстовый скриншот при нажатии на <Print Screen>.

Извиняюсь за дезинфо! Просто я "тугой" видимо, тут же ключевое слово "ТЕКСТОВЫЙ",
а я всю дорогу пытался в граф.программу PASTE сделать ))) Конечно она не видит
текстовую информацию ! Единственный минус, текстовый скрин не передаёт атмосферы цветовых настроек эмулятора. Но текст это тоже очень хорошо !




(C) ABH corp.

**** ***** ****** **** ***** ** ** ** ** ** * **
** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** ** ** ***
*** ***** ***** *** ** ** ****** **** ** ** * **
** ** ** ** ** ** ** ** ** ** *** *** **
** ** ** ** ** ** ** ** ** ** ** ** ** *** ** **
**** ***** ****** **** ******** ** ** **** ** ** **


******* ***** ******** ******* ** ** ***** **
** ** ** ** * ** * ** ** ** ** ** ** ******
** ** ** ** ** ** ** ****** ** ** ** **
** ** ******* ** ******* ** ** ** ** **
** ** ** ** ** ** ***** ** ** ******


Автор: Салихов Л.В. Шк.604

НАЖМИТЕ ЛЮБУЮ КЛАВИШУ


Поймал я заставку - ура!

Patron
24.10.2012, 15:47
текстовый скрин не передаёт атмосферы цветовых настроек эмулятораЗато, промотав экран вверх - можно одним махом скопировать в буфер обмена не только текущий экран, но и несколько предыдущих. Это позволяет быстро получить текстовую копию длинного вывода команды DIR ( или DUMP ).

Т.к. терминал выводит в обычное окно Windows - графический скриншот можно быстро и легко получить при помощи любой утилиты графических скриншотов в режиме "копировать выбранное окно целиком".

---------- Post added at 14:47 ---------- Previous post was at 14:35 ----------

P.S. В принципе - в буфер обмена можно одновременно помещать объекты разных типов, поэтому в дополнение к текстовому скриншоту, копирующему текст от текущей верхней строки до конца буфера скроллинга, можно ( по идее ) добавить и графический скриншот, помещающий в буфер обмена графическую копию текущего экрана. Тогда при вставке в текстовой программе - будет вставляться текстовый вариант, а при вставке в графической - графический.

hobot
24.10.2012, 16:11
можно ( по идее ) добавить и графический скриншот,
ИМХО:
Наверное такую доработку имеет смысл проделать - или с прицелом на будущее или
когда будет (и если будет) реализован эмулятор любого из графических контроллеров для ДВК.

Patron
24.10.2012, 18:29
Наверное такую доработку имеет смысл проделать
Как выяснилось - добавить в буфер обмена графическую копию окна Windows элементарно просто:



RECT rc;
GetClientRect( hWndTerm, &rc );
HDC hDC = CreateCompatibleDC( hDCterm );
HBITMAP hBitmap = CreateCompatibleBitmap( hDCterm, rc.right, rc.bottom );
SelectObject ( hDC, hBitmap );
BitBlt( hDC, 0,0, rc.right, rc.bottom, hDCterm, 0,0, SRCCOPY );

SetClipboardData( CF_BITMAP, hBitmap );

DeleteDC( hDC );
DeleteObject( hBitmap );


В результате одно нажатие <Print Screen> отправляет в буфер обмена и текстовый, и графический скриншот:

http://s4.hostingkartinok.com/uploads/images/2012/10/290d3e14ffdbe13dbc9d1ba9812f8bc9.png...
Добавлю такую возможность в следующем релизе.

Patron
05.11.2012, 14:49
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_05.11.12_16-19

Изменения:

1. Тайминги эмулируемых команд процессора 1801ВМ1 приведены в лучшее соответствие с результатами тестов ( 1 (http://zx.pk.ru/showthread.php?p=548052#post548052) и 2 (http://zx.pk.ru/showthread.php?p=548650#post548650) ).

2. Теперь при нажатии <PrintScreen> в окне терминала - в буфер обмена помещается не только текстовый, но и графический скриншот.

...

Patron
21.11.2012, 15:15
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_20.11.12_17-44

Изменения:

Внесены изменения объекта Terminal (а также другие), описанные ЗДЕСЬ (http://zx.pk.ru/showthread.php?p=552725#552725) и ЗДЕСЬ (http://zx.pk.ru/showthread.php?p=553721#post553721).

...

form
23.11.2012, 20:17
Обновилась текущая сборка "эмулятора ДВК"

Перейдем к мучению эмулятора...
Сразу вопрос: возможность второй адаптер терминала сделать уже есть?
Задача - консоль в окно, второй адаптер - в порт и наоборот.

Patron
23.11.2012, 22:05
консоль в окно, второй адаптер - в порт и наоборот.Если после запуска эмулятора переключиться на закладку системной консоли - можно увидеть табличку с описанием эмулируемой конфигурации и заметить, что второй порт терминала в конфигурации по-умолчанию ( файл default.cfg ) уже создаётся и имеет имя TerminalPort2.

Чтобы подключить его к COM-порту, нужно создать адаптер COM-порта ( объект Terminal_ComPort_Adapter ) и описать связь в секции [links] файла конфигурации, кроме того нужно указать имя интересующего COM-порта PC в секции настроек адаптера COM-порта:



[objects]
ComPort_Adapter = Ядро:Terminal_ComPort_Adapter


[links]
TerminalPort2 <=> ComPort_Adapter


[ComPort_Adapter.ini]
PortName="COM1"
InitialStateOf[ShowPortUse]=1
SaveChangesFor[ShowPortUse]=1


Полезно иметь в виду, что имена объектов выбираются произвольно, поэтому вместо ComPort_Adapter, в приведённом выше примере - можно указать любое имя, например ComPort.

form
24.11.2012, 00:02
уже создаётся

Попробовал перегнать файлы через VTCOM/TRANSF.
При родной скорости есть потери (возможно на полноценных COM портах проблемы нет).
Если скорость проца выставить 2 mips - потерь нет.

Попробовал в/из RSX перегнать - вполне пашет :)

Patron
24.11.2012, 00:32
возможно на полноценных COM портах проблемы нетСамое время заглянуть в файл Terminal_ComPort_Adapter.ini

Если кабель и порт поддерживают управление потоком RTS/CTS, то его можно включить, изменив параметр:



fRtsControl = RTS_CONTROL_DISABLE

на



fRtsControl = RTS_CONTROL_ENABLE

Остальные параметры порта, которые можно изменить - описаны здесь: DCB structure (http://msdn.microsoft.com/ru-ru/library/windows/desktop/aa363214(v=vs.85).aspx).

form
24.11.2012, 00:34
если кабель и порт поддерживают управление потоком RTS

Кабель ничем не поможет - DL(V)11 не умеют никакого flow control и не имеют соответствующих линий. Кроме DL(V)11-E и -F которые предназначены для модемов и DECnet.

Patron
24.11.2012, 00:38
DL(V)11 не умеют никакого flow controlДа, точно - поэтому эти параметры и отключены по умолчанию.

---------- Post added at 23:38 ---------- Previous post was at 23:37 ----------

А что насчёт XON/XOFF - COM-порт и их умеет использовать..

form
24.11.2012, 00:45
Да, точно - поэтому эти параметры и отключены по умолчанию.

А они у тебя эмулируются в виде соответствующих битов в регистрах?


А что насчёт XON/XOFF - COM-порт и их умеет использовать..

VTCOM и TRANSF сами общаются по протоколу XON/XOFF, но USB походу трудно убедить чтобы он херачил за раз меньше чем пол-экраном символов :)

form
24.11.2012, 01:18
Кхм...
Остаток блока не дочищается?


.TITLE TEST
.MCALL .ENTER,.WRITW,.CLOSE,.EXIT

START: .ENTER #AREA,#0,#DBLK,#-1
.WRITW #AREA,#0,#BUFF,#1,#0
.CLOSE #0
.EXIT

AREA: .BLKW 8.
DBLK: .RAD50 /DK TSTFILFIL/

BUFF: .ASCII /AB/
.REPT 255.
.WORD 123456
.ENDR

.END START

Patron
24.11.2012, 13:40
эмулируются в виде соответствующих битов в регистрах?Такого пока нет. Просто подумалось, что раз большинство портов ДВК и PDP не используют управляющие сигналы - лучше отключить их по-умолчанию и для порта PC.


Остаток блока не дочищается?А должен ?

---------- Post added at 12:40 ---------- Previous post was at 12:34 ----------

Как ведут себя реальные контроллеры с внутренним буфером блока при записи меньше чем 512 байт - дополняют блок нулями ?

form
24.11.2012, 19:01
Как ведут себя реальные контроллеры с внутренним буфером блока при записи меньше чем 512 байт - дополняют блок нулями ?

Да.
Все блочные устройства аппаратно (или софтово - электронные диски например) падят блок нулями. Если этого не делать будут проблемы в RT-11 с программами которые пишут не целыми блоками в конце файла (текстовые редакторы например).

Patron
24.11.2012, 19:53
Если этого не делать будут проблемы в RT-11 с программами которые пишут не целыми блоками в конце файла (текстовые редакторы например).Любопытно, но за всё время существования эмулятора никто такого не заметил.

Мне не приходилось встречать текстовый редактор, который бы при создании текстового файла из одного символа записывал бы в выходной файл не 512 байт, а один.

form
24.11.2012, 19:54
Любопытно, но за всё время существования эмулятора никто такого не заметил.

Мне не приходилось встречать текстовый редактор, который бы при создании текстового файла из одного символа записывал бы в выходной файл не 512 байт, а один.

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

Patron
24.11.2012, 20:33
K52/KED как минимум, но думаю это любой редактор.Edik сам остаток блока обнуляет, потому этот баг так долго никто и не замечал.

form
24.11.2012, 20:34
Edik сам остаток блока обнуляет, потому этот баг так долго никто и не замечал.

Скорее потому что никто вообще редакторы не запускал, а просто игрушки мучил :)

Patron
24.11.2012, 20:38
Скорее потому что никто вообще редакторы не запускалEdik я часто запускаю - с ним эта проблема не проявляется.

Patron
25.11.2012, 15:08
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_25.11.12_13-30

Изменения:

1. Теперь устройства HD и HX при записи неполных блоков дополняют их нулями до 512 байт.

2. В файл Terminal.ini добавлена константа SolidRectangle_Padding_%, задающая (в процентах от размера знакоместа) отступ закраски от краёв знакоместа при выводе символа "Закрашенный прямоугольник". Допустимые значения 0..20, значение по умолчанию 5:



SolidRectangle_Padding_% = 5

Для шрифта по-умолчанию зависимость отступа закраски знакоместа от значения константы SolidRectangle_Padding_%, следующая:



| Значение | Отступ сверху и снизу | Отступ слева и справа |
| ( % ) | ( пикселов ) | ( пикселов ) |
-----------------------------------------------------------------
| 0 | 0 | 0 |
| 5 | 1 | 1 |
| 10 | 2 | 1 |
| 15 | 3 | 2 |
| 20 | 4 | 2 |


...

form
25.11.2012, 18:05
Пора браться за эсуляцию ВМ3 :)

Patron
25.11.2012, 18:17
Думается, что я раньше SIMH переделаю под модульный API. Вплоть до того, что файл pdp11.exe из комплекта "эмулятора ДВК" можно будет использовать с bat-файлами SIMH ( в роли файла pdp11.exe из комплекта SIMH ) для загрузки его конфигов. Потом надо будет эмулировать ВМ2 и КЦГД, а уже потом ВМ3.

hobot
25.11.2012, 23:19
Потом надо будет эмулировать ВМ2 и КЦГД, а уже потом ВМ3.
А КГД? Он ведь то же очень нужен ! Если бы было так КЦГД=КГД , но это ведь не так.

Эмуляция ВМ2 - есть шанс появления очень точного варианта УК-НЦ?

---------- Post added at 23:19 ---------- Previous post was at 23:17 ----------

form, уверен ты сам можешь эмулятор наваять во вполне разумные сроки,
вот например точный эмулятор 11\83 в той комплектакции и ОС которая у тебя пашет.
SIMH у меня не работает... там троян! )

form
25.11.2012, 23:23
верен ты сам можешь эмулятор наваять во вполне разумные сроки,
вот например точный эмулятор 11\83 в той комплектакции и ОС которая у тебя пашет.
SIMH у меня не работает... там троян! )

E11 и SimH достаточно хорошо эмулируют.
Есть некоторые отличия, но они не существенны.
В SimH на родном сайте никакого трояна нету.
SimH на родном сайте есть в исходниках и очень легко собирается с помощью MinGW.
SimH в виндовсе - скорее издевательство чем решение в виду отсутствия эмуляции какого либо терминала командной строкой.

В E11 V6.0 есть нечто, не нравящееся антивирусам. Во всех других версиях никто не ругается.
Вирусной активности 6.0 также не обнаружено.

hobot
25.11.2012, 23:36
скорее издевательство
Я пытался ставить... по ссылке с родного сайта, которую ты давал или на страничке pdp-11.org в общем не помню, помню, что с родного сайта и брал и там был троян! )

Не судьба мне на родном PDP посидеть или просто я не созрел ещё морально,
мне видимо УК-НЦ и ДВК и БК0010 эмулятор хватит пока и живой УК-НЦшки )

form
25.11.2012, 23:37
там был троян! )

Ты путаешь с E11 V6.0.
В SimH троянов нету.
И ставить его не нужно в принципе (да и нечем) :)

hobot
25.11.2012, 23:38
Ты путаешь с E11
Кстати говоря, да действительно путаю )

form
25.11.2012, 23:40
E11 никто не мешает взять прошлую версию. В 6.0 единственные полезные вещи - это повышенная стабильность работы сети и telnet client. И то и другое не так часто и нужно. Да и вообще E11 лучше запускать в каком-нибудь vmware - тогда можно будет обойти ограничение на размер дисков :)

Ладно, мы отвлеклись от темы, тема все-таки про эмулятор ДВК который теперь далеко вверху затерялся... Общие вопросы -в общую тему...

Patron
26.11.2012, 00:28
А КГД? Он ведь то же очень нужен !Я сейчас как раз этим (в том числе) занят. Главная проблема - эмулятор монитора, того самого, который уже готовые массивы точек кадров (в формате BMP 32bit, но с другим заголовком) просто в окно выводит. Чтобы можно было, например, переключать режимы Цвет/ЧБ - нужен один миксер, чтобы регулировать фокусировку - другой миксер, даже чтобы просто яркость регулировать для монохромного режима с НЕчёрным цветом и НЕчёрным фоном без цветового смещения - нужны не всегда простые преобразования цвета. Поэтому, чтобы даже просто сделать универсальный эмулятор монитора - нужно несколько сотен часов рабочего времени. Но ведь КГД невозможно нормально эксплуатировать без КСМ, а чтобы сделать даже самый приблизительный эмулятор КСМ - тоже нужно время. И вот когда уже эмулятор КСМ будет нормально давать картинку на эмуляторе монитора - тогда за несколько часов можно сделать и эмулятор КГД.

hobot
26.11.2012, 01:03
в формате BMP 32bit,
почему именно такой "неоптимальный" формат? ради совместимости с чем-то?
почему не PNG? он же менее объёмный - значит теоретически должен работать быстрее или это вообще не имеет значения?


И вот когда уже эмулятор КСМ будет нормально давать картинку на эмуляторе монитора - тогда за несколько часов можно сделать и эмулятор КГД.
для проверки правильной эмуляции этих девайсов рекомендую )
http://zx.pk.ru/showpost.php?p=482331&postcount=491

---------- Post added at 01:03 ---------- Previous post was at 00:57 ----------

и по возможности wav с гулом охлаждающей системы и звук кнопок же был ! пик-пик
ууууууууууууууу пик ууууууууууууу пик пик уууууууууууууууууу - мощь ! )))

Patron
26.11.2012, 01:09
почему именно такой "неоптимальный" форматДля быстрых матричных преобразований и быстрой загрузки кадра в буфер видеоадаптера он самый оптимальный. Жаль только, что Windows в матричных операциях требует цвет BGR.

---------- Post added at 00:09 ---------- Previous post was at 00:05 ----------


и по возможности wav с гулом охлаждающей системы и звук кнопок же был ! пик-пик
ууууууууууууууу пик ууууууууууууу пик пик уууууууууууууууууу - мощь !Это будет не wav, а звуковая подсистема модульного API. Точно так же, как сейчас каждый объект может "источать" потоки байтов ( которые можно направить на терминал или в порт ) и текста ( на консоль ), а через какое-то время - и потоки кадров BGR - так же ( через гораздо большее время ) каждый объект сможет "источать" собственный звуковой поток.

Patron
01.12.2012, 18:22
Обнаружилась пара тестов DL11-W в виде BIN-образов перфолент (см. приложение).

...

form
01.12.2012, 18:22
Обнаружилась пара тестов DL11-W в виде BIN-образов перфолент (см. приложение).

В XXDP есть разные тесты.
DL11-W к слову бывает только на UNIBUS :)

form
01.12.2012, 18:35
DL11-W... У меня их два :)

hobot
11.12.2012, 01:21
DERBY.SAV
Работает корректно, только я с клавишами управления не разбирался,
в связи с чем увидел вот такое вот почти сразу ))))))))

http://images.netbynet.ru/direct/8dfa10ccdc4c7b766ab1076271924dbf.jpg

Ну и игровой экран конечно )))

http://images.netbynet.ru/direct/c68ce497ce652ffeb7ea143ed87d4edf.jpg

Источник (http://zx.pk.ru/showpost.php?p=558375&postcount=117) - последние диски от тов. anasana

Patron
22.12.2012, 19:28
DERBY.SAV Работает корректно, только я с клавишами управления не разбиралсяИгра управляется единственной клавишей [0], при нажатии на которую лошадь прыгает.

hobot
23.12.2012, 08:39
при нажатии на которую лошадь прыгает.
Точно! Для однокнопочного игрового автомата проект ) Где тут касса с житонами? )
вываливается в конце в @

Patron
24.12.2012, 16:23
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_27.12.12_18-37.

Изменения:

1. Внесены изменения терминала и консоли, описанные ЗДЕСЬ (http://zx.pk.ru/showthread.php?postid=561413).

2. В модуль DSK_module.em добавлен объект MX, эмулирующий контроллер КНГМД ДВК с 4 подключенными приводами.
Число дорожек привода зависит от размеров подключенного DSK-образа диска. Для образов размером 225280 байт эмулируются 40 дорожек, для образов размером 450560 байт - 80 дорожек. Подключение DSK-образов любых других размеров невозможно. Для TRK-образов эмулируются только 80-дорожечные приводы.

Другие эмулируемые характеристики приводов:

- период оборота диска: ............... 200 мс;
- время шага головки: .................. 11 мс:
- время прижима головки: ............... 30 мс;
- время старта двигателя: ............. 500 мс;
- продолжительность сигнала ИНДЕКС: ..... 1 мс;

Формирование приводом сигнала запрета записи определяется атрибутом "Только чтение" подключенного образа диска.

3. В модуль Main_module.em добавлен новый тип виджета: SB_DriveButton, индицируюший работу присоединённого к виджету привода (при наличии у привода интерфейса StorageDriveInterface), а также позволяющий менять подключенные к приводу образы.

4. В комплект поставки добавлены образы MX80_System.DSK, MX40_System.DSK и MX40_User.DSK.

5. В образы HDSYS.DSK, MX80_System.DSK и MX40_System.DSK добавлен драйвер MX.SYS ( MX-HANDLER V02.2 October,1987 Потемкин М.И. ; Boot v1.0 ), пропатченный для улучшения совместимости с RT-11 и современными компактными дисководами.

6. В файл default.cfg добавлена эмуляция контроллера MX. Объект MX подключен к виджету MediaButton, позволяющему менять образы в приводах устройств HD и MX. Для переключения между устройствами HD и MX нужно использовать кнопку [>] виджета.

7. В комплект поставки добавлены файлы конфигурации ДВК-1_MX40.cfg и ДВК-1_MX80.cfg. После запуска ДВК-1_MX80.cfg загрузка с MX0 начинается автоматически ( из-за установки SEL1_Data = 0160020 ). После запуска ДВК-1_MX40.cfg - для начала загрузки операционной системы нужно ввести с клавиатуры "X0". Регистр важен - по "x0" загрузка не начнётся.

8. Ранее поставлявшаяся версия игры MARS.SAV была дефектной - теперь на дисках HDSYS.DSK и MX40_User.DSK находятся "правильные" версии MARS.SAV и MARS.DAT.

9. В комплект всех системных дисков включены Y2K 8 Bit версии мониторов без поддержки таймера и таймаутов, а также программа DAY.SAV, запускающаяся при загрузке.

form
24.12.2012, 16:30
А как бы еще здесь и для VT52 сделать чтобы можно было в одном конфиге все изменения держать и этот файлик не был бы частью дистрибутива и был бы опциональным?

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

Patron
24.12.2012, 17:00
Чтобы не исправлять каждый раз кучу конфигов после очередного обновленияИсправлять вручную кучу конфигов не обязательно - при первом же запуске со старым конфигом эмулятор это делает сам.

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

Ситуация такова:

1. Если для используемого параметра в старом конфиге уже задано допустимое значение - оно сохраняется неизменным.

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

3. Если в старом конфиге или ini-файле отсутствует значение для только что введённого в эмулятор нового параметра ( а как оно могло бы там быть ) - эмулятор при первом же запуске, использующем такой файл - автоматически добавит строчку с установкой значения по-умолчанию для нового параметра в конец ini-файла или в конец ini-секции объекта в файле конфигурации.

...

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

form
24.12.2012, 23:41
Исправлять вручную кучу конфигов не обязательно - при первом же запуске со старым конфигом эмулятор это делает сам.

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

Patron
25.12.2012, 19:01
Гораздо удобнее было бы иметь один файликВозможно, удобнее иметь не один общий файлик для всех объектов, а по одному файлику на каждый тип объекта - так с одного взгляда на каталог будет ясно, для каких типов объектов используется "предопределение параметров". Ведь если так не делать - внутри единого файлика предопределений придётся заводить именованные секции для объектов каждого типа и, по мере роста числа объектов - некторые секции предопределений будут оказываться ничуть не ближе к началу файла, чем секции объектов в файлах конфигурации.

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

...

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

У меня на 2-х компьютерах установлены несколько копий эмулятора и, поэтому, установку новых дистрибутивов в существующие специализированные инсталляции приходится выполнять регулярно.

При этом можно выделить следующие рациональные "правила поведения":

1. Исполнимый exe-файл эмулятора ( как и все файлы *.lng ) можно и нужно сразу копировать в целевой каталог взамен прежних.

2. Файлы *.ini - наоборот - копировать нужно только в самый первый раз ( когда в целевом каталоге ini-файлов ещё нет ). Если в целевом каталоге есть старые ini-файлы - новые из дистрибутива копировать не надо.

3. В новых cfg-файлах главную проблему представляют неподключенные к приводам образы, имеющиеся в целевом каталоге, и отличающиеся настройки терминала и адаптеров портов.

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

Что же до терминала и адаптеров - то тут других способов, кроме редактирования - нет. Однако, чем каждый раз заменять старый cfg-файл новым и затем редактировать - бывает выгоднее сначала выполнить их текстуальное сравнение при помощи Total Commander-а ( Файл -> Сравнить по содержимому ), быстро найти все отличия и принять правильное решение.

Patron
25.12.2012, 19:50
если дампить подорожечно МХ дискеты через неё, можно ли приспособить результат для использования в эмуляторе?Сейчас есть возможность подключать к эмулятору MX байтовые подорожечные дампы в файлах *.TRK.

Для примера - в приложении TRK-образ диска (http://zx.pk.ru/attachment.php?attachmentid=38946), отформатированного драйвером MX ( команда SET MX FORMAT ) и проинициализированного командой INI/NOQ MX1:

Формат TRK-файла следующий:

Файл текстовый. Число строк = 161.

1. Первая строка: TYPE[TRK:FD5]
2. 80 строк - описания дорожек 0-й стороны
3. 80 строк - описания дорожек 1-й стороны

Формат строки описания дорожки следующий:

[00:0][3125:2866] 83 00 00 00 00 00 00 00 00 ...

[Номер дорожки:Номер стороны][3125:Записано байтов] 1-й_байт_в_виде_2х_16-чных_цифр 2-й_байт_в_виде_2х_16-чных_цифр ...

Для дисков, отформатированных драйвером MX.SYS - на каждой дорожке записано 2866 байтов из 3125 возможных.

...

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

Но для этого нужно согласовать вид такого формата.

В принципе - может быть удобен набор отсчётов результата деления сигнала RDATA на 2, взятых с периодом 4 мкс. Для каждой дорожки это будет текстовая строка длиной 50'000 байтов, где символ '#' соответствует 1, а ' ' - 0.

Vamos
25.12.2012, 20:15
Сам Simon на письма отвечет и если надо подкорректировать что-то зависящее именно от драйвера, это можно будет попросить.
А можно его Саймона попросить сделать поддержку USB флопповодов для чтения, у него на страничке было что-то о не возможности, но я нарпимер на TEAC USB UF000x и программы RTTOOLS успешно читаю MY диски. Или может сходники попросить.

Patron
27.12.2012, 15:24
Анализ прошивки 054 (которая теперь по умолчанию используется в эмуляторе) показал, что помимо обычных для прошивки 000 режимов пуска, задаваемых значением 2х младших битов регистра SEL1:

0 - Переход по вектору 024
1 - HALT Trap
2 - Переход в ПЗУ загрузчика по адресу 0173000
3 - Переход в ПЗУ пользователя по адресу 0140000

в прошивке 054 анализируется бит 020 SEL1, который при установке задаёт альтернативные режимы пуска, определяемые значением 2х младших битов регистра SEL1:

0 - Автоматическая загрузка с MX0
1 - HALT Trap
2 - Автоматическая загрузка с DX0 ( с автоматическим определением типа контроллера RX01 / RX02 )
3 - Переход в ПЗУ пользователя по адресу 0160000

Поэтому, если в разделе [CpuBoard.ini] файла (например) ДВК-1_MX80.cfg задать параметр

SEL1_Data = 0160020то тогда при каждом запуске эмулятора, отжатии и нажатии кнопки [Вкл.] или нажатии и отжатии кнопки [Сброс] - будет начинаться автоматическая загрузка с MX0.

form
27.12.2012, 15:25
вектору 026

?

Patron
27.12.2012, 15:34
ROM:160154 Start_0:
ROM:160154 Mov @#26, @#CPSW
ROM:160162 Mov @#24, @#CPC
ROM:160170 START

form
27.12.2012, 15:35
ROM:160154 Start_0:
ROM:160154 Mov @#26, @#CPSW
ROM:160162 Mov @#24, @#CPC
ROM:160170 START



Ну так вектор-то 24, а не 26 :)
Не стоит плодить неоднозначности...

Patron
27.12.2012, 15:36
Точно, вектору 024 - уже исправил.

Patron
27.12.2012, 19:20
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_27.12.12_18-37 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_27.12.12_18-37.rar).

Изменения:

1. Исправлены ошибки в эмуляторе контроллера MX.

2. В файле конфигурации ДВК-1_MX80.cfg в секции [CpuBoard.ini] изменено значение параметра SEL1_Data


SEL1_Data = 0160020
для автоматической загрузки с MX0.

hobot
27.12.2012, 21:32
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_27.12.12_18-37.

поправьте расширение у архива, что бы не гадать с типом файла, пожалуйста ! )

---------- Post added at 21:32 ---------- Previous post was at 21:31 ----------

а так .ZIP вроде обычный )))

Patron
27.12.2012, 23:05
расширение у архиваПоправил.

hobot
27.12.2012, 23:16
Уже обновился, спасибо !

*осторожно скрин-шот ! )

Только вот в эту игру под дефолтовым загрузчиком не поиграть ) Но это обсуждалось уже ) Я использую раздел из этого обзора (http://www.old-games.ru/forum/showthread.php?p=844157#post844157) )
http://savepic.ru/3726548.jpg

hobot
28.12.2012, 12:47
Вопрос, а какой шрифт больше всего похож на родной вшитый в ДВК?
Что бы в эмуляторе ещё побаловаться с настройками в целях увеличения эффекта присутствия? Да и какой размер OЗУ можно максимально установить в cfg?

Patron
28.12.2012, 13:29
какой шрифт больше всего похож на родной вшитый в ДВК?

Матрица знакогенератора 15ИЭ-00-013 выглядит так:
http://img-fotki.yandex.ru/get/5110/264743.1/0_7730d_6e8c53c_XL


какой размер OЗУ можно максимально установить в cfg?Максимальный размер ОЗУ в эмуляторе 60 Кб ( 0..170000 ).
Если установленное значение любого параметра превышает максимальное - автоматически устанавливается ( и прописывается в cfg ) максимальное значение.

form
28.12.2012, 13:35
Матрица знакогенератора 15ИЭ-00-013 выглядит так

У 15ИЭ еще в режиме VT52 есть псевдографика. Там правда греческие буковки вместо традиционных рисовальных элементов :)

---------- Post added at 16:35 ---------- Previous post was at 16:31 ----------

Там где у 15ИЭ рисуется закрашенный квадратик, на 15ИЭ рисовалась альфа :)

hobot
28.12.2012, 13:51
form, я уже спрашивал не могу найти это пост с твоим ответом, вот гляди
мне нужно поправить (паскалю под RT-11 05.07C) коды в CHR
на CHR(12) - он в отличие от запуска под старым монитором не чистит экран, а делает "правильную" прокрутку\промотку??? не знаю как назвать, но мне надо именно экран почистить и какой всё таки код реально соответствует кнопке <Enter>
То есть полному возврату корретки с подтверждением (вводом) строки
СУ-М или СУ-J - нет?
<13.> не работает вроде (могу ошибаться).

form
28.12.2012, 13:56
CHR(12) - он в отличие от запуска под старым монитором не чистит экран, а делает "правильную" прокрутку\промотку???


SET TT [NO]FORM

Сделано специально для гребаного УКНЦ на котором например просмотр дампа вызывает очистку экрана между страницами. Для информации, код <FF> на VT52 страниц никогда не стирал. Это УКНЦизм, и использовать его в этом качестве не стоит. Для VT52 стирание экрана <ESC>H<ESC>J.

---------- Post added at 16:56 ---------- Previous post was at 16:54 ----------

Ну или если прога чисто УКНЦшная, можно добавить в прогу код который при запуске сохранит настройки терминала и выставит нужный режим. Пример есть в исходниках гада :)

hobot
28.12.2012, 14:19
Ну или если прога чисто УКНЦшная,
Такая такая - даже не сомневайся ! )))


Это УКНЦизм,
Он самый ! )

Исходники гада есть думаю разберусь ! )

Спасибо.

form
28.12.2012, 14:36
Исходники гада есть думаю разберусь ! )

Ну это скорее для общего развития, а стирать экран всеже рекомендую стандартной ESC последовательностью которая и на УКНЦ работает и на всех осталиных реализациях VT52 :)

hobot
28.12.2012, 14:59
Для VT52 стирание экрана <ESC>H<ESC>J.
Я попробую все варианты ))) Но всё равно будет работать только на УК-НЦ и\или эмуляторе, на ДВК не будет, поскольку я там цвета меняю и напрямую к регистрам
обращаюсь, ДВКашка в этом месте стесняется и вылетает )))

Дискета с отдельно взятой игрой (ну конечно там до кучи ещё пара игр есть)
поправленная версия "Звёздного Патруля" - исправлено :
-нет больше никаких семижопов!
-немного изменён способ выравнивания строк
-пароль луча смерти изменён (ни за что не угадаете на какой http://i.smiles2k.net/icq_smiles/4.gif (http://smiles2k.net/icq_smiles/2/index.html))
- запуск игры прописан в starts.com, добавлен текстовый брифинг !
- если игру и выполнение программ не прерывать по CTRL-C, а завершить
игру сценарно - дискета ребутнётся(!) игра перезапуститься - если прервать попадёте в голую
системку где можно будет другие игрушки с дискеты поиграти )))

Формат Дискеты MY80

Image : KOSMOS_DVK.dsk

Format : DSK
Size : 800 Kb

Volume ID: KOSMOS
Owner : PDP-11

File Blocks Date Bytes
---------- ------ ----------- ----------
SWAP .SYS 27P 19-Dec-1988 13'824
RT11SJ.SYS 78P 16-Dec-1980 39'936
TT .SYS 2P 23-Jan-1980 1'024
HD .SYS 3P 01-Mar-1980 1'536
EM .SYS 4P 04-Mar-1980 2'048
HX .SYS 4P 17-Nov-1980 2'048
MY .SYS 3P 27-Dec-1988 1'536
PIP .SAV 30P 31-Oct-1998 15'360
DATE .SAV 3P 15-Nov-1980 1'536
DIR .SAV 20P 31-Oct-1998 10'240
DUP .SAV 52P 31-Oct-1998 26'624
RESORC.SAV 26P 19-Dec-1988 13'312
SYS .SAV 3P 07-Dec-1979 1'536
HELP .SAV 143P 19-Dec-1988 73'216
DESS .SAV 20P 04-Nov-1993 10'240
KOSMOS.SAV 36P 22-Dec-2012 18'432
KING .SAV 67P 09-Apr-1996 34'304
SPACEM.SAV 33P 30-Apr-1979 16'896
STALK .SAV 49P 23-Jan-1992 25'088
TROPA .SAV 49P 30-Apr-1979 25'088
XONIX .SAV 23P 01-Dec-1994 11'776
UCL .SAV 2P 31-Dec-1999 1'024
NYS .SAV 22P 22-Oct-1993 11'264
TTY .SAV 3P 25-Jan-1991 1'536
TTY .LST 2P 05-Oct-1980 1'024
INFO .TXT 4P 31-Dec-1999 2'048
STARTS.COM 1P 28-Dec-2012 512
< UNUSED > 877 449'024
---------- ------ ----------- ----------
27 Files, 709 Blocks
877 Free blocks


Исправленный вариант для УК-НЦ залил в галерею (http://archive.pdp-11.org.ru/gamgal.html) игрушек, (http://hobot.pdp-11.ru/gamgal.htm) которая пока не слишком удобная, но зато там игрушки-же.

игру правили A.P.$lasH и [hobot]
релиз подготовил [hobot].

Спасибо!
Всех с Наступающими праздниками! )

:rolleyes_std:

Patron
28.12.2012, 15:08
У 15ИЭ еще в режиме VT52 есть псевдографика. Там правда греческие буковки вместо традиционных рисовальных элементов
Там где у 15ИЭ рисуется закрашенный квадратик, на 15ИЭ рисовалась альфаВ описании 15ИЭ нет команд и матриц псевдографики.

Псевдографика была у КСМ:




[ ######] [ # ] [ ## ] [ ] [ # ] [ # ] [ # ] [ ]
[ # # ] [ # ] [ # # ] [ ] [ # ] [ # ] [ # ] [ ]
[ # # # ] [ # ] [ ### ] [ ] [ # ] [ # ] [ # ] [ ]
[ # # ] [ # ] [ # # ] [ ] [ ##### ] [ # ] [ # ] [ #######]
[ # # ] [ # ] [ ### ] [ #### ] [ # ] [ ####] [ ####] [ ]
[ # # ] [ #### ] [ # ] [ # ] [ ##### ] [ # ] [ ] [ #######]
[ # # ] [ # # # ] [ # ] [ # ] [ # ] [ # ] [ ] [ ]
[ ## ] [ ### #] [ # ] [ # ] [ # ] [ # ] [ ] [ ]
----------
[ # ] [ # ] [ ] [ ] [ # # ] [ # ] [ # ] [ # # ]
[ # # #] [ ### ] [ ] [ ] [ # # ] [ # ] [ # ] [ # # ]
[ ## # ] [ # ] [ ] [ ] [ # # ] [ # ] [ # ] [ # # ]
[ # ] [ ### ] [ ] [ ] [ # # ] [ # ] [ # ] [ # # ]
[ # # ] [ # # ] [ ####] [ #######] [ #######] [ # ] [ #######] [ # # ]
[ # # ] [ # # ] [ # ] [ # ] [ ] [ # # # ] [ # ] [ # # ]
[ # # ] [ # # ] [ # ] [ # ] [ ] [ ### ] [ # ] [ # # ]
[ # ] [ ## ] [ # ] [ # ] [ ] [ # ] [ # ] [ # # ]
----------
[ # ] [ ] [ # # ] [ # ] [ ##### ] [ ] [ ### ] [ # ]
[ # ] [ ] [ # # ] [ ### ] [ # # # #] [ ] [ # ] [ # ]
[ # ] [ # ] [ # # ] [ # # # ] [ # # # ] [ ] [ # ] [ # ]
[ # ] [ # ] [ #######] [ # ] [ ##### ] [ ] [ ## ] [ # ]
[ ##### ] [ #######] [ # # ] [ # ] [ # ## ] [ #######] [ #### ] [ # ]
[ # ] [ # ] [ #######] [ # ] [ # # #] [ ] [ # # ] [ # ]
[ # ] [ # ] [ # # ] [ # ] [ # # ## ] [ ] [ # # ] [ # ]
[ # ] [ ] [ # # ] [ # ] [ #### ] [ ] [ ### ] [ # ]
----------
[ # ] [ # #] [ # ##] [ ] [ # ] [ # ] [ ] [ ]
[ # ] [ # # ] [ ##### ] [ ] [ # ] [ # ] [ ] [ ]
[ # ] [ # # ] [ # ] [ ] [ # ] [ # ] [ # ] [ ]
[ # ] [ # ] [ #### ] [ ] [ # ] [ #####] [ # ] [ ]
[ #### ] [ ### ] [ # ] [ #######] [ #######] [ # ] [ #######] [ # ]
[ ] [ # ] [ ### ] [ # # ] [ ] [ #####] [ # ] [ ]
[ ] [ ### ] [ # #### ] [ # # ] [ ] [ # ] [ # ] [ ]
[ ] [ # ] [ ### #] [ # # ] [ ] [ # ] [ ] [ ]

form
28.12.2012, 15:10
В описании 15ИЭ нет команд и матриц псевдографики.

Это в ТО нету. А в комплекте документации описание было.
Попутно добавлю, что keypad в VT52 режиме там правильно переключается согласно ESC последовательностям (это к другой теме).

Patron
28.12.2012, 16:53
Это в ТО нету. А в комплекте документации описание было. Попутно добавлю, что keypad в VT52 режиме там правильно переключается согласно ESC последовательностям (это к другой теме).Да, кейпад переключается - это есть в документации.

Но управляющее ПЗУ не резиновое. В КСМ отказались от поддержки 0-й системы команд 15ИЭ-00-013, добавив ( наверное, для отмазки ) помимо управляющих кодов VT52


Esc F - включение псевдографики
Esc G - выключение псевдографики
Esc [ - включение режима HOLD
Esc \ - выключение режима HOLD

совершенно безумные, ни с чем не совместимые управляющие коды


Esc P - раздвижка строки вправо
Esc Q - раздвижка строки влево
Esc S - раздвижка экрана вниз
Esc T - раздвижка экрана вверх
Которые, по всей видимости - дублировали команды 0-й системы 15ИЭ-00-013, используя код их реализации


022 - смыкание экрана вверх
023 - размыкание строки вправо
024 - смыкание строки влево
026 - размыкание экрана вниз

Реализация псевдографики в ПЗУ КСМ занимает 15 байтов в разборщике команд и ещё 25 байтов в подпрограмме вывода символов в текстовый буфер видеоконтроллера. Если в управляющем ПЗУ 15ИЭ-00-013 можно было найти 40 свободных байт - то добавление псевдографики теоретически возможно, если использовать соответствующий видеоконтроллер.

Но что касается матрицы псевдографики - она вряд ли могла отличаться у КСМ и 15ИЭ-00-013.

form
28.12.2012, 16:58
Но что касается матрицы псевдографики - она вряд ли могла отличаться у КСМ и 15ИЭ-00-013.

Может и не отличается, но мне в память врезался символ альфа который есть на картинке от КСМ, но не в том месте :)
Был же народ вроде с живыми 15ИЭ - можно попросить проверить: сделать это можно не подключаясь к компьютеру.

В RT-11 у 15ИЭ хорошая фича есть: клавиша <CTRL/U> (в VT52 режиме в numeric keypad <ESC><CTRL/U>). Вот в RSX такой номер не пройдет - там <ESC> - то же самое что <CR> только без эха самого символа терминатора и без вывода подсказки после команды если символом завершили команду. :)

Patron
29.12.2012, 14:01
Изменение эмулируемой конфигурации.

Использование консольного дампа.
--------------------------------------------------

Консоль ( объект Console ) и терминал ( объект Terminal ) полностью идентичны по потоковым сокетам, поэтому в любом случае, где подключается терминал - можно подключить и консоль, а в любом случае, где подключается консоль - можно подключить и терминал.

Нет большого смысла использовать терминал вместо ( или одновременно ) с консолью для получения текстовых сообщений объектов. Однако, подключать консоль параллельно терминалу при получении байтовых потоков объектов - смысл иногда есть.

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

Так, если в файл конфигурации по-умолчанию default.cfg добавить следующие строки:


[objects]
Dump = Ядро:Console


[links]
TerminalPort > Dump


[Dump.ini]
TabTitle =""
InitialStateOf[StatusBar] = 0
SaveChangesFor[StatusBar] = 0
InitialStateOf[ControlBar] = 0
SaveChangesFor[ControlBar] = 0
InitialStateOf[Log] = 0
SaveChangesFor[Log] = 0
DumpMode = 1


на панели закладок появится окно "Dump" с консолью, на которую будут поступать все те же байты, что и на терминал.
Режим дампа задаётся параметром DumpMode в ini-разделе объекта в файле конфигурации.

В файле Console.ini находятся значения по-умолчанию для параметров:


DumpRadix = 8
DumpCols = 20
LeftDumpSeparator="«"
RightDumpSeparator="»"
DumpRadix - основание системы счисления, используемое при формировании дампа ( 8, 10, 16 ).
DumpCols - число колонок дампа в режимах 4..7 ( 1..512 ).

Первые строчки, появляющиеся на терминале при запуске эмулятора:



HD (177720) disk driver v1.2 2012
SL V08.00 [SW] Сторожевых С.В. 1988
ПРИМЕНЯЙТЕ КОМАНДУ "SET MX INFORM"


В окне "Dump" приобретут следующий вид, в зависимости от значения параметра DumpMode:

DumpMode = 0


HD (177720) disk driver v1.2 2012
SL V08.00 [SW] sTOROVEWYH s.w. 1988
primenqjte komandu "SET MX INFORM"


DumpMode = 1


HD (177720) disk driver v1.2 2012
SL V08.00 [SW] «016»sTOROVEWYH s.w. 1988«017»
«016»primenqjte komandu «017»"SET MX INFORM"


DumpMode = 2


HD (177720) disk driver v1.2 2012«015»«012»
«015»«015»SL V08.00 [SW] «016»sTOROVEWYH s.w. 1988«017»«015»«012»
«016»primenqjte komandu «017»"SET MX INFORM"«015»«012»


DumpMode = 3


HD«040»(177720)«040»disk«040»driver«040»« 040»v1.2«040»«040»2012«015»«012»
«015»«015»SL«040»V08.00«040»[SW]«040»«016»sTOROVEWYH«040»s.w.«040»1988«01 7»«015»«012»
«016»primenqjte«040»komandu«040»«017»"SET«040»MX«040»INFORM"«015»«012»


DumpMode = 4


015 012 110 104 040 050 061 067 067 067 062 060 051 040 144 151 163 153 040 144
H D ( 1 7 7 7 2 0 ) d i s k d

162 151 166 145 162 040 040 166 061 056 062 040 040 062 060 061 062 015 012 015
r i v e r v 1 . 2 2 0 1 2

015 123 114 040 126 060 070 056 060 060 040 133 123 127 135 040 016 163 124 117
S L V 0 8 . 0 0 [ S W ] s T O

122 117 126 105 127 131 110 040 163 056 167 056 040 061 071 070 070 017 015 012
R O V E W Y H s . w . 1 9 8 8

016 160 162 151 155 145 156 161 152 164 145 040 153 157 155 141 156 144 165 040
p r i m e n q j t e k o m a n d u

017 042 123 105 124 040 115 130 040 111 116 106 117 122 115 042 015 012 015 012


DumpMode = 5


015 012 110 104 040 050 061 067 067 067 062 060 051 040 144 151 163 153 040 144
CR LF H D ……… ( 1 7 7 7 2 0 ) ……… d i s k ……… d

162 151 166 145 162 040 040 166 061 056 062 040 040 062 060 061 062 015 012 015
r i v e r ……… ……… v 1 . 2 ……… ……… 2 0 1 2 CR LF CR

015 123 114 040 126 060 070 056 060 060 040 133 123 127 135 040 016 163 124 117
CR S L ……… V 0 8 . 0 0 ……… [ S W ] ……… Rus s T O

122 117 126 105 127 131 110 040 163 056 167 056 040 061 071 070 070 017 015 012
R O V E W Y H ……… s . w . ……… 1 9 8 8 Lat CR LF

016 160 162 151 155 145 156 161 152 164 145 040 153 157 155 141 156 144 165 040
Rus p r i m e n q j t e ……… k o m a n d u ………

017 042 123 105 124 040 115 130 040 111 116 106 117 122 115 042 015 012 015 012
Lat " S E T ……… M X ……… I N F O R M " CR LF CR LF

DumpMode = 6


CR LF H D ……… ( 1 7 7 7 2 0 ) ……… d i s k ……… d

r i v e r ……… ……… v 1 . 2 ……… ……… 2 0 1 2 CR LF CR

CR S L ……… V 0 8 . 0 0 ……… [ S W ] ……… Rus s T O

R O V E W Y H ……… s . w . ……… 1 9 8 8 Lat CR LF

Rus p r i m e n q j t e ……… k o m a n d u ………

Lat " S E T ……… M X ……… I N F O R M " CR LF CR LF


DumpMode = 7


015 012 110 104 040 050 061 067 067 067 062 060 051 040 144 151 163 153 040 144
162 151 166 145 162 040 040 166 061 056 062 040 040 062 060 061 062 015 012 015
015 123 114 040 126 060 070 056 060 060 040 133 123 127 135 040 016 163 124 117
122 117 126 105 127 131 110 040 163 056 167 056 040 061 071 070 070 017 015 012
016 160 162 151 155 145 156 161 152 164 145 040 153 157 155 141 156 144 165 040
017 042 123 105 124 040 115 130 040 111 116 106 117 122 115 042 015 012 015 012

Patron
04.01.2013, 19:16
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_04.01.13_18-24.

Изменения:

1. Внесены изменения, описанные ЗДЕСЬ (http://zx.pk.ru/showthread.php?postid=564463).

2. Теперь подключенные образы можно отключать от приводов эмулятора, используя Ctrl / Left-Click на копках виджетов типа SB_DriveButton.

3. Подчищен мусор в файлах *.cfg.

Patron
17.01.2013, 17:19
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_17.01.13_15-39 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_17.01.13_15-39.rar).

Изменения:

1. Исправлена работа команды RTT, нарушенная в каком-то из предыдущих релизов.

2. Теперь эмулятор последовательного порта выставляет бит готовности в регистре статуса через 70 тактов CLC после первой записи в регистр данных.

3. Во всех файлах конфигурации в настройках эмулятора последовательного порта число битов на байт по умолчанию изменено с 10 на 11.

4. Мультиплексор HX и драйвер HX.SYS переделаны на новый протокол HX 2.1

hobot
01.02.2013, 18:45
Patron, пожалуйста объясните мне почему всё таки не работает esc-ctrl+H ?
<5> на ДКЛ - на буке очень не удобно !!! Как ещё быть? Можно на какой-нибудь F - назначить это сочетание? На УК-НЦ есть программа KLAV.SAV, она на К1 по умолчанию
это вешает? Не могу комфортно в эмуляторе пользоваться текстовым редактором! (
Пробовал во всех последних версиях .exe - шников? Может что то надо в ini-править?

Patron
01.02.2013, 20:52
почему всё таки не работает esc-ctrl+H ?Потому что давненько релиз не обновлялся. Есть три решения:

1. Переименовать последнюю сборку HX_Server.exe в pdp11.exe

2. Использовать клавишу [End] в качестве Gold.

3. Отжать [NumLock] и использовать доп. клавиатуру как на ДВК - там Gold это 5.

hobot
01.02.2013, 21:04
HX_Server.exe
Да! Вот кого я не переименовывал ) Спасибо! )
Чувствовал, что что-то упустил )

END - точно! Я же помнил что один раз нащупал что-то отличное от <5> на ДКЛ.
Я на ноуте поэтому у меня тут "сложно-весёлая" ситуация с ДКЛ. )

---------- Post added at 21:04 ---------- Previous post was at 21:00 ----------

применил все три способа! Вот оно счастье! )

Patron
14.02.2013, 13:05
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_13.02.13_23-42

Изменения:

1. Внесены изменения, описанные ЗДЕСЬ (http://zx.pk.ru/showthread.php?p=575896#post575896).

2. Теперь при установке максимальной скорости эмуляции - приоритет потока эмуляции снижается.

3. Значительно улучшена эмуляция последовательного порта в части точного выдерживания скорости приёма байтов, передачи сигнала BREAK и таймингов двойной буферизации при передаче байтов.

4. Теперь адаптер COM-порта ( объект Terminal_ComPort_Adapter ) осуществляет согласование продолжительности передаваемых и принимаемых сигналов BREAK в реальном и виртуальном времени.

5. У объекта Terminal_ComPort_Adapter появился новый параметр MinimalBreakTime_MKS, задаваемый в ini-секции объекта в файле конфигурации и определяющий минимальную продолжительность формируемого сигнала BREAK в микросекундах при его приёме и передаче:



[ComPort_Adapter.ini]
PortName = COM1
InitialStateOf[ShowPortUse] = 1
SaveChangesFor[ShowPortUse] = 1
InitialStateOf[StopReading] = 0
SaveChangesFor[StopReading] = 0
MinimalBreakTime_MKS = 3000


Минимальное значение 1000, максимальное 20000, значение по умолчанию 3000.

...

Patron
18.02.2013, 19:40
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_18.02.13_19-37 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_18.02.13_19-37.rar)

Изменения:

1. Исправлено большое количество ошибок в эмуляторе порта терминала.

2. Изменён алгоритм работы адаптера COM-порта при приёме сигнала BREAK.

...

hobot
01.04.2013, 14:22
Обновилась текущая сборка "эмулятора ДВК"
В связи с обсуждением символьной игры XONIX в теме по ДВК, я сейчас в эмуляторе ДВК её запустил и вот какая штука - раньше такого не было - слишком заметно мерцание обновления перерисовки экрана стало - реально раньше не было такого !!!
Неприятный момент и реально напрягает глаза, да и на реале не было такого?
Что в эмуляторе изменилось? Со своей стороны, я могу все конфиги приложить или что ещё нужно? Файл игры обычный XONIX.SAV ( Стала выглядеть игра в динамике очень не аппетитно. Я по сравнению со старой версией в конфигах менял сам только размер рабочего окна и шрифты (

form
01.04.2013, 14:24
В связи с обсуждением символьной игры XONIX в теме по ДВК, я сейчас в эмуляторе ДВК её запустил и вот какая штука - раньше такого не было - слишком заметно мерцание обновления перерисовки экрана стало - реально раньше не было такого !!!
Неприятный момент и реально напрягает глаза, да и на реале не было такого?
Что в эмуляторе изменилось? Со своей стороны, я могу все конфиги приложить или что ещё нужно? Файл игры обычный XONIX.SAV ( Стала выглядеть игра в динамике очень не аппетитно. Я по сравнению со старой версией в конфигах менял сам только размер рабочего окна и шрифты (

Выложи сюда XONIXи - посмотрю на досуге.
Сейчас есть однотерминальные RT-11 под рукой - будет где запустить с живым VT52 (хотя те что мне попадались в советское время как раз на настоящем VT52 не работают ибо шаловливые ручки поменяли символы зарисовки на <DEL>) :)

hobot
01.04.2013, 14:28
У меня только один для ДВК и один графический для УК-НЦ.
Я прилеплю обычный тот что New-York 1986 и стартует по CTRl-O

hobot
01.04.2013, 14:36
Просто в него нормально можно было поиграть только в этом эмуляторе,
теперь получается картинка заставляет глаза слезится, а ведь было всё норм?

---------- Post added at 14:35 ---------- Previous post was at 14:29 ----------

А вот, Олег погляди по твоему кажется запросу уже целую подборку делали?
http://zx.pk.ru/showthread.php?t=20306

И ещё нашёл у себя скрин про который и спрашивал тебя однажды )
http://savepic.org/3123052.jpg
Вопрос был в том, есть ли шанс погонять в него например на СТАКАНЕ? )

---------- Post added at 14:36 ---------- Previous post was at 14:35 ----------

И почему в эмуляторе ДВК от Patrona вид игры так попортился ? (((

form
01.04.2013, 14:38
Вопрос был в том, есть ли шанс погонять в него например на СТАКАНЕ? )

На стакане надо либо переделывать в RSX программу либо если программа использует стандартные системные вызовы RT-11, можно запускать в RTEM. К вышеупомянутому XONIX это не относится - он работает напрямую с регистрами, при том не заботясь о том выключит ли "BIC #100,@#177560" прерывания или нет :)

---------- Post added at 17:38 ---------- Previous post was at 17:37 ----------

А картинка - это я вроде находил как раз игру которая через системные вызовы работает :)

hobot
01.04.2013, 14:39
это я вроде находил как раз игру которая через системные вызовы работает
Ну я вот на ту подборку ссылку кинул (см. выше).

form
01.04.2013, 14:41
Ну я вот на ту подборку ссылку кинул (см. выше).

Лучше бы ссылку где я называл какая из них работает через системные вызовы :)

---------- Post added at 17:41 ---------- Previous post was at 17:40 ----------

Нашел. Сейчас загоню в стакан - посмотрим.

form
01.04.2013, 14:57
Запихнул в CTAKAH. Играет плавно, но скорость слишком большая. Надо разобрать программку и переделать задержки чтобы через .MRKT работали.

В эмуляторе терминала использовать конфиг CTAKAH.cfg, далее:
>HEL GUEST/

RSX-11M-PLUS V4.6 BL87 [1,54] System CTAKAH
1-APR-13 17:56 Logged on Terminal TT1: as GST53

Good Afternoon

************************************************** ***************
* *
* Welcome to RSX-11M-PLUS *
* *
* Version 4.6 Base level 87 *
* *
************************************************** ***************

Last interactive login on Monday, April 1, 2013 17:52:02 (TT3:)

$ @LB:[1,2]SYSLOGIN.CMD

This is RSX.PDP-11.ORG.RU, node CTAKAH at HECnet.

See http://pdp-11.org.ru/~form/ctakah.html for more information about
this system. See http://pdp-11.org.ru/hecnet.html for more information
about HECnet.

WARNING: Please do NOT use "PRINT" command to print file content -
it prints the file on system line printer. Use "TYPE" command instead.

$ @ <EOF>
$ RTE /VS
RTEM-11 (VAX/VMS) V01.00

RT-11FB V05.07

.RU XONIX1

Patron
01.04.2013, 19:20
Что в эмуляторе изменилось? Со своей стороны, я могу все конфиги приложить или что ещё нужно?Подозреваю, что в эмуляторе ничего не изменилось, но кто-то пытается запускать игру, выводящую закрашенные знакоместа - при установленном системном сглаживании шрифта.

В таком случае строка сначала рисуется целиком ( с пробелами вместо "забоев" ) и только потом в уже отрисованной строке закрашиваются нужные квадратики.

"Забои" при таком выводе преотвратно мерцают.

Возможных решений в этой ситуации два:

Решение №1. Изменить в используемом файле конфигурации настройку терминала:


bFontAntialiasDisable = 0
на

bFontAntialiasDisable = 1

...

Решение №2. Отключить системное сглаживание шрифта.

...

hobot
01.04.2013, 20:29
Решение №1. Изменить в используемом файле конфигурации настройку терминала:
Код:

bFontAntialiasDisable = 0

на
Код:

bFontAntialiasDisable = 1

...

Решение №2. Отключить системное сглаживание шрифта.


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



[Main]
bFastExit=1
nMainWindowMinWidth=1280
nMainWindowMinHeight=776
nMainWindowDefaultWidth=1280
nMainWindowDefaultHeight=776
nMainWindow_X0=4294967292
nMainWindow_Y0=4294967292
nMainWindowWidth=1288
nMainWindowHeight=776
bMainWindowMaximized=0
ConfigFile=default.cfg
sLanguage=
bMainMenu=1


сейчас подкручу решение 1-2 и запущу КСОНИКС отпишусь.

Patron
01.04.2013, 20:33
на счёт сглаживания не уверен что включал его в виндоусВот этот скриншот сделан при включённом системном сглаживании шрифтов:

http://savepic.org/3144543.jpg

hobot
01.04.2013, 21:15
Решение №1.
Помогло! Всё ок теперь с ксониксом нью-ёрк-86 )

оффтоп

---------- Post added at 21:15 ---------- Previous post was at 21:13 ----------


Вот этот скриншот сделан при включённом системном сглаживании шрифтов:
Вот ведь ) Шаг влево - шаг вправо - попытка к бегству, прыжок на месте провокация!)

Patron
03.04.2013, 14:17
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_04.04.13_12-37 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_04.04.13_12-37.rar)

Изменения:

1. Внесены изменения, описанные ЗДЕСЬ (http://zx.pk.ru/showthread.php?p=585117#post585117).

2. Теперь объект Terminal поддерживает 1-ю систему команд терминала 15ИЭ-00-013.

3. В образ диска MX80_System.DSK добавлен файл XONIX.SAV ( XONIX - 1985 ), использующий 1-ю систему команд.

4. В образ диска MX40_User.DSK добавлен файл 15IE.BAS, содержащий тест расширенных команд 1-й системы команд терминала 15ИЭ-00-013 на языке BASIC.

После завершения теста - текст на экране должен выглядеть так:

http://emulator.pdp-11.org.ru/misc/15IE_test2.png

hobot
03.04.2013, 18:57
SSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSS
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSS#SSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSS
SSS O SSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSS
SSS O SSSSSSSSSSSSSSSSSSSSS
SSS O SSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSS
SSS SSSSSSSSSSSSSSSSSSSSS
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
Общий счет: 522 Счет игры: 522 Число попыток: 1 Время: 47


Шикарно ! )

shattered
03.04.2013, 22:13
4. В образ диска MX40_User.DSK добавлен файл 15IE.BAS, содержащий тест расширенных команд 1-й системы команд терминала 15ИЭ-00-013 на языке BASIC.


Проверю-ка я его в эмуляторе 15ИЭ :-)

---------- Post added at 22:13 ---------- Previous post was at 21:35 ----------

http://img-fotki.yandex.ru/get/5636/264743.2/0_8b709_f5e0873d_XL.png.jpg (http://fotki.yandex.ru/users/shattered/view/571145/)

hobot
03.04.2013, 23:31
shattered, на живой УК-НЦ так-же )

Patron
03.04.2013, 23:34
Проверю-ка я его в эмуляторе 15ИЭА строка


################ Тест терминала 15ИЭ-00-013 в 1-й системе команд #############
во время теста двигалась или стояла на месте ?

shattered
04.04.2013, 00:00
Двигалась целиком вверх и вниз.

Проще видео записать, наверно?

Patron
04.04.2013, 00:09
Двигалась целиком вверх и вниз.
Проще видео записать, наверно?Проще выбросить из теста строки, начиная с 720.

Там адреса строк распределены так:

700 - задержка
710 - сдвиг вниз на 9 строк
720 - задержка
740 - сдвиг вверх на 9 строк
750 - задержка
1100 - сдвиг вправо на 40 позиций
1120 - задержка
1140 - сдвиг влево на 20 позиций

shattered
04.04.2013, 00:12
гм. как я понимаю, прокрутка вверх и вниз не очищает вдвигаемые строки?

Patron
04.04.2013, 00:28
гм. как я понимаю, прокрутка вверх и вниз не очищает вдвигаемые строки?В буфере 48 строк. Если в строке 710 заменить 9% на 48% ( а всё что ниже - выкинуть ) - то буфер или "провернётся" на полный оборот и вернётся к исходному виду, или что-то сотрётся.

Patron
04.04.2013, 13:00
Исправил работу команд вертикальной прокрутки изображения в 1-й системе команд терминала 15ИЭ-00-013 - теперь по этим командам циклически прокручиваются последние 48 строк в буфере вывода.

Новый вариант дистрибутива "эмулятора ДВК" ЗДЕСЬ (http://zx.pk.ru/showthread.php?postid=588958).

...

hobot
05.04.2013, 07:38
Новый вариант дистрибутива "эмулятора ДВК" ЗДЕСЬ.
забираем, архив на сайте обновил - теперь там вот этот вариант последний.
Так-же обновил там и архив с EmuStudio на 0.12b, как-то так.

Titus
13.04.2013, 03:10
После завершения теста - текст на экране должен выглядеть так

У себя в эмуляторе тоже проверил:

http://s017.radikal.ru/i404/1304/20/a0bbd750e03a.png

При сдвижке строк очень забавный эффект снега в верхей части экрана.

form
17.04.2013, 04:32
Даешь поддержку подцепления портов терминала к LAT! :)

Patron
17.04.2013, 11:55
Даешь поддержку подцепления портов терминала к LAT!А это что такое ?

form
17.04.2013, 12:15
А это что такое ?

Протокол такой для связи терминалов-принтеров и тому подобного через ethernet.

b2m
17.04.2013, 13:45
Прикольно, сделал такой конфиг:


main.CPUClock=1MHz
main.Caption="CTAKAH"
main.scale.y=150%

line : dvk-serial {
connect="tcp:23:rsx.pdp-11.org.ru"
}

MCU-15ie-00-013 : mcu-15ie {
rom="dvk\15ie.rom"
font="dvk\15ie.fnt"
layout="dvk\dvk.kbd"
keymap="dvk\dvk.map"
serial=line
sound=beep.wave
}

beep : beep {
freq=1/1A1
}

Поиграл в марсиан :)
По-моему притормаживает как-то...

form
17.04.2013, 13:46
Поиграл в марсиан :)
По-моему притормаживает как-то...

Ну так чего ж еще ожидать от связи через телнет особенно если принимающая строона телнет не поддерживает :)

Patron
23.04.2013, 14:01
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_23.04.13_12-22

Изменения:

1. Внесены изменения, описанные ЗДЕСЬ (http://zx.pk.ru/showthread.php?p=594248#post594248).

2. В объект Console добавлены базовые параметры BackgroundColor_RGB, PrinterPaperColor_RGB, PrinterLeftMargin_px, FontFace, FontSize, управляющие отображением информации на всех консолях, кроме системной. Базовые значения указанных параметров задаются в файле Console.ini и могут переназначаться в ini-разделе каждого конкретного экземпляра консоли в файле конфигурации.

3. В объект Console добавлена константа PrinterMode, задаваемая в ini-разделе каждой конкретной консоли в файле конфигурации и определяющая режим имитации принтера данной консолью: 0 - консоль Win1251, 1 - принтер КОИ8 + КОИ7, 2 - принтер КОИ8 + TRANSLIT.

4. Теперь размер шрифта любой консоли можно изменять как у терминала - вращая колесо мыши при нажатой клавише <Ctrl> ( если заданный для конкретной консоли шрифт допускает изменение размера ).

5. В модуль Port_module.em добавлен объект PrinterPort, эмулирующий стандартный принтерный порт LP11. Эмуляция порта принтера с подключенным принтером добавлена во все файлы конфигурации. Во всех случаях для имитатора принтера задаётся шрифт "system" и режим КОИ8 + КОИ7:



[Printer.ini]
TabTitle=""
InitialStateOf[ControlBar]=0
SaveChangesFor[ControlBar]=0
InitialStateOf[StatusBar]=0
SaveChangesFor[StatusBar]=0
InitialStateOf[Log]=0
SaveChangesFor[Log]=0
FontFace = "system"
DumpMode=1
PrinterMode=1


Если нажать ( и затем отжать ) кнопку [Пульт] и ввести T5 - в окне принтера должно появиться следующее:



0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.+!"#$%&'()=?
ПРОВЕРКА ПАРАЛЛЕЛЬНОГО ИНТЕРФЕЙСА

form
23.04.2013, 17:06
LP11

;)

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

Patron
23.04.2013, 18:19
Для полного счасться можно по краям рисовать дырочки, прочерк между листами, отрабатывать <FF>, иметь возможность приостановить вывод и вытащить окно принтера из общей части(и вставить его обратно).Всё это ( а также имитация печати на листы A4 ) будет добавлено позже.

В первую очередь планируется добавить в модульный API поддержку открепления/прикрепления для всех окон, кроме системной консоли старшего конфига ( конфиги в модульном API могут быть иерархически вложены в любых комбинациях - и "вширь", и "вглубь" ).

hobot
23.04.2013, 20:55
Для полного счасться можно по краям рисовать дырочки,
Нужен параметр - лист А4 или рулон заправлен и тогда рисовать дырочки (звук игольчатого принтера есть предложение не эмулировать! "смайл").

---------- Post added at 20:52 ---------- Previous post was at 20:31 ----------

Сработал ТЕСТ5 )
http://savepic.net/3521133.png

Вот теперь такой тонкий момент - я потыкал Prt_Scr в момент когда активна (на переднем плане закладка Printer) в буфер обмена пишется только графический экран Виндоус, текстовая информация с закладки RT-11(ДВК) не пишется и текстовая информация с закладки Printer не пишется, так и было задумано? Может быть эту схему как-то в будущем доработать осмыслить переделать? Наверное правильно было бы, если бы с текущей активной закладки как и обычном случае писалось и граф. и текст? Или эмуляция Printera подразумевает создание (где-то)
текстового файла?

---------- Post added at 20:55 ---------- Previous post was at 20:52 ----------

В любом случае! Благодарность автору за обновление и Printer это прогресс в создании виртуального рабочего места ДВК ) А сколько ещё железяк там без эмуляции осталось? Немыслимое количество )))

Patron
23.04.2013, 22:07
я потыкал Prt_Scr в момент когда активна (на переднем плане закладка Printer) в буфер обмена пишется только графический экран Виндоус, текстовая информация с закладки RT-11(ДВК) не пишется и текстовая информация с закладки Printer не пишется, так и было задумано?Пока на эту клавишу реагирует только терминал. Надо мне будет добавить возможность аналогичного копирования экрана и для консоли.

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

Изменения:

1. Внесены изменения, описанные ЗДЕСЬ (http://zx.pk.ru/showthread.php?p=595945#post595945).

2. Теперь клавиша <PrintScreen> работает в консолях так же, как в терминале ( помещает в буфер обмена текстовую и графическую копии содержимого ).

3. Теперь при нажатой клавише <Ctrl> клик мышью на названии закладки освобождает любое окно, кроме системной консоли. Для возвращения окна в закладки его нужно закрыть.

hobot
07.05.2013, 19:13
3. Теперь при нажатой клавише <Ctrl> клик мышью на названии закладки освобождает любое окно, кроме системной консоли. Для возвращения окна в закладки его нужно закрыть.
Очень круто! ) - в смысле уже покликал !!! )))
А как бы избежать каждый раз конфиг править? Ну то есть опции в него новые exe сама допишет после первого старта, тоесть конфиг от пред. версии обновлять не обязательно, а то я каждое обновление заного настройки цвета и размера и стартовые образы и прочее заполняю? )

hobot
07.05.2013, 19:26
Шикарно! Принтер! Ура! )




.PRI HD1:TEST.PAS

.DIR HD2:
07-May-2013
SWAP .SYS 27P 19-Dec-1988 RT11SJ.SYS 78P 16-Dec-2012
TT .SYS 2P 23-Jan-1980 HD .SYS 3P 01-Mar-2012
EM .SYS 4P 04-Mar-2012 LD .SYS 8P 19-Dec-1988
SL .SYS 10P 28-Dec-1987 NL .SYS 2P 19-Dec-1988
PIP .SAV 30P 31-Oct-1998 MACRO .SAV 63P 21-Dec-2012
LINK .SAV 59P 31-Oct-1998 DIR .SAV 20P 31-Oct-1998
DUP .SAV 49P 19-Dec-1988 LAT .SAV 2P 16-Oct-1994
NYS .SAV 22P 22-Oct-1993 NYS .HLP 23P 15-Apr-1980
DESS19.SAV 19P 04-Mar-1994 UCL .SAV 2P 31-Dec-1999
XDIR .SAV 12P 05-Jun-1991 RUS .SAV 2P 16-Oct-1994
RESORC.SAV 25P 01-Mar-2012 DAY .SAV 4 09-Apr-2013
PASCAL.SAV 58P 28-Feb-2013 TTY .SAV 3P 25-Jan-1991
SYSMAC.SML 92P 31-Oct-1998 SYSLIB.OBJ 47P 19-Dec-1988
PASCAL.OBJ 90P 28-Feb-2013 STARTS.COM 1P 31-Dec-1999
MX .SYS 9 15-Dec-2012 CLIND .SAV 64 23-Nov-1989
XONIX .SAV 23 01-Dec-1994 TET .SAV 28 04-Apr-1986
PACMAN.SAV 13 24-Jun-1993 MFL2 .SAV 24 23-Nov-1989
TET2 .SAV 5 18-Nov-1999 TETRIS.SAV 28 07-Dec-1994
STALK .SAV 47 18-Oct-1989 TETKA1.TXT 8 03-Nov-2011
38 Files, 1006 Blocks
54459 Free blocks

.PRI HD2:TETKA1.TXT

.



http://savepic.ru/4488988.png

Patron
07.05.2013, 22:35
А как бы избежать каждый раз конфиг править? Ну то есть опции в него новые exe сама допишет после первого старта, тоесть конфиг от пред. версии обновлять не обязательно, а то я каждое обновление заного настройки цвета и размера и стартовые образы и прочее заполняю? )Если дать своему варианту конфига свой вариант имени - он никак не пострадает.

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

---------- Post added at 21:35 ---------- Previous post was at 20:50 ----------


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

В текущей версии "эмулятора ДВК" (http://zx.pk.ru/showthread.php?p=599225#post599225) число строк в буфере имитатора принтера увеличено до 2000.

...

hobot
08.05.2013, 18:22
.TY TESTPU
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ
ТЕСТ ПУ ТЕСТ ПУ

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ ¤¤¤¤¤

Т Е С Т 1

ППППППППППППППППППППППППП ППППППППППППППППППППППППП ППППППППППППППППППППППППП ППППП

ППППППППППППППППППППППППП ППППППППППППППППППППППППП ППППППППППППППППППППППППП
ППППППППППППППППППППППППП ППППППППППППППППППППППППП ППППППППППППППППППППППППП

! " # ¤ % & ' ( ) * + , - . / 0 1 2 3
4 5 6 7 8 9 : ; < = > ? @ A B C D E F G
H I J K L M N O P Q R S T U Y W Х Y Z [
\ ] ^ _ Ю А Б Ц Д Е Ф Г Х И Й К Л М Н О
П Я Р С Т У Ж В Ь Ы З Ш Э Щ Ч


! " # ¤ % & ' ( ) * + , - . / 0 1 2 3
4 5 6 7 8 9 : ; < = > ? Ю А Б Ц Д Е Ф Г
Х И Й К Л М Н О П Я Р С Т У Ж Е Ь Ы З Ш
Э Щ Ч _ Ю А Б Ц Д Е Ф Г Х И Й К Л М Н О
П Я Р С Т У Ж В Ь Ы З Ш Э Щ Ч


! " # ¤ % & ' ( ) * + , - . / 0 1 2 3
4 5 6 7 8 9 : ; < = > ? @ A B C D E F G
H I J K L M N O P Q R S T U V W X Y Z ]
\ [ ^ _ ` A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z { } ~

T E С Т 2

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUYYWWXXYYZZ[[\\]]^^__ЮЮААББЦЦДДЕЕФФГГХХИИЙЙК КЛЛММННООПП
ЯЯРРССТТУУЖЖВВЬЬЫЫЗЗШШЭЭЩ ЩЧЧ

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUYYWWXXYYZZ[[\\]]^^__ЮЮААББЦЦДДЕЕФФГГХХИИЙЙК КЛЛММННООПП
ЯЯРРССТТУУЖЖВВЬЬЫЫЗЗШШЭЭЩ ЩЧЧ

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??ЮЮААББЦЦДДЕЕФФГГХХ
ИИЙЙККЛЛММННООППЯЯРРССТТУ УЖЖВВЬЬЫЫЗЗШШЭЭЩЩЧЧ__ЮЮААБ БЦЦДДЕЕФФГГХХИИЙЙККЛЛММНН ООПП
ЯЯРРССТТУУЖЖВВЬЬЫЫЗЗШШЭЭЩ ЩЧЧ

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??ЮЮААББЦЦДДЕЕФФГГХХ
ИИЙЙККЛЛММННООППЯЯРРССТТУ УЖЖВВЬЬЫЫЗЗШШЭЭЩЩЧЧ__ЮЮААБ БЦЦДДЕЕФФГГХХИИЙЙККЛЛММНН ООПП
ЯЯРРССТТУУЖЖВВЬЬЫЫЗЗШШЭЭЩ ЩЧЧ

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``ААBBSSDDEEFFGGHHIIJJKKLLMMNNOOPP
QQRRSSTTUUVVWWXXYYZZ{{ }}~~

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``ААBBSSDDEEFFGGHHIIJJKKLLMMNNOOPP
QQRRSSTTUUVVWWHHYYZZ{{ }}~~

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
ИИЙЙККЛЛММННООППЯЯРРССТТУ УЖЖВВЬЬЫЫЗЗШШЭЭЩЩЧЧ__ЮЮААБ БЦЦДДЕЕФФГГХХИИЙЙККЛЛММНН ООПП
ЯЯРРССТТУУЖЖВВЬЬЫЫЗЗШШЭЭЩ ЩЧЧ

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``ААBBSSDDEEFFGGHHIIJJKKLLMMNNOOPP
QQRRSSTTUUVVWWXXYYZZ{{ }}~~

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``ААBBSSDDEEFFGGHHIIJJKKLLMMNNOOPP
QQRRSSTTUUVVWWXXYYZZ{{ }}~~

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUYYWWXXYYZZ[[\\]]^^__ЮЮААББЦЦДДЕЕФФГГХХИИЙЙК КЛЛММННООПП
ЯЯРРССТТУУЖЖВВЬЬЫЫЗЗШШЭЭЩ ЩЧЧ

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEEFFGGHH
IIJJKKLLMMNNOOPPQQRRSSTTUUYYWWXXYYZZ[[\\]]^^__ЮЮААББЦЦДДЕЕФФГГХХИИЙЙК КЛЛММННООПП
ЯЯРРССТТУУЖЖВВЬЬЫЫЗЗШШЭЭЩ ЩЧЧ

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??ЮЮААББЦЦДДЕЕФФГГХХ
ИИЙЙККЛЛММННООППЯЯРРССТТУ УЖЖВВЬЬЫЫЗЗШШЭЭЩЩЧЧ__ЮЮААБ БЦЦДДЕЕФФГГХХИИЙЙККЛЛММНН ООПП
ЯЯРРССТТУУЖЖВВЬЬЫЫЗЗШШЭЭЩ ЩЧЧ

!!""##¤¤%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??ЮЮААББЦЦДДЕЕФФГГХХ
ИИЙЙККЛЛММННООППЯЯРРССТТУ УЖЖВВЬЬЫЫЗЗШШЭЭЩЩЧЧ__ЮЮААБ БЦЦДДЕЕФФГГХХИИЙЙККЛЛММНН ООПП
ЯЯРРССТТУУЖЖВВЬЬЫЫЗЗШШЭЭЩ ЩЧЧ

################################################## ##############################

Т Е С Т П У О К О Н Ч Е Н
БЛАГОДАРЮ ЗА ПРАВИЛЬНО ВЫПОЛНЕННУЮ РАБОТУ
################################################## ##############################

.



На принтер вместо кириллицы выдаёт строчные латинские?
Это справедливо, но ведь обходилось как-то на реальных железках?


http://savepic.ru/4505410.png

hobot
08.05.2013, 18:24
В текущей версии "эмулятора ДВК" число строк в буфере имитатора принтера увеличено до 2000.
Замечательно! )

Patron
08.05.2013, 18:44
На принтер вместо кириллицы выдаёт строчные латинские?Моя вина - драйвер LP на системном диске записан с неправильными установками.

Нужно выполнить команду


.SET LP CTRL


В любом случае полезно знать, как может изменяться "поведение" драйвера LP в зависимости от его настроек:


.HAND SY:LP/S

SET LP WIDTH=<десятичное значение>
SET LP [NO]CR
SET LP [NO]FORM0
SET LP [NO]HANG
SET LP [NO]LC
SET LP [NO]CTRL
SET LP [NO]TAB
SET LP CSR=<восьмеричное значение>
SET LP VECTOR=<восьмеричное значение>
SET LP ENDPAG=<десятичное значение>
SET LP [NO]BIT8
SET LP [NO]FORM
SET LP LENGTH=<десятичное значение>
SET LP SKIP=<десятичное значение>

hobot
14.05.2013, 20:19
Вот попробовал подобрать цвета более похожие на мой реальный ч/б монитор.




;(MS 6105 )
TerminalTextColor_RGB = 255,255,240
FrameBackgroundColor_RGB = 172,170,160
TerminalBackgroundColor_RGB = 50, 60, 55
;



http://savepic.ru/4534713.png

MiX
14.12.2013, 15:54
Привет всем!
Patron, эмулятор ещё развивается? Нельзя-ли добавить в него дизассемблер, надо для отладки.

Patron
14.12.2013, 16:31
Нельзя-ли добавить дизассемблер, надо для отладки.Встроенный в процессор дизассемблер там есть, но он обслуживает только Trap_To_04, выводя причину зависания в текстовый порт [DebugOut] ( в эмуляторе ДВК этот порт процессора подключен к консоли Debug ). Проблема в том, что включённый дизассемблер генерит каждую секунду около десяти мегабайтов листинга.

Можно добавить в эмулятор процессора состояние [DisAsm] ( тогда можно будет повесить на полосу статуса кнопку управления этим состоянием ) и текстовый порт [DisAsm], куда будет выводиться листинг.

Для дополнительного управления дизассемблером - можно добавить псевдоустройство CPUCSR с адресом 0177724, что позволит включать и выключать дизассемблер из отлаживаемой программы при помощи команд MOV #1,@#177724 и MOV #0,@#177724.

hobot
14.12.2013, 17:23
Не удержусь - напишу: честно подумал, что MY - готов )


Встроенный в процессор дизассемблер там есть, но он обслуживает только Trap_To_04, выводя причину зависания в текстовый порт [DebugOut] ( в эмуляторе ДВК этот порт процессора подключен к консоли Debug ). Проблема в том, что включённый дизассемблер генерит каждую секунду около десяти мегабайтов листинга.

Можно добавить в эмулятор процессора состояние [DisAsm] ( тогда можно будет повесить на полосу статуса кнопку управления этим состоянием ) и текстовый порт [DisAsm], куда будет выводиться листинг.

Для дополнительного управления дизассемблером - можно добавить псевдоустройство CPUCSR с адресом 0177724, что позволит включать и выключать дизассемблер из отлаживаемой программы при помощи команд MOV #1,@#177724 и MOV #0,@#177724.

Patron
14.12.2013, 17:55
Не удержусь - напишу: честно подумал, что MY - готовТам ещё работать и работать - эмулятор контроллера MY сложнее, чем эмулятор ДВК + эмулятор контроллера MX. В роли ДВК там выступает плата MY с процессором 1801ВМ1, а в роли "супер MX" - микросхема 1801ВП1-128. Но при этом работа там идёт сразу с двумя шинами МПИ, поэтому контроллер MY даже чем-то больше похож на УКНЦ, чем на ДВК.

hobot
14.12.2013, 18:58
Там ещё работать и работать - эмулятор контроллера MY сложнее, чем эмулятор ДВК + эмулятор контроллера MX. В роли ДВК там выступает плата MY с процессором 1801ВМ1, а в роли "супер MX" - микросхема 1801ВП1-128. Но при этом работа там идёт сразу с двумя шинами МПИ, поэтому контроллер MY даже чем-то больше похож на УКНЦ, чем на ДВК.

offtop

Вот всегда приводит меня к мысли в одном ящике получить УК-НЦ\КГД\КЦГД\КГМД-УК\КЖД-УК + сразу доработанный КОМ-порт (для HX а как же?), возможность подключения обычной pc-клавиатуры и VGA-дисплея )))
Мечты... мечты... Железезный EmuStudio мог бы выглядеть так...
https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSP6-VWJvE1-ZK0jKu6KtLgd7vffxLAJWOcOb6vfZbxWBW-oYxUjQ
:smile:

Alex_K
14.12.2013, 20:10
Там ещё работать и работать - эмулятор контроллера MY сложнее, чем эмулятор ДВК + эмулятор контроллера MX. В роли ДВК там выступает плата MY с процессором 1801ВМ1, а в роли "супер MX" - микросхема 1801ВП1-128. Но при этом работа там идёт сразу с двумя шинами МПИ, поэтому контроллер MY даже чем-то больше похож на УКНЦ, чем на ДВК.
А если еще и КЦГД эмулируете, то и три шины МПИ будет. А большая сложность там будет в том, что контроллер MY получает доступ к адресному пространству материнской платы ДВК через механизм ПДП. В УКНЦ нигде ПДП не используется. Так что надо будет хорошо изучить работу троицы из 1801ВП1-095 и -096.

Titus
14.12.2013, 20:29
Так что надо будет хорошо изучить работу троицы из 1801ВП1-095 и -096.

Да уж давно пора не изучить, а сточить эту братию, сфоткать кристалл и понять точно, как это работает. Вон, таймер в УКНЦ - сколько исследований, и все равно до конца не поняли, потому что разбираем последствия, а не причины.

Patron
14.12.2013, 21:24
А большая сложность там будет в том, что контроллер MY получает доступ к адресному пространству материнской платы ДВК через механизм ПДП. В УКНЦ нигде ПДП не используется. Так что надо будет хорошо изучить работу троицы из 1801ВП1-095 и -096.Для начала ПДП будет эмулироваться очень упрощённо, взаимодействие с устройствами на чужой шине будет невозможно, поэтому не используемые в прошивке супер-экстремальные возможности контроллера MY ( вроде ввода символов с порта клавиатуры ДВК ) работать не будут. Что же до совместного доступа процессоров к памяти, то эмуляторы обоих процессоров будут работать с общей памятью, вообще не думая друг о друге.

Относительно реализации окна ДМА в КМД - есть любопытное наблюдение. Чтобы изменить границу окна - прошивка пишет одинаковые байты в старший и младший байты регистра данных. В итоге эмулируется это так, что если при записи процессором КМД в регистр данных старший и младший байты совпадают - изменяется базовый адрес окна.

Alex_K
14.12.2013, 21:44
Для начала ПДП будет эмулироваться очень упрощённо, взаимодействие с устройствами на чужой шине будет невозможно, поэтому не используемые в прошивке супер-экстремальные возможности контроллера MY ( вроде ввода символов с порта клавиатуры ДВК ) работать не будут. Что же до совместного доступа процессоров к памяти, то эмуляторы обоих процессоров будут работать с общей памятью, вообще не думая друг о друге.
Ну эти две подпрограммки для взаимодействия с регистрами терминала де-факто не используются. А вот со стороны материнки КМД взаимодействует сам с собой, это подпрограмма по адресу 2722.

Относительно реализации окна ДМА в КМД - есть любопытное наблюдение. Чтобы изменить границу окна - прошивка пишет одинаковые байты в старший и младший байты регистра данных. В итоге эмулируется это так, что если при записи процессором КМД в регистр данных старший и младший байты совпадают - изменяется базовый адрес окна.
А заносит он два одинаковых значения только потому, что доступ к 22-разрядной адресной шине реализуется с помощью двух микросхем 1801ВП1-095, при этом AD21-AD19 идут с младшего байта, а AD18-AD14 - со старшего.

Titus
14.12.2013, 21:48
Обьясните, чем так хорош этот MY и почему его сделали таким сложным?

Alex_K
14.12.2013, 21:57
Обьясните, чем так хорош этот MY и почему его сделали таким сложным?
Так как собственно контроллер дисковода сделан на 1801ВП1-128, которая не могёт ни ПДП, ни прерываний, то программа обмена с дисководом вынуждена занимать все процессорное время с запретом всех прерываний. Это недопустимо для систем реального времени. Потому и оформили данный контроллер с отдельным процессором. А так дал ему команду, он её выполнит и сообщил о результате. Почти как в УКНЦ. А ещё прошивки -092, неофициальная -093 и -255 могут исполнять подпрограмму пользователя в памяти вычислителя через окно доступа.

Patron
14.12.2013, 22:19
доступ к 22-разрядной адресной шине реализуется с помощью двух микросхем 1801ВП1-095, при этом AD21-AD19 идут с младшего байта, а AD18-AD14 - со старшего.А какие биты регистра данных на какие AD подключены ?

Alex_K
14.12.2013, 22:33
А какие биты регистра данных на какие AD подключены ?
Разряды 15-13 - не используются;
разряды 12-08 - AD18-AD14;
разряды 07-05 - AD21-AD19;
разряды 04-00 - не используются.

Поэтому, чтобы не путаться, заносить одинаковые значения надо в оба байта. Все это видно на схеме КМД, микросхема D15 обрабатывает старший байт, а D16 - младший, соответственно для РК и РД на обеих магистралях.

Titus
14.12.2013, 22:48
А ещё прошивки -092, неофициальная -093 и -255 могут исполнять подпрограмму пользователя в памяти вычислителя через окно доступа.
Эти неофициальные возможности в каких-либо программах применялись?

Alex_K
14.12.2013, 22:56
Эти неофициальные возможности в каких-либо программах применялись?
Не знаю, с ДВК был знаком только как пользователь. У Владимира Полетаева есть программка определения номера прошивки с использованием этих недокументированных возможностей.
Хотя еще вроде для КЦГД защита дискеты с KEYGP делалась.

hobot
15.12.2013, 00:11
Alex_K, ещё KZ.SYS ! есть-был у Владимира Полетаева)

http://s5.hostingkartinok.com/uploads/images/2013/12/54a4d92da0e1ed03ab0a9b8c9f19b587.jpg

---------- Post added 15.12.2013 at 00:00 ---------- Previous post was 14.12.2013 at 23:36 ----------

+++ Покопался в архиве там только SYS !!!
Суть KZ.SYS на первых двух листах, сейчас сфоткаю !!!

---------- Post added at 00:11 ---------- Previous post was at 00:00 ----------



(!) Добавил фотки (!)

http://s5.hostingkartinok.com/uploads/images/2013/12/59ae9c1aa3fbdf70adbd980f21a10daa.gif

http://s5.hostingkartinok.com/uploads/images/2013/12/25dcde5aa707e4d8631cf47d51af64c5.gif


А дальше непосредственно исходник самого драйвера на макро-11.
Если нужно могу все листы сфотать.

MiX
16.12.2013, 03:47
Patron, А может-ли эмулятор работать с реальными дисководами?

Patron
19.12.2013, 15:39
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_19.12.13_00-19 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_19.12.13_00-19.rar)

Изменения:

1. Внесены изменения, описанные ЗДЕСЬ (http://zx.pk.ru/showthread.php?p=653682#post653682).

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

2.1. В объект 1801VM1 добавлены:

2.1.1. Состояние DisAsm, которое включает/выключает встроенный дизассемблер.
2.1.2. Состояние StepMode, которое включает/выключает режим пошагового выполнения команд. При включении StepMode - всегда включается DisAsm. При выключении DisAsm - всегда выключается StepMode.
2.1.3. Текстовый порт DisAsm, в который выводится листинг дизассемблирования исполняемых команд.
2.1.4. Параметры DisAsmBottomAddr и DisAsmTopAddr, позволяющие задать нижнюю и верхнюю границы окна дизассемблирования.
2.1.5. Скрытый параметр MaxLoopCommandsToHide ( значение по умолчанию 24 ), управляющий "сжатием" листинга циклов. В пошаговом режиме сжатие листинга циклов отключается.


3. В модуль CPU_module добавлен объект CPUCSR, создающий на шине отладочный порт по адресу, задаваемому параметром CPUCSR_Address ( значение по умолчанию 0177724 ). Бит 00 этого порта управляет состоянием DisAsm, а бит 01 - управляет состоянием StepMode подключенного к шине процессора.

4. В комплект поставки включён файл конфигурации DisAsm.cfg, выводящий листинг дизассемблирования в отдельное окно.

5. В образ HDSYS.DSK добавлены файлы CPUCSR.MAC и CPUCSR.SAV, содержащие пример взаимодействия отлаживаемой программы с отладочным портом. Для отключения дизассемблирования тела обработчика EMT - в файле конфигурации DisAsm.cfg нужно изменить параметр DisAsmTopAddr c 0177776 на ( например ) 040000.

Patron
19.12.2013, 15:44
Изменение эмулируемой конфигурации.

Использование встроенного дизассемблера.
---------------------------------------------------------------

Файл конфигурации DisAsm.cfg содержит пример использования дизассемблера, встроенного в эмулятор процессора. Для отображения листинга дизассемблирования создаётся дополнительная консоль DisAsm, которая находится в отдельном окне:



[objects]

DisAsm = Ядро:Console


[links]
CPU [DisAsm] > DisAsm


[DisAsm.ini]
TabTitle=""
SeparateWindow_X0_px=0
SeparateWindow_Y0_px=0
SeparateWindow_DX_px=800
SeparateWindow_DY_px=600
InitialStateOf[SeparateWindow]=1
SaveChangesFor[SeparateWindow]=1
InitialStateOf[ControlBar]=0
SaveChangesFor[ControlBar]=1
InitialStateOf[StatusBar]=1
SaveChangesFor[StatusBar]=1
DumpMode=1
PrinterMode=0
InitialStateOf[Log]=0
SaveChangesFor[Log]=1


http://s5.hostingkartinok.com/uploads/images/2013/12/36f05f4256214788caf7f339312ad8b1.png


На полосе окна DisAsm находятся виджеты кнопок, подключенных к состояниям объектов CPU и bus:



[objects]

DisAsm_Button = Ядро:SB_StatePushButton
StepMode_Button = Ядро:SB_StatePushButton
Step_Button = Ядро:SB_StateFlashButton
DisAsmLog_Button = Ядро:SB_StateFlashButton
CLS_Button = Ядро:SB_StatePushButton


[links]

DisAsm + ( DisAsm_Button + CPU ) | ( StepMode_Button + CPU ) | ( Step_Button + bus )
DisAsm + ( DisAsmLog_Button + DisAsm ) | ( CLS_Button + DisAsm )


[DisAsm_Button.ini]
SB_Part_Data=nPosition[1] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode = 2
IsInverted = 0
ButtonON_Text = "DisAsm"
ButtonOFF_Text = "DisAsm"
ButtonWidth = 70
ButtonHeight = 18
ButtonFontSize = 12
ButtonFontWeight = 600
StateName = "DisAsm"




[StepMode_Button.ini]
SB_Part_Data=nPosition[2] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode = 2
IsInverted = 0
ButtonON_Text = "Step Mode"
ButtonOFF_Text = "Step Mode"
ButtonWidth = 90
ButtonHeight = 18
ButtonFontSize = 12
ButtonFontWeight = 600
StateName = "StepMode"



[Step_Button.ini]
SB_Part_Data=nPosition[3] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode = 2
IsInverted = 0
ButtonON_Text = "Step"
ButtonOFF_Text = " "
StateName = Pause
ButtonWidth = 60
ButtonHeight = 18
ButtonFontSize = 12
ButtonFontWeight = 600

PushedButton_Text_X_Offset_Px = 0
PushedButton_Text_Y_Offset_Px = 3
PoppedButton_Text_X_Offset_Px = 0
PoppedButton_Text_Y_Offset_Px = 3
ButtonON_TextColor = 0,0,0
ButtonOFF_TextColor = 0,0,0
ButtonON_Background = 210,210,110
ButtonOFF_Background = 1,0,0
Is_PoppedButton_Border_ButtonLike = 0
Is_PushedButton_Border_ButtonLike = 0
DoCenterAlignButtonText = 1
LightsOFF_StateName=Power




[DisAsmLog_Button.ini]
SB_Part_Data=nPosition[4] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode = 2
IsInverted = 0
ButtonON_Text = "Log"
ButtonOFF_Text = "Log"
StateName = Log
ButtonWidth = 60
ButtonHeight = 18
ButtonFontSize = 17
ButtonFontWeight = 600

PushedButton_Text_X_Offset_Px = 0
PushedButton_Text_Y_Offset_Px = 1
PoppedButton_Text_X_Offset_Px = 0
PoppedButton_Text_Y_Offset_Px = 0
ButtonON_TextColor = 0,0,0
ButtonOFF_TextColor = 0,0,0
ButtonON_Background = 160,205,160
ButtonOFF_Background = 1,0,0
Is_PoppedButton_Border_ButtonLike = 1
Is_PushedButton_Border_ButtonLike = 1
DoCenterAlignButtonText = 1
LightsOFF_StateName=Power




[CLS_Button.ini]
SB_Part_Data=nPosition[5] | nPriority[0] | bHidden[0]
TextFieldWidth_Px=0
TextFieldText=
ButtonPushMode = 1
IsInverted = 0
ButtonON_Text = "Clear"
ButtonOFF_Text = "Clear"
ButtonWidth = 60
ButtonHeight = 18
ButtonFontSize = 12
ButtonFontWeight = 600
StateName = "ClearScreen"


В пошаговом режиме эмуляция ставится на паузу после выполнения процессором каждой следующей команды. Кнопка [ Шаг ] - это просто иначе оформленная кнопка [ Пауза ], поэтому она активируется не только в пошаговом режиме процессора, но и при любой постановке эмуляции на паузу:

http://s6.hostingkartinok.com/uploads/images/2013/12/86576b91d51900b9e7601288cc746e1b.png


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


При нажатии кнопки [ Лог ] - листинг начинает писаться в файл DisAsm.log, при этом в листнг попадают только те строки, которые были выведены на консоль когда кнопка [ Лог ] уже была нажата. Чтобы сохранить строки, выведенные на консоль до этого - их можно скопировать в буфер обмена, нажав клавишу <PrintScreen> ( при этом копируются все строки от верхней, видимой на экране, до последней, выведенной на консоль, поэтому, чтобы скопировать в буфер обмена весь текстовый буфер консоли - нужно сначала промотать содержимое экрана до самого верха при помощи полосы прокрутки или колеса мыши ).


В данной конфигурации на шине присутствует отладочный порт, создаваемый объектом CPUCSR:



[objects]

CPUCSR = CPU_module:CPUCSR


[links]

bus & CPU | CpuBoard | TerminalPort | PrinterPort
bus & Booter | TerminalPort2 | MX | HD | CPUCSR


[CPUCSR.ini]
CPUCSR_Address = 0177724



Пример взаимодействия отлаживаемой программы с отладочным портом эмулятора находится на системном диске в файлах CPUCSR.SAV и CPUCSR.MAC:



;
; Тест отладочного регистра эмулятора процессора ( 0177724 ).
;
;
; Бит 01 включает/выключает дизассемблер
; ( при выключении - выключает и пошаговый режим ).
;
; Бит 02 включает/выключает пошаговый режим
; ( при включении - включает и дизассемблер ).
;
;
.MCall .Exit

START:

Mov #2, @#177724 ; Включает дизассемблер в пошаговом режиме.

Mov #100., R0
Mov #10., R1
Mov #4, R2
Clr R3

BiC #2, @#177724 ; Выключает пошаговый режим.

1$:
Inc R3
SOB R0, 1$

BiS #2, @#177724 ; Включает пошаговый режим.

Inc R1
EMT 341
Inc R2
Inc R3

Mov #0, @#177724 ; Выключает дизассемблер.

;================================

Dec R1
Dec R2
Dec R3

;================================

Mov #1, @#177724 ; Включает дизассемблер в потоковом режиме.

Mov #12., R0
2$:
Dec R0
BEq 3$
Cmp R0, #5
BLE 2$
SOB R0, 2$
3$:

;================================

22$:
Inc R1
Inc R2
Inc R3
Inc PC
Br 22$

;================================

Mov #0, @#177724 ; Выключает дизассемблер.

.Exit

.End START
;


Запуск CPUCSR.SAV осуществляется в окне терминала, по команде:

.R CPUCSR


Чтобы в листинг не включался текст системного обработчика команды EMT - в файле конфигурации DisAsm.cfg нужно изменить верхнюю границу окна дизассемблирования:



[CPU.ini]
CPU_Frequency_KHz = 5300
CPU_SpeedLimit_KIPS =True

DisAsmBottomAddr = 0
DisAsmTopAddr = 040000
;; DisAsmTopAddr = 0177776
InitialStateOf[DisAsm]=0
SaveChangesFor[DisAsm]=1
InitialStateOf[StepMode]=0
SaveChangesFor[StepMode]=1

hobot
19.12.2013, 21:44
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_19.12.13_00-19 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_19.12.13_00-19.rar)


CPUCSR.MAC 3 19-Dec-2013 1597
CPUCSR.SAV 2 19-Dec-2013 1600 < UNUSED > 143 1602
51 Files, 1588 Blocks
143 Free blocks

.CPUCSR

?MON-F-Trap to 4 001006

.

Что это за штука, которая ТРАПиться? )
И ещё кажется что-то обновилось в SYS файлах на системном
разделе? Нет?

Есть ли планы полноценного WEB-ресурса посвящённого
эмулятору или об этом пока рано говорить?

И конечно огромная благодарность за развитие и поддержку лучшего в мире эмулятора ДВК! )

Patron
19.12.2013, 22:00
Что это за штука, которая ТРАПиться?Отладочный регистр есть на шине только тогда, когда в конфиге создан и подключен к шине объект CPUCSR. Это делается только в конфиге DisAsm.cfg. Если загрузить конфиг DisAsm.cfg и запустить там CPUCSR.SAV - обращения по адресу 0177724 пройдут успешно. Во всех остальных случаях - будет Trap_To_04.

MiX
23.12.2013, 15:16
Patron, Что-то тест не проходит. Запускаю эмулятор в конфиге DisAsm, нажимаю сброс 2 раза, набираю T0 ,enter. Тест доходит до набора "1 2 3 4 j c u k" и когда я набираю j после 1234 он пишет 000404 , @J?,@160556

Patron
23.12.2013, 15:44
Что-то тест не проходит. Запускаю эмулятор в конфиге DisAsm, нажимаю сброс 2 раза, набираю T0 ,enter. Тест доходит до набора "1 2 3 4 j c u k" и когда я набираю j после 1234 он пишет 000404 , @J?,@160556Это из-за того, что встроенные тесты ДВК не дружат с прерыванием таймера. Если выключить таймер до набора T0 - всё проходит.

---------- Post added at 14:44 ---------- Previous post was at 14:41 ----------

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

MiX
23.12.2013, 16:04
Если выключить таймер до набора T0 - всё проходит.

У меня с выключенным таймером доходит до 6 теста и пишет дефект 71 ,0020466 ,@ ?

Patron
23.12.2013, 16:34
У меня с выключенным таймером доходит до 6 теста и пишет дефект 71 ,0020466 ,@ ?Это потому что по адресу 177170 пока не эмулируется контроллер RX для дисков DX/DY.

hobot
25.12.2013, 21:54
Раньше вроде бы проскакивал\определял? Или это норм?


Адрес Модуль Длина
------ ------ -------
167426 HD 117.
160000 IOPAGE 1931.
156220 RMON 440.
153550 EM 660.
147230 SL 1128.
137226 USR 2049.
001000 ..BG.. 24139.

.SYS

RT-11SJ V05.04 G
.TTINQ
c?TTINQ-W-Unknown terminal type

.Z
!UCL-E-Bad command or file name
.

.

.TTINQ
c?TTINQ-W-Unknown terminal type


И терминал в [hold] автоматом уходит! )

http://savepic.net/4129263.png


BCC 50$ ;IF CC WE GOT AN ANSWER
20$: .PRINT #EFAIL ;IF CS INQUIRE FAILED
BISB #WARN$,@#$USRRB ;SET EXIT STATUS
30$: CALL TTVIS ;VISUALIZE ANSWERBACK STRING
BCS 40$ ;IF CS NO ANSWER RECEIVED
.PRINT #TTANS ;PRINT ANSWER STRING
.PRINT #BUFF ;
40$: .EXIT ;EXIT

50$: MOV #IDTAB,R3 ;POINT TO TERMINAL ID TABLE
MOV #IDSIZ,R2 ;SET TABLE SIZE
60$: CMP R1,(R3)+ ;FOUND TERMINAL ID?
BEQ 70$ ;YES
TST (R3)+ ;SKIP TERMINAL NAME ADDRESS
DEC R2 ;MORE IDS AVAILABLE?
BNE 60$ ;YES, GO FOR NEXT
BR 20$ ;NO, TERMINAL TYPE UNKNOWN


:confused_std:

Patron
25.12.2013, 22:56
Раньше вроде бы проскакивал\определял?Для проверки - добавил файл TTINQ.SAV (http://zx.pk.ru/attachment.php?attachmentid=41671) в образ HDSYS.DSK из комплекта поставки эмулятора и запустил:


.TTINQ
?TTINQ-I-Terminal type is VT100 in VT52 mode
?TTINQ-I-Answer: <033>/Z

hobot
25.12.2013, 23:38
Для проверки - добавил файл TTINQ.SAV в образ HDSYS.DSK из комплекта поставки эмулятора и запустил:
У меня немного другая версия наверно была, но и этот по ссылке такая же ошибка в ноль как и в первом сообщении, скрин я уже сделал, могут какие-то
настройки у меня влиять? Не зависимо с какого раздела запускаю (то есть версия монитора), файл pdp-11.exe у меня 856064-размер, от 19.12.2013

---------- Post added at 23:38 ---------- Previous post was at 23:33 ----------

http://s3.hostingkartinok.com/uploads/images/2013/12/70449eb00fe367624cfa48471e579da7.png

Patron
26.12.2013, 02:12
могут какие-то настройки у меня влиять?Виновата большая скорость эмулируемого процессора. При скорости эмуляции 2 MIPS и меньше - всё работает.

Проблемное место в исходнике:


RETRY = 1000 ;TTINR RETRY COUNT


Если увеличить задержку в 10 .. 20 раз - программе немного полегчает. А так - при высокой скорости эмуляции задержка кончается раньше, чем начинает приходить ответ от терминала.

Patron
30.12.2013, 20:43
Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_30.12.13_17-00 (http://emulator.pdp-11.org.ru/DVK/distr/DVK_Emulator_30.12.13_17-00.rar)

Изменения:

1. Внесены изменения, описанные ЗДЕСЬ (http://zx.pk.ru/showthread.php?p=657325#post657325).

2. В модуль CPU_module добавлены объекты MY_Board и MY_BusBridge. В модуль DSK_module добавлен объект VP1-128.

3. Добавлен файл конфигурации MY.cfg, эмулирующий контроллер КМД ( этот файл конфигурации предназначен для импорта виртуального устройства в других файлах конфигурации ). Полная эмуляция MFM-дискеты осуществляется только для текстовых TRK-образов. При работе с двоичными DSK-образами эмулируются только базовые функции КМД.

4. В файлы конфигурации default.cfg и DisAsm.cfg добавлен импорт виртуального устройства из файла конфигурации MY.cfg. В файл HDSYS.DSK добавлен драйвер MY.SYS.

5. Добавлен файл MY80_System.DSK, содержащий DSK-образ системного диска MY.

6. Добавлен файл конфигурации ДВК-1_MY80.cfg, эмулирующий ДВК-1 с контроллером КМД.

При открытии файла конфигурации ДВК-1_MY80.cfg на экране появляется приглашение пульта ДВК:


160556
@



Загрузка RT-11 осуществляется следующим образом:



160556
@172140/000040 37
172142/000004 0^
172140/000000 /000040
@G
SL V08.00 [SW] Сторожевых С.В. 1988

RT-11SJ (Y) V05.04 G



...

Alex_K
30.12.2013, 21:26
СПАСИБО за MY!


При работе с двоичными DSK-образами эмулируются только базовые функции КМД.
А в чем ограничения? Можно поподробнее.

Patron
30.12.2013, 22:15
А в чем ограничения? Можно поподробнее.Когда к эмулятору MY подключен файл DSK-образа - он непрерывно синхронизируется с внутренним TRK-представлением в эмуляторе. Если что-то записать в эмуляторе на MY - это сразу же появится в файле DSK-образа, а если скорпировать в Windows что-то в подключенный DSK-образ - это сразу же появится во внутреннем представлении образа в эмуляторе. Мне лень было проверять, изменялся ли DSK-образ, поэтому при каждом чтении c дорожки диска MY в эмуляторе - эта дорожка сначала пересоздаётся из соответствующей части DSK-образа ( не чаще одного раза в три секунды ). Поэтому, если в эмуляторе вызвать команду КМД: "Запись с меткой", то это приведёт к разрушению подключенного DSK-образа, а если вызвать команду КМД: "Чтение с меткой" - блоки данных с меткой будут отсутствовать ( при пересоздании образа дорожки из данных DSK-образа все блоки данных получают стандартные заголовки A1A1A1FB ).

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

Alex_K
30.12.2013, 22:48
... Поэтому, если в эмуляторе вызвать команду КМД: "Запись с меткой", то это приведёт к разрушению подключенного DSK-образа, а если вызвать команду КМД: "Чтение с меткой" - блоки данных с меткой будут отсутствовать ( при пересоздании образа дорожки из данных DSK-образа все блоки данных получают стандартные заголовки A1A1A1FB ).
Ну это невелика потеря. Да и вряд ли это где используется практически.

Если в диалоге подключения диска указать несуществующий файл с расширением .TRK - эмулятор создаст чистый неформатированный TRK-образ, хранящий данные диска в том виде, в котором с ними работает эмулятор.
А это я уже попробовал. Увидел, что можно использовать "сырой образ", но нигде не увидел, как создать. При открытии набил несуществующее имя, ну и эмулятор предложил создать. Как я увидел, маркеры записываются в нижнем регистре, как "a1".

---------- Post added at 22:48 ---------- Previous post was at 22:41 ----------

Когда-то Владимир Полетаев предлагал способ определения номера ПЗУ в КМД - здесь (https://groups.google.com/forum/#!topic/fido7.mo.dec/8maPi71f_WI).
Попробовал. Вот результат:

.TY KMDID.MAC
.TITLE KMDID
.MCALL .PRINT,.EXIT
START: .PRINT #HEAD
10$: BIT #40,@#172140
BEQ 10$
MOV #35,@#172140
20$: TSTB @#172140
BPL 20$
MOV #PROG,@#172142
30$: BIT #40,@#172140
BEQ 30$
.PRINT NAME
.EXIT
PROG: MOV #KMD255,R0
CMP @#10004,#NOP
BEQ 10$
MOV #KMD092,R0
10$: MOV R0,@#NAME+40000
RETURN
NAME: .WORD KMD091
HEAD: .ASCII <16>"w kmd USTANOWLENO pzu 1801re1-"<17><200>
KMD091: .ASCIZ "091"
KMD092: .ASCIZ "092"
KMD255: .ASCIZ "255"
.END START


.KMDID
В КМД установлено ПЗУ 1801РЕ1-255

.

Patron
30.12.2013, 23:00
Как я увидел, маркеры записываются в нижнем регистре, как "a1".Да, такая запись позволяет отличать байты с пропущенным синхроимпульсом, никак не мешая считыванию значений байтов функцией sscanf:


char acHex[] = "0xFF";
int nByte;

for( int i = 0 ; i < nUsedBytes ; i++ )
{
while( *pStr && *pStr != ' ' ){ pStr++; }
while( *pStr && *pStr == ' ' ){ pStr++; }
acHex[2] = pStr[0];
acHex[3] = pStr[1];

sscanf( acHex, "%x", &nByte );

UnitRec[nUnit].Track[nStoredTrack + nSide*81].aBytes[i] = nByte;

bool bFlag = false;
if( acHex[2] == 'a' && acHex[3] == '1' )
{
bFlag = true;
}
UnitRec[nUnit].Track[nStoredTrack + nSide*81].aFlags[i] = bFlag;
}


---------- Post added at 22:00 ---------- Previous post was at 21:52 ----------


В КМД установлено ПЗУ 1801РЕ1-255Файл образа прошивки задаётся в MY.cfg в разделе [MYBoard.ini]:



[MYBoard.ini]
RAM_Latency_NS = 1000
ROM_Latency_NS = 250
ROM_DataFile = 255.dat
SEL1_Data=010002

Alex_K
30.12.2013, 23:05
Файл образа прошивки задаётся в MY.cfg в разделе [MYBoard.ini]
Это я видел. А будут ли поддерживаться -091, -092 и неофициальная -093? Там же идет настройка адреса SRAM по адресу 177760.

Patron
30.12.2013, 23:18
А будут ли поддерживаться -091, -092 и неофициальная -093? Там же идет настройка адреса SRAM по адресу 177760.Можно подставить и посмотреть, что получится. По адресу 177760 у меня на шине КМД ничего не эмулируется, поэтому при обращении туда будет Trap_To_04, о чём можно будет узнать в консоле "Debug" окна "MY".