PDA

Просмотр полной версии : RT-11 для чайников



Страницы : 1 [2]

AFZ
16.06.2019, 18:10
Да знаешь, я как-то догадывался. Просто у меня ни малейшего желания изучать этот BSTRAP, если бы ты подсказал, что набрать по клавише F7, я бы глянул окрестности, а так, идёт оно лесом.

Hunta
16.06.2019, 18:40
PRO$S

AFZ
16.06.2019, 18:49
Таки заглянул в BSTRAP 5.1. Если параметр BF - единица (как я понял, это генерация FB/XM-монитора) и RTE$M - ноль, то есть генерится не SJ и не RTEM, то параметр PRO$S взводится в единицу. То есть, ПРОшные дела генерятся всегда, если генерится не SJ и не RTEM.

Hunta
16.06.2019, 18:55
есть, ПРОшные дела генерятся всегда, если генерится не SJ и не RTEM.

Предположим, на ДВМ-2М ( МС0502 ) RT-11 SJ V5.00

Как обычно - о чём угодно, кроме ответа на заданный вопрос

AFZ
16.06.2019, 19:10
А я его (заданного вопроса) не видел. Впрочем, косвенный ответ есть - на RT-11 SJ V5.00 не выйдет вообще. На RT-11 FB V5.01+ можно попытаться подёргаться, но будет очень сложно - придется переписать некоторые кусочки BSTRAP (те, которые генерятся по PRO$S) и написать свой аналог драйвера PI.SYS. Объем работ такой, что достижение результата сомнительно.

Hunta
16.06.2019, 19:34
А я его (заданного вопроса) не видел
А какого тогда влез?

Впрочем, косвенный ответ есть - на RT-11 SJ V5.00 не выйдет вообще.

Так что, боюсь, нужно будет лезть в исходники ядра и смотреть, что DEC сделала для поддержки Pro в более новых версиях RT
Я сказал - что похожая ситуация в Pro и надо посмотреть, что DEC сделал для того, что бы выкрутится. Где хоть слово, что надо ориентироваться на Pro?
То есть как обычно - о чем угодно, только не на тему вопроса.

Оффтопить закончил

litwr
25.11.2019, 20:36
Помогите, пожалуйста, опять собрать данные с настоящего PDP-11 железа любых моделей. Уважаемый form помог пару лет назад с PDP-11/83, но программка для пи-затвора модернизировалась и нужны данные и по этой машине тоже. Тут программки для RT11 и Unix (а также голых БК 0010 и 0011) - https://github.com/litwr2/rosetta-pi-spigot/tree/master/pdp-11
Собираю данные по прогонам на 100, 1000 и 3000 цифрах. Возможно BQT на днях сделает программку для RSX. Спасибо

nzeemin
25.11.2019, 22:06
Помогите, пожалуйста, опять собрать данные с настоящего PDP-11 железа любых моделей. Уважаемый form помог пару лет назад с PDP-11/83, но программка для пи-затвора модернизировалась и нужны данные и по этой машине тоже. Тут программки для RT11 и Unix (а также голых БК 0010 и 0011) - https://github.com/litwr2/rosetta-pi-spigot/tree/master/pdp-11
Собираю данные по прогонам на 100, 1000 и 3000 цифрах. Возможно BQT на днях сделает программку для RSX. Спасибо

Собрал .SAV файлы для RT-11, см. в аттаче.

Под эмулятором UKNCBTL:


MZ0:\MACRO(12:00:25)> RU PIEIS
number pi calculator v5 (EIS)
number of digits (up to 6188)? 1000
31415926535897932384626433832795028841971693993751 058209749445923078164062862089
98628034825342117067982148086513282306647093844609 550582231725359408128481117450
28410270193852110555964462294895493038196442881097 566593344612847564823378678316
52712019091456485669234603486104543266482133936072 602491412737245870066063155881
74881520920962829254091715364367892590360011330530 548820466521384146951941511609
43305727036575959195309218611738193261179310511854 807446237996274956735188575272
48912279381830119491298336733624406566430860213949 463952247371907021798609437027
70539217176293176752384674818467669405132000568127 145263560827785771342757789609
17363717872146844090122495343014654958537105079227 968925892354201995611212902196
08640344181598136297747713099605187072113499999983 729780499510597317328160963185
95024459455346908302642522308253344685035261931188 171010003137838752886587533208
38142061717766914730359825349042875546873115956286 388235378759375195778185778053
2171226806613001927876611195909216420198 52.78
MZ0:\MACRO(12:01:51)>


То же самое на EmuStudio 0.12f (УКНЦ) - 32.98

Titus
25.11.2019, 22:52
То же самое на EmuStudio 0.12f (УКНЦ) - 32.98
EmuStudio работает несколько быстрее реала пока что.

Arseny
26.11.2019, 21:19
УКНЦ (Квант)
PIEIS
100 - 0.56
1000 - 46.20
3000 - 414.44
PINOEIS
100 - 1.48
1000 - 129.16
3000 - 1158.94

Hunta
28.11.2019, 20:59
На 1201.2018


@B
$ZF5

RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM

.RU ZF:PIEIS
number pi calculator v5 (EIS)
number of digits (up to 6708)? 1000
31415926535897932384626433832795028841971693993751 058209749445923078164062862089
98628034825342117067982148086513282306647093844609 550582231725359408128481117450
28410270193852110555964462294895493038196442881097 566593344612847564823378678316
52712019091456485669234603486104543266482133936072 602491412737245870066063155881
74881520920962829254091715364367892590360011330530 548820466521384146951941511609
43305727036575959195309218611738193261179310511854 807446237996274956735188575272
48912279381830119491298336733624406566430860213949 463952247371907021798609437027
70539217176293176752384674818467669405132000568127 145263560827785771342757789609
17363717872146844090122495343014654958537105079227 968925892354201995611212902196
08640344181598136297747713099605187072113499999983 729780499510597317328160963185
95024459455346908302642522308253344685035261931188 171010003137838752886587533208
38142061717766914730359825349042875546873115956286 388235378759375195778185778053
2171226806613001927876611195909216420198 31.20
.

Hunta
29.11.2019, 06:44
Вопрос не для этой темы, но поскольку она в начале списка... Сам вопрос:

- Что уважаемые пользователи RT могу сказать про зависание RT-11 на Ctrl/S?

То есть после нажатия вывод, как и положено, приостанавливается, а вот Ctrl/Q не оказывает видимого эффекта. Обнаружен на нескольких вариантах версии 5.6 на физических машинах. В эмуляторе Патрона пока не скажу, та система, которая идёт с ним, ведёт себя как положено, другие попробую сегодня вечером.

Hunta
30.11.2019, 14:13
Система с эмулятора Патрона так же зависает по Ctrl/S..

hobot
30.11.2019, 15:05
Система с эмулятора Патрона так же зависает по Ctrl/S..
не воспроизводится зависание, на моём конфиге все варианты дефолтных (из поставки)
версий монитора корректно выходят из HOLD по CTRL\Q

Hunta
30.11.2019, 15:21
Система с эмулятора Патрона так же зависает по Ctrl/S..
Уточнение. Проблема при работе не под эмулятором, а при работе на реальном железе.

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

Вдогонку. Сильно похоже, что это проблема именно RT, а не платы 1201.2018, потому что RSX на этой плате вполне нормально реагирует на Ctrl/S-Ctrl/Q

litwr
30.11.2019, 17:17
УКНЦ (Квант)
PIEIS
100 - 0.56
1000 - 46.20
3000 - 414.44
PINOEIS
100 - 1.48
1000 - 129.16
3000 - 1158.94

Очень вам благодарен за эти результаты. Однако помогите уточнить некоторые детали. Какую версию RT-11 вы использовали? Какие числа выводились для обоих версий (eis, no-eis) для максимального числа цифр? Взял почти наугад 6188 и 6108. Интересно было бы получить и данные с вашего ДВК-3.
Результаты добавлены в таблицу - http://litwr2.atspace.eu/pi/pi-spigot-benchmark.html
Там ещё добавлены данные от BQT от PDP-11/93 - быстрейшей PDP-11, которая на пи-затворе отстала от PDP-11/70 (тут быстрее деление) и даже от PDP-11/83 (из тормознутости 2.11bsd, а также из-за возможно неверной аппроксимации для PDP-11/83 - нужны новые данные). Данные по RSX пока не привожу, там нужны дополнительные проверки.

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


На 1201.2018


@B
$ZF5

RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM


Извините, но не знаю, что означает 1201.2018. He могли бы датьт ссылку на данные по этой плате? Пожалуйста, сообщайте данные по 100, 1000 и 3000 цифрам. А также по предельному числу цифр в выбранной ОС. Спасибо

Hunta
30.11.2019, 17:53
Извините, но не знаю, что означает 1201.2018
https://zx-pk.ru/threads/30345-ms1201-2018.html


Пожалуйста, сообщайте данные
Максимальное число цифр - 6596
100 - 0.38
1000 - 31.22
3000 - 276.44

Arseny
30.11.2019, 19:47
Очень вам благодарен за эти результаты. Однако помогите уточнить некоторые детали. Какую версию RT-11 вы использовали?
RT-11SJ v.5.02

Какие числа выводились для обоих версий (eis, no-eis) для максимального числа цифр?
eis - 6344
no-eis - 6260

litwr
30.11.2019, 21:44
RT-11SJ v.5.02

eis - 6344
no-eis - 6260

Благодарю вас, все пофиксил. Интересно, а не пробовали на УКНЦ какой-нибудь Юникс? Вакуленко с Брухисом когда-то в минимальном объёме смогли Юникс даже на БК с 32 кб запустить.

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


https://zx-pk.ru/threads/30345-ms1201-2018.html


Максимальное число цифр - 6596
100 - 0.38
1000 - 31.22
3000 - 276.44

Это ПЛИС, но не понял есть ли ему 100% соответствие среди машин из 80-х? Пока данные по подобным разработкам не собираю, ищу древнее железо. Может потом надо будет начать новый проект.

Hunta
30.11.2019, 21:50
Это ПЛИС
Это не FPGA, это 1801ВМ3

Arseny
30.11.2019, 23:14
Интересно, а не пробовали на УКНЦ какой-нибудь Юникс?
LSX Unix (https://zx-pk.ru/threads/24962-unix-dlya-uknts!!!.html?p=793439&viewfull=1#post793439)

Hunta
01.12.2019, 11:10
- Что уважаемые пользователи RT могу сказать про зависание RT-11 на Ctrl/S?
Вопрос снят

xolod
01.12.2019, 11:21
Вопрос снят
Что было?

Hunta
01.12.2019, 11:39
Перенёс ответ в тему в 1201.2018

litwr
08.12.2019, 14:34
Благодаря BQT удалось разогнать eis-код на почти 15% - http://litwr2.atspace.eu/pi/pi-spigot-benchmark.html - теперь УКНЦ уверенено обгоняет IBM PC и акселерированного Дракона. Возможно это не предел, но оптимизировать коды деления для PDP-11 очень непросто. Помогите собрать больше результатов, в архиве (внизу страницы) есть как исходники, так и sav-файлы. Очень хотелось бы получить результаты по 11/83, так как BQT не верит, что она может быть быстрее его 11/93. Теоретически 11/93 быстрее, но RSX-11 тормозит и поэтому, возможно, 11/83 под RT-11 побыстрее.
Всем спасибо.

RT-11SJ v.5.02

Если возможно, то, пожалуйста, помогите с результатами для новой программы. Версия NOEIS по скорости не изменилась и её можно не гонять, нужны результыты только по EIS-версии.

Arseny
08.12.2019, 16:34
Если возможно, то, пожалуйста, помогите с результатами для новой программы. Версия NOEIS по скорости не изменилась и её можно не гонять, нужны результыты только по EIS-версии.

УКНЦ (Квант) RT-11SJ v.5.02
PIEIS v30
100 - 0.50
1000 - 39.76
3000 - 351.68

Прикольно. Запустил 3000 знаков - получил число. Запустил еще раз - получил большее число. Поставил вентилятор на проц - получил самое маленькое число. :-)

litwr
09.12.2019, 22:07
УКНЦ (Квант) RT-11SJ v.5.02
PIEIS v30
100 - 0.50
1000 - 39.76
3000 - 351.68

Прикольно. Запустил 3000 знаков - получил число. Запустил еще раз - получил большее число. Поставил вентилятор на проц - получил самое маленькое число. :-)

:) Реально очень интересно, если сохранились значения для разных прогонов, их узнать. Как влияет температура на скорость вычислений? Надеюсь, что мне пошли самые лучшие значения. По результатам получается, что на ВМ2 деление быстрое, быстрее чем на РС или PDP-11/83 или 84.
Обновил таблицы (http://litwr2.atspace.eu/pi/pi-spigot-benchmark.html). Без последних результатов писал апроксимацию, ошибался до почти 2% - теперь данные точные. Благодарю вас.

Arseny
10.12.2019, 22:46
:) Реально очень интересно, если сохранились значения для разных прогонов, их узнать. Как влияет температура на скорость вычислений?
Увы, остальные значения не сохранил, т.к. не предполагал что они вообще могут потребоваться. Но в целом - их нетрудно воспроизвести. Просто, когда я делал первые замеры, то запускал тесты последовательно и не предполагал что такое возможно. А в тот последний раз я просто забыл какое количество цифр указывал - 1000 или 3000. Сделал еще замер и понял, что цифр было именно 3000, и что прогрев процессора имеет значение. Поэтому достал вентилятор и сделал замеры наоборот - сначала 3000, а потом остальные. Надо бы еще пару экспериментов поставить ...


Надеюсь, что мне пошли самые лучшие значения.
По EIS - да, а вот по NOEIS - надо бы перемерить.

Arseny
11.12.2019, 02:00
УКНЦ (Квант) RT-11SJ v.5.02
PINOEIS v30 (с охлаждением)
3000 - 1100.56 1099.24 1095.86 1096.02 1096.34 1096.18 1096.08 1096.04
1000 - 122.60 122.84 122.92 122.92 122.94 122.94 122.96 122.94
100 - 1.40 1.40 1.38 1.40 1.40 1.40 1.40 1.40 1.40

Делал замеры с отключением УКНЦ между замерами на разное количество цифр (в пределах одного количества не отключал).

litwr
11.12.2019, 18:59
УКНЦ (Квант) RT-11SJ v.5.02
PINOEIS v30 (с охлаждением)
3000 - 1100.56 1099.24 1095.86 1096.02 1096.34 1096.18 1096.08 1096.04
1000 - 122.60 122.84 122.92 122.92 122.94 122.94 122.96 122.94
100 - 1.40 1.40 1.38 1.40 1.40 1.40 1.40 1.40 1.40

Делал замеры с отключением УКНЦ между замерами на разное количество цифр (в пределах одного количества не отключал).
Благодарю вас, внёс в таблицы новые значения. Если будет возможность, то было бы очень интересно (не для таблицы) получить подобный список таймингов с отключенным вентилятором, хотя бы для EIS.

Arseny
12.12.2019, 02:18
УКНЦ (Квант) RT-11SJ v.5.02
PIEIS v30 (с охлаждением)
3000 - 352.08 352.48 352.52 352.56 352.56 352.60 352.60 352.58 352.62 352.68 352.68 352.68

PIEIS v30 (без охлаждения)
3000 - 359.48 362.52 363.34 363.84 363.90 363.46 363.48 363.70 363.92 364.18 364.32 364.74

litwr
13.12.2019, 19:14
УКНЦ (Квант) RT-11SJ v.5.02
PIEIS v30 (с охлаждением)
3000 - 352.08 352.48 352.52 352.56 352.56 352.60 352.60 352.58 352.62 352.68 352.68 352.68

PIEIS v30 (без охлаждения)
3000 - 359.48 362.52 363.34 363.84 363.90 363.46 363.48 363.70 363.92 364.18 364.32 364.74

Очень интересные результаты. Спасибо. Но почему v30, у меня пока только v7?

Arseny
13.12.2019, 19:25
Но почему v30, у меня пока только v7?
Э?!? А я знаю? Вот что на сайте написано: "Download the latest sources and executables (v30 [155 KB]) pack." За что купил, за то продаю...

litwr
14.12.2019, 22:18
Э?!? А я знаю? Вот что на сайте написано: "Download the latest sources and executables (v30 [155 KB]) pack." За что купил, за то продаю...
30 - это номер всей сборки, а не версии конкретной программы, хотя по номеру сборки можно определить версию. :) При запуске программа для PDP-11/EIS из 30-го пакета печатается v7, а PDP-11/NOEIS - v6.

litwr
29.12.2019, 13:42
С наступающим всех 2020 годом!
Благодаря интересу и поддержке уважаемого швейцарского шведа bqt удалось опять повысить скорость пи-затвора. А благодаря информации от уважаемого Alex_K стало ясно, что на УКНЦ, ДВК и прочих системах на основе ВМ2 и ВМ3 это будет работать. Поэтому большая просьба к Arseny и другим владельцам техники семейства PDP-11 помочь ещё раз - прогнать программку PIEISO (100, 1000, 3000) из пакета 31 (http://litwr2.atspace.eu/pi/pi-spigot-benchmark.html) или из прикрепляемого файла. Спасибо
71115

Hunta
29.12.2019, 13:46
и другим владельцам техники семейства PDP-11
Вы сами отказались от моего модуля на 1801ВМ3

Arseny
29.12.2019, 20:41
УКНЦ (Квант) RT-11SJ v.5.02
PIEISO (с охлаждением)
3000 - 319.82 320.40 320.54 320.58 320.56 320.56 320.44 320.56
1000 - 36.18 36.24 36.28 36.30 36.32 36.34 36.34 36.34
100 - 0.48 (почти 18 раз получил это значение, лишь несколько раз (10, 15, 16-й) было 0.46)

litwr
29.12.2019, 21:22
Вы сами отказались от моего модуля на 1801ВМ3
Повторяю, что собираю данные для только массовых компьютеров выпуска с 70-х по 90-е.


УКНЦ (Квант) RT-11SJ v.5.02
PIEISO (с охлаждением)
3000 - 319.82 320.40 320.54 320.58 320.56 320.56 320.44 320.56
1000 - 36.18 36.24 36.28 36.30 36.32 36.34 36.34 36.34
100 - 0.48 (почти 18 раз получил это значение, лишь несколько раз (10, 15, 16-й) было 0.46)

Огромная вам благодарность - обновил таблицы (http://litwr2.atspace.eu/pi/pi-spigot-benchmark.html). Ваши результаты оказались существенно лучше моих оценок, аппаратура у машин архитектуры PDP11 различается довольно сильно и поэтому оценки для одних моделей плохо подходят для других. По последним результатам ВМ2 обогнал VAX-11/730. Однако, код для ваксов оптимизировался совсем чуть-чуть и возможно, что там удастся когда-нибудь ещё повысить скорость.
Удивительно, что у меня до сих пор нет данных по БК и ДВК. :( Жаль, что уважаемый form расстался со своей 11/83 - без результатов по этому компьютеру шведа не убедить...

MiX
03.01.2020, 21:57
Удивительно, что у меня до сих пор нет данных по БК и ДВК.
Про БК надо спрашивать в разделе БК.

PIEISO V8
ДВК ВМ2. RT11SJ (Y) 05.04 G
100- 0,44
1000- 35,42
3000- 313,50

ДВК ВМ3. RT11SJ (Y) 05.04 G
100- 0,44
1000- 33,66
3000- 300,88

litwr
19.01.2020, 14:12
Начал новую тему (https://zx-pk.ru/threads/31290-sobirayu-nekotoruyu-informatsiyu-po-dvk-i-uknts.html) - всё-таки не RT11 обсуждаем.
Однако в этой теме попробую опять попросить уважаемого BYTEMAN помочь с тестированием π-затвора на 11/83 под RT11. Помогите с этим, пожалуйста. BQT не верит результатам по этому компьютеру. Он почему-то не переносит RT11 - использует только RSX-11 и BSD 2.11 - не хочет даже попробовать запустить RT11-эмулятор под RSX. Текущие результаты - это аппроксимация результатов, полученных несколько лет назад от уважаемого form, - действительно могли накопиться ошибки, π-затвор для PDP11 за это время стал быстрее примерно на 35%. Спасибо

Manwe
31.08.2020, 14:11
Всё сработало, только очень уж мало памяти, менее 23 кб из 4 мб - это очень сурово. Поэтому смог отсчитать только 2000 знаков как на БК0010, а 3000 как на БК0011М yжe не смог (пробовал даже set sl off - не помогло).Подскажите, пожалуйста, как выйти из режима редактирования после SET SL LET

Patron
31.08.2020, 21:29
Подскажите, пожалуйста, как выйти из режима редактирования после SET SL LET
По команде SET SL LET драйвер запускает собственный файл как обычную программу. Выход по <Ctrl/C>.

Manwe
01.09.2020, 09:15
По команде SET SL LET драйвер запускает собственный файл как обычную программу. Выход по <Ctrl/C>.Спасибо. Похоже, эмулятор Союз-Неона просто не умеет записывать на диск, поэтому после Ctrl+C изменения не сохраняются :(

TheGWBV
01.09.2020, 20:12
Спасибо. Похоже, эмулятор Союз-Неона просто не умеет записывать на диск, поэтому после Ctrl+C изменения не сохраняются :(

:( ну, воть... А тоже хотела силы попытать...

hobot
02.09.2020, 21:05
Похоже, эмулятор Союз-Неона просто не умеет

ну, воть...

Ребята! Встратите Титуса, не трогайте его - он мой ! http://s2.rimg.info/bf6198f3c903a18a66130fd67cf5178e.gif

Vslav
02.09.2020, 21:30
Ребята! Встратите Титуса, не трогайте его - он мой ! http://s2.rimg.info/bf6198f3c903a18a66130fd67cf5178e.gif
Вот-вот. А был бы проект открытым, да нормально оформленным на github, нашли бы в чем проблема, сделали бы pull request, а Titus, как мейнтейнер повыеживывался, но в итоге, додавленный :), включил бы в проект. Вот прикиньте, если бы я жадничал с фотками 1515, типа "сам когда-нить" сделаю и просто не выложил, был бы у нас сейчас реверс?

hobot
02.09.2020, 21:42
А был бы проект открытым
я бы побоялся Emu в виде исходника! Лучше в тайгу, месяца на четыре (с припасами).
http://s.rimg.info/3e4af7871bd2e6e84ec6b89917c2493e.gif

Vslav
02.09.2020, 21:50
я бы побоялся Emu в виде исходника! Лучше в тайгу, месяца на четыре (с припасами).
http://s.rimg.info/3e4af7871bd2e6e84ec6b89917c2493e.gif
Да ладно, комьюнити какое-никакое есть, потихоньку можно привести в нормальный вид. Но да, придется поработать, а не ждать (это в лучшем случае).
Кстати, как художник художнику - я никогда не скажу на проект ужас-ужас. Не нра? Сделай лучше, можно с автором оригинала договориться о совместной работе, или сделать форк и показать как надо - свое видение.

Alex_K
02.09.2020, 22:07
я бы побоялся Emu в виде исходника! Лучше в тайгу, месяца на четыре (с припасами).
http://s.rimg.info/3e4af7871bd2e6e84ec6b89917c2493e.gif
А чего их боятся, если их ещё никто не видел.
Во всяком случае у Titus-а можно много чему поучиться. Глядишь и UKNCBTL получше будет.

hobot
02.09.2020, 22:17
я никогда не скажу на проект ужас-ужас
не по теме, увы беседа - но тут я согласен. Я сам был в восторге от Emu, когда то, когда пальцы были целы,
а нервы были в порядке...в общем, Титус проделал гигантскую работу по доводу всех версий Emu до практически "не к чему придраться" состояния, причём большинство багов он вылавливал самостоятельно и
решительно их искоренял! Огромная благодарность доктору г.к. Титусу за проделанную работу.

shattered
02.09.2020, 23:27
(шепотом) а можно и MAME допилить...

nzeemin
03.09.2020, 00:24
Вот-вот. А был бы проект открытым, да нормально оформленным на github, нашли бы в чем проблема, сделали бы pull request, а Titus, как мейнтейнер повыеживывался, но в итоге, додавленный :), включил бы в проект. Вот прикиньте, если бы я жадничал с фотками 1515, типа "сам когда-нить" сделаю и просто не выложил, был бы у нас сейчас реверс?

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

Vslav
03.09.2020, 08:09
Но, что касается реальной помощи в виде готового кода - я бы особо не рассчитывал. За все эти годы по моим репозиториям на гитхабе реальных пулл-реквестов было всего штук наверное пять или около того.
Открытие проекта переводит проблему совершенно в другую плоскость. Вот кто-то хочет какую-то фичу, например, Titus хочет видеть схемы процессора в логических элементах. Если проект открыт - ты делаешь улыбку чешЫрского кота и говоришь - "вперёТ - флаг в руки, гранату в зубы и бронепоезд в морду", и больше у тебя никаких обязательств, разве что отревьюить и замерджить если (ну вдруг!) бронепоезд таки подорвут. А хотельщик тыщу раз подумает - а оно надо? Ну если реально надо - то наберется критическая масса хотельщиков и сделают, проекту польза. А нет - значит не особо и хотелось-то.

nzeemin
03.09.2020, 12:55
Vslav, у вас это выглядит так, как будто опен-сорс проект на гитхабе это сразу социальное обязательство работать забесплатно по хотелкам пользователей. Но это же не так.

- - - Updated - - -


(шепотом) а можно и MAME допилить...

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

Vslav
03.09.2020, 13:18
Vslav, у вас это выглядит так, как будто опен-сорс проект на гитхабе это сразу социальное обязательство работать забесплатно по хотелкам пользователей. Но это же не так.
М-м-м... Нет, как раз наоборот. С моей точки зрения открытие проекта отменяет все обязательства по хотелкам. В норме - хотелки обсуждаются, и что-то может быть найденным интересным и стоящим реализации (силами аватора(-ов) имеется ввиду). Если нет - хотельщики свободны хотеть дальше или таки сделать самим.

Hunta
03.09.2020, 13:31
С моей точки зрения открытие проекта отменяет все обязательства по хотелкам
На самом деле и не открытый проект не говорит о том, что есть какие то обязательства - если человек тратит своё время забесплатно - какие могут быть вообще вопросы? :)

Хочешь хотелку - приложи усилия :) А вот тут начинаются варианты.

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

Проект открытый - появляется дополнительные возможности - допилить проект под хотелку может и не автор, а то и сам хотящий. Но тоже - кого удастся простимулировать :)

nzeemin
03.09.2020, 13:34
Проект закрытый - придётся договариваться, что бы автор реализовал или как я обычно говорю - надо дать автору стимул. И стимул может быть разный - как договоритесь.
Titus, каким для вас должен быть стимул, чтобы проект стал открытым? ;-)

Vslav
03.09.2020, 14:00
На самом деле и не открытый проект не говорит о том, что есть какие то обязательства
С моей точки зрения - говорит. Если проект закрыт - у пользователей нет выбора, только просить автора. Ну или делать все "с нуля", теряется самая главная плюшка - повторное использование. Автор лишил пользователей выбора, да - имеет право, но - тогда ему нести ответственность "за тех кого приручил".

shattered
03.09.2020, 14:28
Можно конечно. Но в части именно pdp11 like процессоров там довольно много подготовительной работы нужно проделать, чтобы можно было для конкретной машинки кастомизировать процессор - набор команд, прерывания, скорость выполнения.

Собственно, поэтому эмуляторы мс1201 и укнц так и остались форком. Из того, что я тогда написал, в mame въехал только скелет шины qbus и PC11 (чтение с перфоленты).

Hunta
03.09.2020, 14:47
С моей точки зрения - говорит.
То есть то, что автор вбухивает на это дело своё (в данном контексте - как правило - свободное) время - это - фигня вопрос, сам виноват?


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

Так же как и - повторно делать с нуля, так же как и - повторное использование кода достаточно редко. Конкретный пример - есть такая библиотека - Графор :) Представим себе, что мне захотелось использовать её под Windows X64. Причём в проекте, который написан на C# :) Каков шанс повторного использования? Или, был придуман некий язык программирования. Давно. Очень давно. Пусть я на нём когда то в молодости писал. И написал я на нём набор полезных процедур-методов. И захотел я использовать это дело под (неожиданно) Linux-ом :) Оппа - а компилятора то в принципе нет. Потому что был он написан под древнюю ОС на (внимание) на самом этом языке программирования. Причём - вот они - тексты компилятора и моей библиотеки. Вопрос в студия - как быть?


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

В конце концов, если проект такой популярный, пользователей много(!), и бОльшая их часть захотела одного и того же - пусть скинется и простимулирует автора :)

Кстати, даже (ДАЖЕ!) если проект открытый и эта самая (большая!) группа пользователей захотела одного и того же - всё равно остаётся вопрос - кто будет это дело реализовывать? :) Потому что (например) этот замечательный продукт находится на стыке нескольких областей знаний и умений (программирование в их числе) и вот так получилось, что в авторе продукта есть необходимая комбинация. И другого такого человека - оооо, нашёлся ещё один, но вот, блин, не задача, ему не до этого дела - ибо - есть свои проблемы, которые срочно надо решать, на что нужны деньги и он пашет по 25 часов в сутки - и до чьих то ещё хотелок ему - ... Казалось бы - чего проще - сброситься и помочь этому замечательному человеку, но вот как только доходит до денег - половина этой группы говорит - ёёёёёёёё, это что - столько денег и ОДНОМУ????? Да ну нах, мы найдём того, кто за бесплатно сделает. Вопрос в студию - исходя из психологии человека и толка - скоко они его искать будут? А ведь проект с открытым (!) кодом.

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

shattered
03.09.2020, 20:34
В итоге что имеем по ДВК и подобным:

эмулятор ДВК (Patron) -- закрытый, активно развивается, но не поддерживает графику
эмуляторы EmuStudio (Titus) -- закрытые, не развиваются(?), умеют графику, но не поддерживают запись на диск [поддерживают, см ниже]
эмуляторы BackToLife (nzeemin) -- открытые, развиваются, все умеют, но нет эмулятора ДВК
симулятор SIMH -- открытый, но поддержка ДВК только в старом форке vak и без графики. должно быть относительно легко прикручивать новые варианты процессоров.
эмулятор MAME -- открытый, но нет поддержки 1801ВМx (только T11 aka 1807ВМ2)

что-то еще забыл?

Hunta
03.09.2020, 20:44
Список - только эмуляторы?

shattered
03.09.2020, 21:09
?

Hunta
03.09.2020, 21:19
Ну, есть ещё варианты на FPGA, которые не эмуляторы :)

nzeemin
03.09.2020, 21:25
В итоге что имеем по ДВК и подобным:

эмулятор ДВК (Patron) -- закрытый, активно развивается, но не поддерживает графику
эмуляторы EmuStudio (Titus) -- закрытые, не развиваются(?), умеют графику, но не поддерживают запись на диск
эмуляторы BackToLife (nzeemin) -- открытые, развиваются, все умеют
симулятор SIMH -- открытый, но поддержка ДВК только в старом форке vak и без графики. должно быть относительно легко прикручивать новые варианты процессоров.
эмулятор MAME -- открытый, но нет поддержки 1801ВМx (только T11 aka 1807ВМ2)

что-то еще забыл?

Эмулятор ДВК от Patron - видимо имеется в виду эмулятор с UI, есть ещё от него же Windows-консольный эмулятор для запуска RT-11 http://emulator.pdp-11.org.ru/RT-11/

Эмуляторы BackToLife - не сказал бы что всё умеют, есть несовместимости.

Эмуляторы БК, много разных - gid, А.Тишин, Брухис, Грабовец, Калмыков.

Эмуляторы Pro 350 / МС 0585 - есть xhomer и ещё помнится кто-то из наших писал.

Калькуляторы Электроника МК-85 и МК-90 - эмуляторы Piotr Piatek на Object Pascal, исходники открыты - http://www.pisi.com.pl/piotr433/

hobot
03.09.2020, 21:38
что-то еще забыл?
да! эмулятор Полетаева под MS-DOS - а это мощная вещь и
консольный эмулятор RT-11 Patron'a

shattered
03.09.2020, 23:14
программистам будет интересно, в каких из них есть отладчик :)

Titus
04.09.2020, 13:01
@Titus, каким для вас должен быть стимул, чтобы проект стал открытым? ;-)

Можно на ты)

Чтобы проект стал открытым, его надо переписать с нуля. Меня уже не очень интересует упрощенный подход к эмуляции, когда эмулируется некая совместимая с оригиналом машина, но неидентичная по тактам, нюансам и прочему, и прочему. Это было актуально больше 20 назад, когда я еще на Амиге писал всякие упрощенные версии Спектрума и Денди. Эмулятор УКНЦ, написанный в 2006 году отчасти стал потактовым (скорее поцикловым /цикл - несколько тактов/), но ввиду отсутствия точных данных по чипам и процессору, это все равно не могло привести к хорошему результату.
Сейчас мне интересна потактовая эмуляция, когда ты понимаешь, что все, что работало на оригинале, будет работать на потактовом эмуляторе.

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


эмуляторы EmuStudio (Titus) -- закрытые, не развиваются(?), умеют графику, но не поддерживают запись на диск
Запись на диск есть, разумеется.


'LCtrl + LShift + 0' - записать в файл образ диска 0
'LCtrl + LShift + 1' - записать в файл образ диска 1

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


программистам будет интересно, в каких из них есть отладчик
В моем есть, но очень примитивный, консольный. Я его раньше не открывал, т.к. он удобен не только лишь всем, а только мне)

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


Полностью поддерживаю, разработку эмуляторов лучше вести открыто.
Код некрасивый? да пофигу, гитхаб и не такое видел. Да и бьютифаер же натравить можно.
Надо смотреть историю проекта. Сперва я хотел просто поиграть в свои любимые УКНЦ-шные игрушки, поэтому писал эмулятор чисто под себя, без всякого сервиса, хотелок и прочего. Потом пришлось выложить, когда уже Никита свой дописал. Потому что чего жадничать-то. А как выложил, пришлось дорабатывать, потому что уже не только я им пользуюсь. Плюс добавилось куча других систем, в игрушки от которых я тоже хотел поиграть. В итоге проект превратился в кучу-малу, при этом морально устарел, с точки зрения возможной потактовой качественной современной эмуляции. Новые времена - новые возможности (машиноресурсы), новые данные (реверсы) и новые опыты и знания рождают совсем иной подход к эмуляции, куда и надо шагать, а не тащить за собой чемодан без ручки.

shattered
04.09.2020, 13:55
Так что же, получается


Наши цели ясны, задачи определены. За работу, товарищи! За новые победы коммунизма! (Бурные, продолжительные аплодисменты, переходящие в овацию. Все встают.)

?

Manwe
04.09.2020, 21:48
[QUOTE=Titus;1079566]
'LCtrl + LShift + 0' - записать в файл образ диска 0
'LCtrl + LShift + 1' - записать в файл образ диска 1Это в эмуляторе Союз-Неона? У меня не работает. В консоли ничего не пишет. В самом эмуляторе просто скобка ) печатается, как будто Shift+0 нажали без Ctrl.

troosh
04.09.2020, 22:36
LCtrl + LShift

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

Titus
04.09.2020, 22:39
Это в эмуляторе Союз-Неона? У меня не работает. В консоли ничего не пишет. В самом эмуляторе просто скобка ) печатается, как будто Shift+0 нажали без Ctrl.
Нет, это в эмуляторе УКНЦ, который по совместительству эмулирует ДВК'шные КГД, КЦГД и прочее.
Речь же шла о ДВК.
А в Неоне, на сколько я понимаю, я такой возможности не сделал. Не помню уже почему. Может просто потому, что не было необходимости.

CodeMaster
04.09.2020, 23:04
Сейчас мне интересна потактовая эмуляция, когда ты понимаешь, что все, что работало на оригинале, будет работать на потактовом эмуляторе.
Если мне не изменяет память то ZXMAK2 пытались (сделали?) потактовым и это привело к дикой ресурсоёмкости (т.к. в железе множество процессов идёт параллельно).


Новые времена - новые возможности (машиноресурсы)
Ты уверен, что современного среднестатистического железа достаточно для софтовой потактовой эмуляции?

Titus
04.09.2020, 23:21
Если мне не изменяет память то ZXMAK2 пытались (сделали?) потактовым и это привело к дикой ресурсоёмкости (т.к. в железе множество процессов идёт параллельно).
На сколько я понимаю, в ZXMAK2 все же не потактовая эмуляция, но могу ошибаться.

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


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

Manwe
05.09.2020, 08:15
Не очень удачная комбинация,..у меня так рус/лат на клавиатуре переключается, может она раньше отрабатыватся виндой. Можно попробовать временно выставить другую.Гляньте, пожалуйста, соседнюю тему «Программирование Союз-Неон», у меня там важный вопрос к Вам!

Manwe
07.09.2020, 18:46
Подскажите что и как делает PRUN. Набрал в Google "RT-11 PRUN" и ужаснулся поисковой выдаче, решил лучше спросить здесь :)

troosh
07.09.2020, 20:00
Подскажите что и как делает PRUN

Буквально запуск фонового процесса. Обычно они начинают отвечать на один и более "эмулируемых" регистров из области 17xxxx. Так в ПК11/16 добавляется различная периферия и что-то вроде системных вызовов. Типа unix-way, - красиво, но медленно. Возможно быстрее было бы сделать через обычную библиотеку.

Список процессов можно посмотреть при помощи ps и прибить какой-то при помощи kill. Эти утилиты описаны в документации (https://raw.githubusercontent.com/troosh/pk11-16/master/Docs/P16DOC.DSK/VPUTIL.DOC.txt). Там же и про формат.prc файлов информация.

Manwe
08.09.2020, 07:55
Там же и про формат.prc файлов информация.Спасибо. Странная штука этот PRC. Зачем-то содержит заголовок как в .SAV, а перед этим ещё и свой заголовок, который дублирует половину информации из .SAV. ИМХО 512 байт sav-заголовка вообще не нужны процессу, он их не использует. При этом документация, как обычно, писалась "для себя" - упущено то, что "и так понятно" авторам. Например, с какого слова всё таки начинается SAV-файл внутри PRC. Имя процесса "может следовать", начиная с 5-го слова, а если не следует - как PRUN это определяет? Загадки, загадки.

Alex
08.09.2020, 09:22
Эти 512 байт заголовка, вполне можно занять кодом при прямых руках.
Но по умолчательному стандарту эти 512 байт отведены под стек.
Так, формат .SAV - формат прямого отображения на память. Не просто так в мониторе RT-11 есть команды, которые с этим работают Кому надо, те их знают :)
Там просто идёт при загрузке считывание файла в память. Служебная информация содержится в начальном блоке. В оперативной памяти с начала - таблица векторов. По этому начальный блок для служебной информации.
Есть ещё формат .REL(есть таблица перемещения благодаря которой программа может быть загружена с любого чётного адреса свободной памяти) , но это специфично для FB(XM) монитора... Для того чтобы программистов не напрягать позиционно независимым кодом :)

troosh
08.09.2020, 10:11
Странная штука этот PRC. Зачем-то содержит заголовок как в .SAV, а перед этим ещё и свой заголовок, который дублирует половину информации из .SAV. ИМХО 512 байт sav-заголовка вообще не нужны процессу, он их не использует. При этом документация, как обычно, писалась "для себя" - упущено то, что "и так понятно" авторам.

Свой заголовок там внутри заголовка SAV файла - просто использую не используемое...

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



Например, с какого слова всё таки начинается SAV-файл внутри PRC

Там нет файла в файле. Это обычный SAV файл, если его просто запустить без утилиты prun, то запуститься код с адреса как указано в заголовке sav файла. А если через prun, то на тот же адрес плюс два.

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



Имя процесса "может следовать", начиная с 5-го слова, а если не следует - как PRUN это определяет? Загадки, загадки.

Ну там же написано: приоритет у имении процесса заданного в строке запуска. Например "prun 123.prc/Test_procces" в таблицу процессов пропишет имя "Test_procces". А если имени нет ни в строке запуска, ни в самом файле, то там запишут просто имя файла " 123.prc".

Manwe
08.09.2020, 11:26
Эти 512 байт заголовка, вполне можно занять кодом при прямых руках.Из того, что я читал об RT-11 для УКНЦ, вынес следующее: заголовок sav-файла грузится в буфер и там разбирается. Затем в тот же буфер начинают грузятся остальные блоки файла, по одному. И уже из буфера перемещаются в основное ОЗУ. То есть они загружаются перетирая друг друга. Нулевой блок с заголовком по-любому будет потёрт, в основную память он не попадёт. Как в таких условиях передать управление внедрённому в него коду – непонятно.

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


Не, я настаиваю что документация нормальная, просто еë нужно несколько раз перечитывать.
73452
73453

Первый скриншот из документации. Второй из файла P16.MAC
Нет, документация НЕ нормальная. Здесь имеет место когнитивное искажение, профессиональная деформация: человеку, УЖЕ заранее знакомому и имеющему большой опыт с RT-11, советской схемотехникой, используемыми микросхемами и прочими штуками кажется, что «всё и так понятно». Конкретно в этой документации не описано, но «мне же понятно». Это признак плохой документации.


На самом деле это удобно - можно есть выдачу help и просто осмысленное сообщение о том, что нужно запускать через prun. Либо реализовать какое-то взаимодействие с ранее запущенным процессом из этого же файлаДа, это полезно.
Спасибо за разъяснение.

Alex_K
08.09.2020, 11:37
Из того, что я читал об RT-11 для УКНЦ, вынес следующее: заголовок sav-файла грузится в буфер и там разбирается. Затем в тот же буфер начинают грузятся остальные блоки файла, по одному. И уже из буфера перемещаются в основное ОЗУ. То есть они загружаются перетирая друг друга. Нулевой блок с заголовком по-любому будет потёрт, в основную память он не попадёт. Как в таких условиях передать управление внедрённому в него коду – непонятно.
Нулевой блок SAV-файла, который заголовок, также переносится в ОЗУ с нулевого адреса в соответствие с картой битовой защиты. Данная карта расположена в области данных RMON (резидентный монитор) и показывает, можно ли переписывать ячейку или нельзя. Защищаются ячейки с адреса 0 по адрес 0476. С адреса 0500 в старых версиях RT-11 (вроде бы до 05.02) информация прямо переписывалась. В более новых версиях в SAV-файле для этого необходимо поставить бит 8 (CHAIN$) в адресе 044 JSW (Job Status Word).

Hunta
08.09.2020, 12:07
И насколько я знаю, дальше данные со второго блока до некого блока, номер которого вычисляется по инфу из заголовка, читаются с диска одним запросом сразу на место (спасибо вам, непрерывные файлы). Именно по этой же причине файлы .TSK в RSX так же должны быть непрерывными, что бы система могла их запустить

Alex_K
08.09.2020, 12:18
И насколько я знаю, дальше данные со второго блока до некого блока, номер которого вычисляется по инфу из заголовка, читаются с диска одним запросом сразу на место (спасибо вам, непрерывные файлы).
Ну не с второго, а первого, если нумерация начинается с нуля. Да и в нулевом блоке со смещения 0360 также есть карта используемых блоков. Например, если в программе посреди файла объявить большой массив .BLKW, то данные блоки помечаются в карте нулевыми битиками.

Manwe
08.09.2020, 12:18
Защищаются ячейки с адреса 0 по адрес 0476.Значит, нулевой блок туда не запишется.
Ну и как бы я отталкиваюсь от официальной документации, где прямо сказано, что все блоки грузятся по одному в буфер, и нулевой блок не отправляется в основную память.

Hunta
08.09.2020, 12:23
Ну не с второго, а первого, если нумерация начинается с нуля.
Пардон, очепятался, с первого, конечно.

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


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

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

Уточнение - все мои высказывания касаются virgin RT-11 от DEC, а не её версий, которые потрогали чьи-то очумелые ручки

Alex_K
08.09.2020, 12:27
Значит, нулевой блок туда не запишется.
Ну почему не запишется, запишутся только не защищённые ячейки, если в карте битовой защиты стоит нулевой битик на данный адрес.
Вот собственно из официальной документации:
"The monitor commands R and RUN load and start a program stored in a .SAV file.(The RUN command is actually a combination of the GET and START commands.)
First, the Keyboard Monitor reads block 0 of the .SAV file into an internal USR buffer.
It extracts information from locations 40–64 and 360–377 (the bitmap, described
above). Using the protection bitmap (called LOWMAP), which resides in RMON,
KMON checks each word in block 0 of the file. It does not load locations that are
protected, such as location 54 and the device interrupt vectors. It loads unprotected
locations into memory from the USR buffer. Next, KMON sets location 50 to the top
of usable memory, or to the top of the user program, whichever is greater."

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


Интересно, что будет делать система (читать одним запросом или несколькими), если за таким блоком будут опять идти нормальные данные...
Можно попробовать практически. Создать большой файл, в начале и конце поместить реальные данные, а между ними очень большой .BLKW. А потом загрузить с помощью GET, а командой E посмотреть. В принципе можно выйти в пульт и посмотреть там ячейки.

Hunta
08.09.2020, 12:34
То, что он загрузится и с правильными данными в конце - как бы сомнения нет. Вопрос - один запрос на чтение будет или два. Можно правда в середине пошалить dess-ом и потом проверить...

Alex_K
08.09.2020, 12:52
То, что он загрузится и с правильными данными в конце - как бы сомнения нет. Вопрос - один запрос на чтение будет или два. Можно правда в середине пошалить dess-ом и потом проверить...
Проверил. Неиспользуемые блоки не грузит.

Hunta
08.09.2020, 13:11
Проверил. Неиспользуемые блоки не грузит.
Спасибо :)

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

Это, кстати, означает, что при неаккуратном использовании .BLKW .BLKB можно легко получить суслика, которого не видно, но он есть :)

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

Alex_K
08.09.2020, 13:14
Это, кстати, означает, что при неаккуратном использовании .BLKW .BLKB можно легко получить суслика, которого не видно, но он есть
Это если программу написать так, что она будет думать, что там одни нули. А на самом деле, то что осталось от предыдущей загрузки.

Hunta
08.09.2020, 13:19
она будет думать, что там одни нули

осталось от предыдущей загрузки
Ну да.

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

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

Manwe
08.09.2020, 13:29
KMON checks each word in block 0 of the file. It does not load locations that are protected, such as location 54 and the device interrupt vectors. It loads unprotected locations into memory from the USR buffer.Хм, а может и сработать. Надо попробовать. Спасибо за идею.

Alex_K
08.09.2020, 13:38
Хм, а может и сработать. Надо попробовать. Спасибо за идею.
А что сработать? В каком месте в нулевом блоке будут располагаться код и данные?

Hunta
08.09.2020, 13:40
А что сработать? В каком месте в нулевом блоке будут располагаться код и данные?
Выше примерно 500-ой ячейки :) .SAV размером в один блок :)

Manwe
08.09.2020, 15:20
А что сработать? В каком месте в нулевом блоке будут располагаться код и данные?с 70 по 356. Этого хватит на то, чтобы инициализировать графику и палитры Союз-Неона.

Hunta
08.09.2020, 15:29
с 70 по 356
SJ RMON


; BYTES ARE READ FROM LEFT TO RIGHT. E.G., THE FOURTH BYTE PROTECTS
; THE RANGE 60-76, AND A VALUE OF 11110000 WOULD PROTECT 60-66.

.RADIX 2
.BYTE 11111111,00111100,00001111,11110000 ;000-076
.BYTE 11000011,00000000,00000000,00000000 ;100-176
.BYTE 00000000,00000000,00110000,00000000 ;200-276
.BYTE 00000000,00000000,00000000,00000000 ;300-376
.BYTE 00000000,00000000,00000000,00000000 ;400-476
.RADIX 8.


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

А потом ктонть прицепит контроллер в вектором в диапазон 70-356 - и пойдут слухи о сбойной ячейке памяти, которая конкретную прогу портит

troosh
08.09.2020, 15:46
А потом ктонть прицепит контроллер в вектором в диапазон 70-356 - и пойдут слухи о сбойной ячейке памяти, которая конкретную прогу портит

Не знаю в тему или нет, но у Союз-Неона в HALT режиме с нулевого адреса всегда ПЗУшка на 16Кбайт (где и указаны некоторые вектора прерываний, а остальное забито разным мусором под завязку). Да и внешняя плата не может выдать произвольный вектор - там стоит i8259 у которого два входа под эти внешние платы выделены.
А пользовательские программы работают в USER моде, где с нуля только ОЗУ (7 страниц произвольных страниц по 8К из 4Мбайт).

Manwe
08.09.2020, 16:14
; BYTES ARE READ FROM LEFT TO RIGHT. E.G., THE FOURTH BYTE PROTECTS
; THE RANGE 60-76, AND A VALUE OF 11110000 WOULD PROTECT 60-66.У меня нулевой блок практически весь пустой.

73454

Alex_K
08.09.2020, 19:35
с 70 по 356. Этого хватит на то, чтобы инициализировать графику и палитры Союз-Неона.

У меня нулевой блок практически весь пустой.
Ячейки с 70 по 356 могут быть защищены в битовой карте RMON. Например 0100 и 0102 - вектор прерывания сетевого таймера. Потому при загрузке в ОЗУ загрузятся только те ячейки, которые не защишены. А потом и будут вопросы - вроде написал всё правильно, а программа сбоит. Можно расположить в области 0500-0777, но там обычно разделяется вместе со стеком, из-за этого могут быть проблемы. Ну и соответственно в SAV-файле надо установить бит CHAIN$(0400) в JSW(044).

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


Не знаю в тему или нет, но у Союз-Неона в HALT режиме с нулевого адреса всегда ПЗУшка на 16Кбайт (где и указаны некоторые вектора прерываний, а остальное забито разным мусором под завязку).
Да, там ПЗУ с 0 до 037777. Но там вектора режима HALT, и к векторам режима USER это вообще никак не относится. Да и вопрос был о загрузке нулевого блока SAV-файла.

Manwe
08.09.2020, 21:29
Ячейки с 70 по 356 могут быть защищены в битовой карте RMON. Например 0100 и 0102 - вектор прерывания сетевого таймера.Попробую забить свободные слова в заголовке .SAV каким-то значением типа 12345, а потом посмотрю что из этого реально загрузилось в память Союз-Неона.


Можно расположить в области 0500-0777, но там обычно разделяется вместе со стеком, из-за этого могут быть проблемы. Ну и соответственно в SAV-файле надо установить бит CHAIN$(0400) в JSW(044).Точно, вижу в документации "If it is set in a job’s save image, the monitor always loads words 500 through 776 from the save file when the job is started" - благодарю за совет.

troosh
08.09.2020, 23:42
вектора режима HALT, и к векторам режима USER

О Боже, вектора USER режима.. Зачем? Причем тут прерывания от внешнего устройства и они вектора пользователя... Я запутался.

Alex_K
08.09.2020, 23:58
О Боже, вектора USER режима.. Зачем? Причем тут прерывания от внешнего устройства и они вектора пользователя... Я запутался.
Процессор работает в двух режимах - USER и HALT. Вектора HALT-режима - начальный запуск (SEL000), зависание в HALT (SEL004), команда FIS (SEL010), сигнал или команда HALT (SEL170), двойное зависание (SEL174), ошибка приёма вектора прерывания (SEL274). Все остальные прерывания - прерывание USER-режима. Каждое прерывание переключает процессор в соответствующий режим, в котором будет обслуживаться.

troosh
09.09.2020, 11:08
Все остальные прерывания - прерывание USER-режима.

Это те вектора, которые можно видеть по команде "show dev"?
Этот вектор это фактически адрес в USER- режиме, где хранится адрес обработчика прерывания? Вот их и нужно оберегать ОС при загрузке. SAV файла, об этом речь?



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

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

Но, как я понимаю, обработка внешних прерываний в ПК11/16 реализуется так: К580ВН59 дëргает ножку процессора HALT, то в HALT режиме выбирает адрес обработчика по адресу 0170. Там вычитывают из ВН59 номер прерывания и уже запускают нужный обработчик для соответствующего устройства.
Обращение к памяти в HALT- режиме сопровождается сигналом SEL, а это фактически дополнительная адресная линия (почему не назвали А16?), что позволяет иметь отдельное пространство для HALT режима (вроде как его называют память пульта или системная память).

Но дальше я уже не понимаю. Например есть общее для флопа и mfm диска прерывание - это 1й вход у ВН59. Ну в halt режиме разобрались, например, что это от флопа. В выдаче "show dev":
HD 177130 230
FD 177130 234

Что после этого имитируется уже прерывания в user- режиме, но с вектором 0234?

Я так понимаю табличка выдаваемая в show dev не расширяется и забита при конфигурировании ОС под конкретную машину? Т.е. других вектором не появится пока не сгенерировать новую ОС?

Hunta
09.09.2020, 11:16
Я так понимаю табличка выдаваемая в show dev не расширяется и забита при конфигурировании ОС под конкретную машину? Т.е. других вектором не появится пока не сгенерировать новую ОС?
Если сбросить на системный диск новый драйвер, если этот драйвер по любой причине будет загружен в память, если у него указан адрес прерывания, то это адрес настраивается и защищается. Генерации системы не требуется

Alex_K
09.09.2020, 11:52
Но дальше я уже не понимаю. Например есть общее для флопа и mfm диска прерывание - это 1й вход у ВН59. Ну в halt режиме разобрались, например, что это от флопа. В выдаче "show dev":
HD 177130 230
FD 177130 234

Что после этого имитируется уже прерывания в user- режиме, но с вектором 0234?
По поводу прерываний устройств, почитайте, начиная отсюда (https://zx-pk.ru/threads/14857-dokumentatsiya-na-pk-11-16.html?p=771749&viewfull=1#post771749). А здесь (https://zx-pk.ru/threads/14857-dokumentatsiya-na-pk-11-16.html?p=771845&viewfull=1#post771845) я уже подробно объяснил, как работает VIRQ.

Manwe
09.09.2020, 23:22
А чего у нас с чтением файлов в RT-11? Научите чайника ;)
Без макросов, чисто на EMT.
Кажется, номер 375. В R0 подаётся код операции - lookup (аналог open file в других системах), read, write, close.
А сами параметры файла где? Как задать имя файла? И что потом с read – он читает блок или байт или что? И куда?

Я честно прочитал 3 тома DECовской документации и не нашёл. Узнал много интересного про каналы даже в мультитерминальном режиме, но это не приблизило меня к ответу на изначальный вопрос :)

Alex_K
09.09.2020, 23:30
А чего у нас с чтением файлов в RT-11? Научите чайника
Без макросов, чисто на EMT.
Зачем так усложнять жизнь себе? Имеется прекрасная библиотека с макросами SYSMAC.SML, там всё есть.

А так плохо читали. Для версии 5.1 - здесь (http://www.bitsavers.org/pdf/dec/pdp11/rt11/v5.1_Jul84/AA-H378C-TC_RT-11_Programmers_Reference_Manual_Jul84.pdf).

Manwe
09.09.2020, 23:48
Зачем так усложнять жизнь себе? Имеется прекрасная библиотека с макросами SYSMAC.SML, там всё есть.и... где её взять? Чтобы просмотреть макросы и выудить из них EMT?


А так плохо читали. Для версии 5.1 - здесь (http://www.bitsavers.org/pdf/dec/pdp11/rt11/v5.1_Jul84/AA-H378C-TC_RT-11_Programmers_Reference_Manual_Jul84.pdf).Ох, это скан – в нём не ищется текст. Понятно почему в этом томе у меня не нашлось. В трёх других нашлось, но не то.
Спасибо, полистаю.

Alex_K
09.09.2020, 23:53
и... где её взять? Чтобы просмотреть макросы и выудить из них EMT?
В любой стандартном дистрибутиве RT-11 есть. Только зачем выуживать макросы, когда можно воспользоваться готовой библиотекой.

Ох, это скан – в нём не ищется текст. Понятно почему в этом томе у меня не нашлось.
Ну можно от версии 5.6 - здесь (http://www.bitsavers.org/pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PD6LA-TC_RT-11_System_Macro_Library_Manual_Aug91.pdf), искать можно. Но это от новой версии, можно употребить такое, что в более старых работать не будет.

shattered
10.09.2020, 00:05
Первое правило программирования для RT-11 -- забыть про ASCII имена файлов, потому что они передаются в кодировке RAD50 :) Для первичного просветления читать про макрос .CSISPC.

Для cowgol runtime я написал такой код (fcb.rt11 -- это parameter area для макросов, fcb.buffer -- буфер для чтения/записи блока)


sub FCBOpenIn(fcb: [FCB], filename: [uint8]): (errno: uint8) is
var rtfcb := &fcb.rt11;
var rtbuf := &fcb.buffer;
var rad50 := rtbuf + 30;
var defext: uint16[] := {0, 0, 0, 0};

# parse ASCII filename into RAD50 rtbuf

ASm "mov sp, r5";
ASm ".csisp", rtbuf, ",", defext, ",", filename;
ASm "mov r5, sp";
ASm "bcc 1$";
ASm "movb #1,", carry;
ASm "1$:";

if carry != 0 then
errno := carry as uint8;
return;
end if

ASm ".looku", rtfcb, ", #0, ", rad50;
ASm "bcc 2$";
ASm "movb #1,", carry;
ASm "2$:";

errno := carry as uint8;
if errno == 0 then
file_i_channels[0] := fcb;
else
file_i_channels[0] := 0 as [FCB];
end if;
end sub;

Manwe
10.09.2020, 10:02
Моя цель - компактный код, ведь я пишу 256-байтные и 512-байтные демки. Макросы удобны для системного программирования, но не для моих целей. Мне нужно контролировать код. Например, в одной демке у меня такое:

LEN: MOV #2048.,R3
SUB #32.,LEN+2
BEQ LEN+2 ; end of data? exitКогда счётчик доходит до нуля, происходит переход на него, то есть на образовавшуюся команду HALT - конец программы. Этот трюк позволяет не хранить отдельную команду HALT, что экономит 2 байта. И подобное во многих местах. Если бы инструкция MOV #2048.,R3 находилась внутри макроса, я не смог бы прыгнуть в его середину.



Имеется прекрасная библиотека с макросами SYSMAC.SML, там всё есть.Библиотеку нашёл, а её исходника не нашёл. Мне бы посмотреть как устроены все эти макросы типа lookup и read.

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

Читаю AA-PD6LA-TC_RT-11_System_Macro_Library_Manual_Aug91.pdf

Во-первых, непонятно, в каком байте хранить код функции для EMT 375. Судя по табличке, в старшем. Но по логике, этот байт - первое, что должен считать обработчик EMT, а значит он должен быть младшим. По крайней мере, на БК0010 так сделано. Почему в документации не разделили это слово на 2 байта, чтобы исключить недопонимание?

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

В общем, нужны исходники этих макросов. Где их взять?

Alex_K
10.09.2020, 10:12
Библиотеку нашёл, а её исходника не нашёл. Мне бы посмотреть как устроены все эти макросы типа lookup и read.

В общем, нужны исходники этих макросов. Где их взять?
В SYSMAC.SML бинарный только заголовок, далее идёт чистый текст. Заголовок можно отрезать в любом бинарном редакторе.

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


Во-вторых, описан макрос .CDFN, но не написано куда он возвращает номер канала, чтобы потом использовать его при открытии файла.
А зачем вам .CDFN? Он изменяет количество доступных для задачи каналов ввода-вывода. При этом таблицу каналов надо хранить в теле задачи. Неужто вам стандартных 15 недостаточно. Если надо только считать из файла, то достаточно .LOOKUP, .READW и .CLOSE.

Manwe
10.09.2020, 10:27
А зачем вам .CDFN? Он изменяет количество доступных для задачи каналов ввода-вывода. При этом таблицу каналов надо хранить в теле задачи. Неужто вам стандартных 15 недостаточно. Если надо только считать из файла, то достаточно .LOOKUP, .READW и .CLOSE.Использовать всегда канал номер 0? Из документации это не очень понятно, прямо не сказано.

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


В SYSMAC.SML бинарный только заголовок, далее идёт чистый текст. Заголовок можно отрезать в любом бинарном редакторе.Спасибо, отрезал первые полтора килобайта, помогло.

Alex_K
10.09.2020, 10:28
Использовать всегда канал номер 0? Из документации это не очень понятно, прямо не сказано.
Да, при старте своей задачи вы получаете в распоряжение 15 каналов ввода-вывода, от 0 до 14(016). И можете их использовать по своему усмотрению.

Manwe
10.09.2020, 10:44
Да, при старте своей задачи вы получаете в распоряжение 15 каналов ввода-вывода, от 0 до 14(016). И можете их использовать по своему усмотрению.Значит, такой код будет корректным?

MOV #LOOKUPdata,R0
EMT 375 ; open file
MOV #READdata,R0
EMT 375 ; read file
RET

LOOKUPdata: .BYTE 0 ; channel number
.BYTE 1 ; function number
.WORD FileName ; pointer to the text string
.WORD 0 ; for magnetic tape
READdata: .BYTE 0 ; channel number
.BYTE 10 ; function number
.WORD 0 ; block number to read
.WORD Load ; address to load a file
.WORD 512./2 ; file size
.WORD 1

FileName: RAD50 "DK FILE00DAT"
Load:

Alex_K
10.09.2020, 10:52
Значит, такой код будет корректным?
Ну в принципе да. Не обрабатываются ошибки. Если есть ошибка, то после исполнения EMT 375 будет установлен бит C в PSW. Ну и в блоке для .READW последнее слово должно быть равно нулю, это .READW, а не .READ. И не RAD50, а .RAD50 (с точкой).

Manwe
10.09.2020, 14:31
Спасибо, получилось!
Можно даже убрать .WORD 0 ; for magnetic tape

73469

troosh
10.09.2020, 15:04
И не RAD50, а .RAD50 (с точкой).

У них не macro-11, а свой ассемблер. Им можно.

Manwe
10.09.2020, 15:39
У них не macro-11, а свой ассемблер. Им можно.У нас пока вообще нет поддержки Radix-50 в нём :) В будущем добавим, а пока написал конвертер для БК0010: ты ему строку, он тебе числа на экран.

Manwe
10.09.2020, 19:11
Подскажите, пожалуйста, есть ли какой-нибудь ASCII-код у комбинации клавиш Ctrl+C (УПР+Ц)? Хочу вставить в середину .COM-файла, чтобы прервать его исполнение. Вариант "закомментируй всё до конца файла" не подходит, нужно послать именно такой код.

SuperMax
10.09.2020, 19:22
Подскажите, пожалуйста, есть ли какой-нибудь ASCII-код у комбинации клавиш Ctrl+C (УПР+Ц)? Хочу вставить в середину .COM-файла, чтобы прервать его исполнение. Вариант "закомментируй всё до конца файла" не подходит, нужно послать именно такой код.
достаточно 0 - это будет окончанием текста

Hunta
10.09.2020, 19:22
^C

shattered
10.09.2020, 19:23
любая команда, которая вернет ошибку, например type xz

Alex_K
10.09.2020, 19:30
^C
Не сработает

любая команда, которая вернет ошибку, например type xz
Это если стоит параметр SET ERROR ERROR. А если стоит SET ERROR FATAL, то продолжит дальше.

Manwe
10.09.2020, 19:35
В STARTS.COM прописано set error none.
Код 0 тоже не срабатывает. И код 3 не срабатывает. После него продолжается исполнение COM-файла.
А вот нажатие клавиш УПР+Ц срабатывает.

TheGWBV
11.09.2020, 09:22
Может какая-то команда распечатки файла с содержимым в виде кода, соответствующего ^C, поможет?

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

А что-то вроде Linux команды echo есть в RT-11?

troosh
11.09.2020, 09:22
А exit написать?..

Hunta
11.09.2020, 09:40
А exit написать?.
Особенно весело будет в эмуляторе Патрона, если на системном диске лежит утилита exit.sav ;)

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

Я так думаю, что самым простым вариантом будет сделать два файла. И из одного из них вызывать второй, а потом дальше команды

Manwe
12.09.2020, 10:18
А exit написать?..Реакция на exit:
?KMON-F-File not found SY:UCL.SAV

AFZ
12.09.2020, 10:24
А все-таки, что там с кодом 0х03 в командном файле? По-идее, этот код должен остановить исполняющуюся программу и система должна перейти к следу.щей... Где-то я такое видел.

form
12.09.2020, 11:41
А что-то вроде Linux команды echo есть в RT-11?

В самом RT-11 нету, но в теме про софт PDP-11 есть моя программа ECHO для этого.
Только вот найти не смог навскидку.
Может hobot подскажет где :)

SuperMax
13.09.2020, 09:05
В самом RT-11 нету, но в теме про софт PDP-11 есть моя программа ECHO для этого.
Только вот найти не смог навскидку.
Может hobot подскажет где :)
походу есть много вариантов
https://mirrors.pdp-11.ru/search.php?text=ECHO.sav

Manwe
13.09.2020, 14:06
А все-таки, что там с кодом 0х03 в командном файле? По-идее, этот код должен остановить исполняющуюся программу и система должна перейти к следу.щей... Где-то я такое видел.Пробовал, не помогает. Пишет в терминал ^C и продолжает дальше парсить COM-файл.

form
13.09.2020, 14:12
А все-таки, что там с кодом 0х03 в командном файле?
В командном файле не нужен код 0x03.
Там пишется просто "^C" текстом, и это интерпретируется как CTRL/C (кроме специального режима в котором происходит приостанов командного файла с целью ввода с термнала [VKMON например в командном режиме так поступает]).
R MACRO
A=A
^C
R LINK
A=A
^C

Hunta
13.09.2020, 15:25
Там пишется просто "^C" текстом, и это интерпретируется как CTRL/C
Только это не прекращает выполнение самого COM файла.

TYPE A.TXT
^C
TYPE A.TXT

отработают обе TYPE

form
13.09.2020, 15:47
Только это не прекращает выполнение самого COM файла.

TYPE A.TXT
^C
TYPE A.TXT

отработают обе TYPE
Разумеется.
"^C" работает только на CSI ввод и завершает программу.
Завершения самого командного файла DCL до его конца не предусмотрено, да и бесполезно - зачем в принципе писать команды после того места где он должен завершиться - файл-то выполняется пеоследовательно без какого-либо управления.
Если нужны какие-то условные действия - на это есть IND - там и завершить выполнение можно в любом месте.

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

В порядке бреда :)
Способ прервать выполнение командного файла DCL:
D 44=4000
D 510=1,0
D 1000=5000,104350
ST 1000
Формально, это не завершение, но после этих команд выполнение остановится.
Можно оформить в виде программы - тогда будет одна команда.

Hunta
13.09.2020, 16:05
Завершения самого командного файла DCL до его конца
Именно это и хотел вопрошавший.
На самом деле то, что он хотел на самом деле - элементарно реализуется, но... есть тут личности, которые хотят странного

Manwe
13.09.2020, 17:29
Если нужны какие-то условные действия - на это есть IND - там и завершить выполнение можно в любом месте.Можно чуть подробней? Возможно ли обработать код, посланный программой в Терминал, и если этот код равен, скажем, "A" - выйти из COM-файла?

form
13.09.2020, 17:39
Можно чуть подробней? Возможно ли обработать код, посланный программой в Терминал, и если этот код равен, скажем, "A" - выйти из COM-файла?
В RT-11 начиная с версии 5.0 входит IND процессор, позволяющий кроме выполнения команд, писать достаточно навороченные программы.
Описание его можно найти здесь (http://www.bitsavers.org/pdf/dec/pdp11/rt11/v5.6_Aug91/AA_PDU1A-TC_RT-11_IND_Control_Files_Manual_Aug91.pdf).

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

Пример командного файла IND для RT-11 (на самом деле он тут универсальный для многих систем, в том числе RT-11)

.ENABLE SUBSTITUTION

;
; IOSCAN V4.0 generation program.
;

.IF <SYSTEM> <> 1 .GOTO 10
.SETS SYSTEM "RSX-11M"
.SETS RSXSTB "LB:'<SYSUIC>'RSX11M.STB"
.SETS RSXMC "LB:[11,10]RSXMC"
.SETS EXEMC "LB:[1,1]EXEMC"
.SETF MPLVEC
.SETF POSVEC
.GOTO BLDRS
.10:
.IF <SYSTEM> <> 6 .GOTO 20
.SETS SYSTEM "RSX-11M-PLUS or Micro/RSX"
.SETS RSXSTB "LB:'<LIBUIC>'RSXVEC.STB"
.SETS RSXMC "LB:[11,10]RSXMC"
.SETS EXEMC "LB:[1,1]EXEMC"
.SETT MPLVEC
.SETF POSVEC
.GOTO BLDRS

.20:
.IF <SYSTEM> <> 11 .GOTO 30
.SETS SYSTEM "P/OS"
.SETS RSXSTB "LB:[1,5]POS.STB"
.SETS RSXMC "LB:[1,5]RSXMC"
.SETS EXEMC "LB:[1,5]EXEMC"
.SETF MPLVEC
.SETT POSVEC
.GOTO BLDRS

.30:
.IF <SYSTEM> <> 7 .IF <SYSTEM> <> 10 .GOTO NOSUP
.SETS SYSTEM "RT-11"
.GOTO BLDRT

.NOSUP:
; Running on unsupported operating system
;
.EXIT <ERROR>

.BLDRT:
; Running on RT-11 system.
;
; Building programs:
; IOSCAN.BIN - IOSCAN for XXDP/XXDP+
; IOSCAN.BOT - standalone IOSCAN (magtape bootstrap)
; IOSCAN.LDA - standalone IOSCAN (absolute loader format)
; IOSCAN.PDP - standalone IOSCAN
; IOSCAN.PPU - standalone IOSCAN (PRUN format for MC0511)
; IOSCAN.SAV - IOSCAN for RT-11
;
.SETS FILES "SY:MACRO.SAV SY:LINK.SAV SY:SPLIT.SAV"
.GOSUB FILTST

MAC IOSCAN
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
MAC IOSPP
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
MAC IOSRT
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
MAC IOSST
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
MAC IOSXDP
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
LIN/FOR/EXE:IOSCAN.PPU IOSPP,IOSCAN
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
LIN/EXE:IOSCAN IOSRT,IOSCAN
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
LIN/LDA/EXE:IOSCAN IOSST,IOSCAN
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
LIN/LDA/EXE:IOSCAN.BIN IOSXDP,IOSCAN
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
LIN/EXE:IOSCAN.BOT IOSST,IOSCAN
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
SPLIT IOSCAN.BOT/B:1 ,IOSCAN.BIN
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
DEL/NOQ IOS(CAN,PP,RT,ST,XDP).OBJ
.EXIT <EXSTAT>

.BLDRS:
.SETS TSK "this 'SYSTEM' system only"
.IFT MPLVEC .OR .IFT POSVEC .SETS TSK "any 'SYSTEM' system"

; Running on 'SYSTEM' system.
;
; Building programs:
; IOSCAN.TSK - IOSCAN for 'TSK'
;
.SETS CLI "MCR"
.IFDF <CLI> .SETS CLI <CLI>
.SETF DCL
.IF CLI = "MCR" .GOTO COMPL
.SETT DCL
.IF CLI = "DCL" .GOTO COMPL
; Unsupported CLI - 'CLI' -- use MCR or DCL to build IOSCAN
;
.EXIT <ERROR>

.COMPL:
.SETS FILES "'RSXSTB' 'RSXMC'.MAC 'EXEMC'.MLB"
.GOSUB FILTST

.SETS DIR <UIC>
.IFDF <DIRECT> .SETS DIR <DIRECT>

.OPEN IOSCANPRE.MAC
.IFT MPLVEC .DATA IO$MPL = 0 ;M+ exec vector support
.IFT POSVEC .DATA IO$POS = 0 ;P/OS exec vector
.IFF MPLVEC .IFF POSVEC .DATA ;No exec vector support
.CLOSE

.OPEN IOSCANASM.CMD
.DATA IOSCAN=IOSCAN
.DATA IOSRSX='EXEMC'/ML,'RSXMC'/PA:1,SY:'DIR'IOSCANPRE,IOSRSX
.CLOSE

.OPEN IOSCANBLD.CMD
.DATA IOSCAN/PR:5=IOSRSX,IOSCAN
.DATA 'RSXSTB'/SS
.DATA /
.DATA ASG=TI:1
.DATA UNITS=1
.DATA //
.CLOSE

.GOSUB TSKTST

MAC @IOSCANASM
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
.IFT DCL LIN @IOSCANBLD
.IFF DCL TKB @IOSCANBLD
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
.IFT DCL DEL/NOWAR IOSCANPRE.MAC;*,IOSCANASM.CMD;*,IOSCANBLD.CMD;*
.IFT DCL DEL/NOWAR IOSCAN.OBJ;*,IOSRSX.OBJ;*
.IFT DCL PUR/NOWAR IOSCAN.TSK
.IFF DCL PIP IOSCANPRE.MAC;*,IOSCANASM.CMD;*,IOSCANBLD.CMD;*/DE/NM
.IFF DCL PIP IOSCAN.OBJ;*,IOSRSX.OBJ;*/DE/NM
.IFF DCL PIP IOSCAN.TSK/PU
.EXIT <EXSTAT>

.FILTST:
.SETF MISS
.100:
.PARSE FILES " " FILE FILES
.TESTFILE 'FILE'
.IF <FILERR> = 1 .GOTO 110
.SETT MISS
; File not found - 'FILE'
.110:
.IF FILES <> "" .GOTO 100
.IFT MISS ;
.IFF MISS .RETURN
.EXIT <ERROR>

.TSKTST:
.IFINS ...PIP .GOTO 200
INS $PIP
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
.200:
.IF <SYSTEM> <> 11 .IFINS ...MAC .GOTO 210
.IF <SYSTEM> <> 11 INS $MAC
.IF <SYSTEM> = 11 .IFINS ...PMA .GOTO 210
.IF <SYSTEM> = 11 INS $PMA
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
.210:
.IF <SYSTEM> <> 11 .IFINS ...TKB .GOTO 220
.IF <SYSTEM> <> 11 INS $TKB
.IF <SYSTEM> = 11 .IFINS ...PAB .GOTO 220
.IF <SYSTEM> = 11 INS $PAB
.IF <EXSTAT> <> <SUCCES> .EXIT <EXSTAT>
.220:
.RETURN

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


Возможно ли обработать код, посланный программой в Терминал
Обработка вывода из программ - это немного из другой оперы - это ближе к BATCH процессору.
Он в RT-11 тоже есть, но особой популярностью не пользовался.

hobot
13.09.2020, 20:38
Может hobot подскажет где
http://zx-pk.ru/showthread.php?t=24844&p=860891&viewfull=1#post860891

Manwe
14.09.2020, 18:54
В RT-11 начиная с версии 5.0 входит IND процессор, позволяющий кроме выполнения команд, писать достаточно навороченные программы.К сожалению, на системном диске Союз-Неона нет IND.SAV :( Я даже не знаю, существует ли он в природе.
А так вообще команда .GOTO решила бы мою задачу.

AFZ
14.09.2020, 19:28
Я даже не знаю, существует ли он в природе.Если там RT-11 V05.хх, безусловно, существует Его можно взять из стандартной RT-11 соответствующей версии. запуск нужного командного файла можно сделать командлй IND comfil (.СОМ указывать необязательно). Если же выдать команду SET KMON IND, то, после нее и до отмены командой SET KMON NOIND или до перезагрузки, любой командный файл вызванный по команде @comfil будет интерпретироваться не KMON'ом, а IND'ом.

Manwe
14.09.2020, 19:55
Если там RT-11 V05.хх, безусловно, существует Его можно взять из стандартной RT-11 соответствующей версии. запуск нужного командного файла можно сделать командлй IND comfil (.СОМ указывать необязательно). Если же выдать команду SET KMON IND, то, после нее и до отмены командой SET KMON NOIND или до перезагрузки, любой командный файл вызванный по команде @comfil будет интерпретироваться не KMON'ом, а IND'ом.Видимо, надо доставать исходники RT-11 и собирать из них IND.SAV под Союз-Неон. Или взять от УКНЦ? (если он там есть)

Hunta
14.09.2020, 19:58
Видимо, надо доставать исходники RT-11 и собирать из них IND.SAV под Союз-Неон
Не получится

Manwe
15.09.2020, 12:48
Не получитсяЕму нужна RT-11 версии выше 5.4?

Hunta
15.09.2020, 13:09
Хотя нет, возможно и получится.

Manwe
15.09.2020, 19:57
Хотя нет, возможно и получится.Было бы круто! Make Союз-Неон great again :)

Hunta
15.09.2020, 20:31
Было бы круто!
Я не говорил, что этим займусь. Если собирать из исходников - будет тот же самый вариант, что и в дистрибутиве - так что смысла в такой пересборке нет от слова совсем. А ковыряться и чего то там менять - ни времени, ни желанию, ни неона для проверки.

Manwe
15.09.2020, 20:32
Значит, нам нужен специалист по RT-11 с желанием запустить эмулятор Союз-Неона :)

hobot
15.09.2020, 22:53
Видимо, надо доставать исходники RT-11 и собирать из них IND.SAV под Союз-Неон.
так в чём проблема со штатной версией IND ? Кроме её отсутствия на дискете для НЕОНА, я что то не уловил?

Hunta
15.09.2020, 23:40
так в чём проблема со штатной версией IND
С ней проблем нет. Проблема в отсутствии знаний.

Manwe
16.09.2020, 15:14
С ней проблем нет. Проблема в отсутствии знаний.Посмотри название темы. Это не «проблема», это суть и естество данной темы. Сюда люди приходят чтобы задавать вопросы начального уровня про RT-11. Если в чём-то и есть проблема, так это в персонажах, пишущих сюда ради самоутверждения, вместо помощи. Не можешь или не хочешь помочь – не пиши в теме, предназначенной для помощи начинающим. Вроде, просто, да?

Hunta
16.09.2020, 15:24
вопросы начального уровня про RT-11


Видимо, надо доставать исходники RT-11 и собирать из них IND.SAV под Союз-Неон.

Ага - вопрос начального уровня.

troosh
16.09.2020, 17:26
так в чём проблема со штатной версией IND ? Кроме её отсутствия на дискете для НЕОНА, я что то не уловил?

Нет вроде проблем: взял первый попавший образ диска где эта программа была (конкретно тут (http://hobot.pdp-11.ru/BKGAMES/OSBK41/RT-11.3.dsk)). Попробовал пару простых скриптов из документации. Также работает упомянутая тут программа echo.sav.

Manwe
16.09.2020, 20:16
Нет вроде проблем: взял первый попавший образ диска где эта программа была (конкретно тут (http://hobot.pdp-11.ru/BKGAMES/OSBK41/RT-11.3.dsk)). Попробовал пару простых скриптов из документации.Спасибо, добрый человек! :) Всё работает.
Где-то я читал пару дней назад как назначить исполнение COM-файлов всегда на IND, а теперь не могу найти. Не обнаруживается в файле AA_PDU1A-TC_RT-11_IND_Control_Files_Manual_Aug91. От такого количества документации в разных местах голова идёт кругом.

Manwe
16.09.2020, 22:47
Всё получилось (https://www.pouet.net/prod.php?which=86916), всем спасибо за помощь.

Alex_K
17.09.2020, 20:18
Всё получилось (https://www.pouet.net/prod.php?which=86916), всем спасибо за помощь.
Оригинально вы упаковали. Командный файл и машинный код в одном флаконе. Теперь понятно, почему было столько вопросов про то, как прервать командный файл.

shattered
17.09.2020, 20:24
Демосценера видно за версту :)

Manwe
17.09.2020, 22:39
Оригинально вы упаковали. Командный файл и машинный код в одном флаконе. Теперь понятно, почему было столько вопросов про то, как прервать командный файл.:) В итоге Станислав Масловский предложил устанавливать бит "критическая ошибка" в JSW и после этого выходить из программы - в таком случае COM-файл прерывается. Правда, в документации написано, что this bit is ignored with foreground or system jobs, но всё равно сработало.


Демосценера видно за версту :)Ну а куда это годится, чтобы заголовок файла отжирал целых 512-байт?! Демосценеры таким сокровищем не разбрасываются! ;)

Alex_K
17.09.2020, 23:16
В итоге Станислав Масловский предложил устанавливать бит "критическая ошибка" в JSW и после этого выходить из программы - в таком случае COM-файл прерывается. Правда, в документации написано, что this bit is ignored with foreground or system jobs, но всё равно сработало.
Не в JSW, а в USRRB. А у вас задача background, потому и сработало. В SJ и SB мониторах только background. Foreground и system присутствуют в FB и XM-мониторах. На Союз-Неон FB-монитор запустить можно, многозадачная система кстати.

Manwe
18.09.2020, 10:48
В SJ и SB мониторах только background.А, теперь понятно. Спасибо.


На Союз-Неон FB-монитор запустить можно, многозадачная система кстати.Интересно, кто-нибудь этим пользовался?

litwr
26.09.2020, 11:05
Всё получилось (https://www.pouet.net/prod.php?which=86916), всем спасибо за помощь.

Классная Лизка - не могу поверить, что картинка и код в 512 байт на RT11 упаковались. А остался на свете хоть один Союз-Неон?

И главный вопрос - а будет ли порт для БК11?

Manwe
26.09.2020, 13:19
Классная Лизка - не могу поверить, что картинка и код в 512 байт на RT11 упаковались. А остался на свете хоть один Союз-Неон?Я видел 4 живых за последний год.


И главный вопрос - а будет ли порт для БК11?Как раз для БК был первый вариант: https://www.pouet.net/prod.php?which=86820

litwr
26.09.2020, 21:06
Я видел 4 живых за последний год.

Как раз для БК был первый вариант: https://www.pouet.net/prod.php?which=86820

Ну и ну! А казалось, что они совсем пропали, наверное золото уже экономить начали при их производстве.
К сожалению, на pouet нет версии для RT-11, а это самое исторически интересное.

Manwe
27.09.2020, 16:16
Ну почему не запишется, запишутся только не защищённые ячейки, если в карте битовой защиты стоит нулевой битик на данный адрес.Эксперимент на ОС БК-11 показал, что после загрузки в нулевом блоке остаются нетронутыми следующие диапазоны ячеек:
адрес (oct) - количество слов (dec)

70 - 4
122 - 41
250 - 8
300 - 24
400 - 128
Итого 410 байт. Попробую впихнуть туда демку для БК 0011М.

Update: Удалось втиснуть демку в 0-ой сектор. Но пришлось порезать кое-какие возможности. Много места ушло на борьбу с системой: запретить прерывания, установить страницу экрана в адресное пространство, восстановить нормальное положение скроллинга задать палитру. Не нашёл специального EMT для инициализации экрнан. Может быть кто знает такое для ОС БК-11?

Manwe
28.09.2020, 13:34
К сожалению, на pouet нет версии для RT-11, а это самое исторически интересное.Теперь есть! :)
Добавил в тот же zip-архив: https://www.pouet.net/prod.php?which=83525
Две версии: SAV-файл и COM-файл. Пришлось чуть порезать функционал по сравнению с оригиналом. В версиях для ОС БК-11 нельзя удерживать клавишу, чтобы ставить на паузу отрендеренный фрактал. И ещё в оригинале чередуются типы раскраски (с учётом переполнения и без), а в версиях для ОС БК-11 пришлось оставить только с учётом переполнения, на чередование не хватило места.
Кстати, оригинальную версию оптимизировал на 1 слово.

sebastian9922
05.10.2020, 04:27
Всем привет, добрый день.
Теперь это может быть невозможным вопросом, но возможно ли на RT-11 UKNC поменять раскладку клавиатуры с JCUKENG на QWERTY с помощью программного обеспечения ?.

Titus
05.10.2020, 04:39
Теперь это может быть невозможным вопросом, но возможно ли на RT-11 UKNC поменять раскладку клавиатуры с JCUKENG на QWERTY с помощью программного обеспечения ?.

Use emulator EmuStudio (https://zx-pk.ru/threads/18027-emulyator-uknts-emustudio.html). It has a normal keyboard layout.

sebastian9922
06.10.2020, 01:22
Use emulator EmuStudio (https://zx-pk.ru/threads/18027-emulyator-uknts-emustudio.html). It has a normal keyboard layout.

Спасибо за ответ. Хотелось бы знать, можно ли это сделать на настоящем железном компьютере UKNC.

Titus
06.10.2020, 02:03
Спасибо за ответ. Хотелось бы знать, можно ли это сделать на настоящем железном компьютере UKNC.
It is possible if you use a custom keyboard or PC-keyboard + controller, or FPGA-UKNC + PC-keyboard.

nzeemin
06.10.2020, 03:38
Спасибо за ответ. Хотелось бы знать, можно ли это сделать на настоящем железном компьютере UKNC.

Here you can find full UKNC ROM disassembly made by Alex_K: http://www.emuverse.ru/wiki/%D0%A3%D0%9A%D0%9D%D0%A6_ROM_disasm
Here's part 2 with keyboard driver where you could find keyboard layout tables: http://www.emuverse.ru/wiki/%D0%A3%D0%9A%D0%9D%D0%A6_ROM_disasm_2
So (in theory) you could try to alter the layout tables, then re-calculate ROM checksums at (176770..176776), probably that's a suitable solution.
But that's a significant amout of work to prepare the proper ROM alterations, test the new ROM on the emulator, burn to ROM chip and test on the real hardware.

Manwe
06.10.2020, 20:50
А как на счёт переназначения клавиш с помощью set sl on?
Подсмотрел в загрузочном диске для Союз-Неон – там клавиша / и ещё какая-то поменяны местами.

hobot
07.10.2020, 10:06
А как на счёт переназначения клавиш с помощью set sl on?
Подсмотрел в загрузочном диске для Союз-Неон – там клавиша / и ещё какая-то поменяны местами.
ха! УмнО! )
И есть наверное ещё (теоретическая) возможность написания резидентного драйвера клавиатуры, который будет обрабатывать скан-коды нужным образом, для примера работы со скан-кодами в комплекте с эмулятором на дискете @Alex_K (https://zx-pk.ru/member.php?u=3184), имеется исходник на ассемблере SCAN.MAC

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

Titus,
nzeemin, предложенные вами способы чрезмерно сложны без гарантии результата.

litwr
07.10.2020, 10:10
Всё получилось (https://www.pouet.net/prod.php?which=86916), всем спасибо за помощь.

Хорошо бы сделать Мону Лизу в ASCII Art чтобы работало на любом компе с RT-11. Возможно это будет первая демка в мире PDP-11.

hobot
07.10.2020, 10:56
Возможно это будет первая демка в мире PDP-11.
не будет, на PDP разнообразных демо - символьных и графических полным полно,
в том числе и специфических для конкретным ЭВМ (напр. УК-НЦ).
Даже я умудрился 1 сочинить ) На прошке есть демы, на Э-60 есть символьные демы,
есть символьная демка под VT52 и в моём написании = DWK Quest - демка простая совсем,
демка для УК-НЦ есть в папке 6022 архива и называется "КАЛЕЙДОСКОП" - символьная.

А как же Ascii - STAR WARS ? Чем не демо?
Ну и прочее прочее прочее
Мону не видел, но если будет для УК-НЦ или КЦГД вариант - будет только лучше! )

nzeemin
07.10.2020, 15:08
Titus,
nzeemin, предложенные вами способы чрезмерно сложны без гарантии результата.

А меж тем нашёлся вот человек который перевёл для себя загрузочное меню - https://youtu.be/6wKWdPNwVWw

Hunta
07.10.2020, 15:18
предложенные вами способы чрезмерно сложны без гарантии результата.
Ну да, конечно. А если сделать (небольшой) переходник под современную ЭСППЗУ - так и вообще задача станет нерешаемой

hobot
07.10.2020, 15:30
А меж тем нашёлся вот человек который перевёл для себя загрузочное меню
я видел, совсем недавно где уже всплывало это видео


Ну да, конечно.
написал Хунта, параллельно скупая на барахолке новенькие родные УК-НЦшные клавы )))

Hunta
07.10.2020, 15:57
скупая на барахолке новенькие родные УК-НЦшные клавы
Угу, месяца так два назад последний раз. И больше не собираюсь.
И кстати, проблем с работой на JCUKENG не испытываю.
Так же как с паяльником

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

А нет, соврал - полгода назад

sebastian9922
07.10.2020, 18:11
Here you can find full UKNC ROM disassembly made by Alex_K: http://www.emuverse.ru/wiki/%D0%A3%D0%9A%D0%9D%D0%A6_ROM_disasm
Here's part 2 with keyboard driver where you could find keyboard layout tables: http://www.emuverse.ru/wiki/%D0%A3%D0%9A%D0%9D%D0%A6_ROM_disasm_2
So (in theory) you could try to alter the layout tables, then re-calculate ROM checksums at (176770..176776), probably that's a suitable solution.
But that's a significant amout of work to prepare the proper ROM alterations, test the new ROM on the emulator, burn to ROM chip and test on the real hardware.

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

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

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


А как на счёт переназначения клавиш с помощью set sl on?
Подсмотрел в загрузочном диске для Союз-Неон – там клавиша / и ещё какая-то поменяны местами.

Эта идея была той же самой, о которой я думаю, когда вижу, что SL изменил некоторые ключи из таких мест, как : в ключе;+.возможно, это уже было программное обеспечение для этого.

litwr
07.10.2020, 18:42
не будет, на PDP разнообразных демо - символьных и графических полным полно,
в том числе и специфических для конкретным ЭВМ (напр. УК-НЦ).
Даже я умудрился 1 сочинить ) На прошке есть демы, на Э-60 есть символьные демы,
есть символьная демка под VT52 и в моём написании = DWK Quest - демка простая совсем,
демка для УК-НЦ есть в папке 6022 архива и называется "КАЛЕЙДОСКОП" - символьная.

А как же Ascii - STAR WARS ? Чем не демо?
Ну и прочее прочее прочее
Мону не видел, но если будет для УК-НЦ или КЦГД вариант - будет только лучше! )

Мона на ссылке. А интересная тема - демки на PDP-11! У BQT на 11/70 полно игр, но демок там не нашёл. Помогите, где их найти. Именно для любых PDP-11, без привязок к аппаратуре. Если DWK Quest такая, то где её найти? Где искать демки для Э60 и которые не для Юникс?

TheGWBV
07.10.2020, 21:47
ха! УмнО! )
И есть наверное ещё (теоретическая) возможность написания резидентного драйвера клавиатуры, который будет обрабатывать скан-коды нужным образом, для примера работы со скан-кодами в комплекте с эмулятором на дискете @Alex_K (https://zx-pk.ru/member.php?u=3184), имеется исходник на ассемблере SCAN.MAC

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

Titus,
nzeemin, предложенные вами способы чрезмерно сложны без гарантии результата.

Думаю, это самый разумный метод.
Тем более, что не за горами подключение клавиатур ps/2 к БК, УК-НЦ, Союз-Неонам (кстати, на днях Гена из B&B сообщил, что на Неоне без переделок исполнялась родная RT-11 от Dec-a)...

hobot
08.10.2020, 12:29
что не за горами
новодел УК-НЦ (https://zx-pk.ru/threads/30964-revers-inzhiniring-uknts-(1515khm1-amp-2-1801vp1-1801vm2).html) вообще то, что естественно подразумевает использование современной клавиатуры,
вот только - лично я сторонник аутентичной раскладки - ибо считаю это правильным, потому что так
есть на живых машинках, так исторически сложилось и у тех кто на классической машинке работал
проблем с этим не должно быть в принципе. Кое кто уже сегодня имеет современную клавиатуру
к УК-НЦ подключенную - это так, для информации просто, я практического смысла в этом не вижу
абсолютно. Вот я сажусь за эмулятор, включаю UKNBTL и я реально ощущаю, что сижу за УК-НЦ.
И это заслуга авторов эмулятора вообще и Alex_K в частности, поскольку я помню сколько раз он уточнял детали по раскладке прежде чем оформился сегодняшний результат. И сколько раз тестировали перетестировали \ собирали пересобирали версию эмулятора - зато теперь раскладка практически идеальная.

В эмуляторе ДВК Patron'а совсем другая тема, но и там не задумываясь работаешь на клавиатуре!!!
В общем я своё мнение написал. Ещё на ранних версиях UKNCBTL - почитайте тему, там всё написано уже,
в том числе подробное обсуждение раскладки клавиатуры.

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


Думаю, это самый разумный метод
вариант с драйвером для тех, кто боится ЙЦУКЕН, для вновь прибывших в основном получается)))

TheGWBV
08.10.2020, 17:08
>вариант с драйвером для тех, кто боится ЙЦУКЕН, для вновь прибывших в основном получается)))
Поясню относительно себя...
Посидев выхи на Juken за кодом для БК, первые дни рабочей недели сыпишь опечатками в работе, что снижает производительность оплачиваемого труда.
Т.е. кому-то нужен щадящий режим клавиатуры, чтобы из-за хобби не страдала работа :)

Hunta
08.10.2020, 17:29
первые дни рабочей недели сыпишь опечатками в работе
Да лана, полчаса примерно на перещёлкивание в голове :)
Хотя, вполне возможно, сказывается, что лет 15 сидел за JCUKENG и лет 20 за QWERTYU :)

hobot
08.10.2020, 17:42
Да лана, полчаса примерно на перещёлкивание в голове
да чего там перещёлкивать, где латинская буква там такая же Русская - вот и всё перещёлкивание [Д / D] - кайф же полный, у меня обе клавиатуры сейчас по переменно используются: слева УК-НЦ, справа ПиСишная ) Родная УК-НЦ клавиатурка - это же часть того самого, ради чего весь компот и заварен )


TheGWBV, а как быть с ретро-кощейством ? )))))))))))

troosh
08.10.2020, 17:43
не за горами подключение клавиатур ps/2 к БК, УК-НЦ, Союз-Неонам.

В Союз-Неоне драйвер клавиатуры находится в ПЗУ со своей таблицей соответствия сканкодов ВВ79 в коды символов. Казалось бы поставь клавиатуру от Поиска с нормальной раскладкой и просто перебей табличку... Так нет, замечено что некоторый софт (драйвер мыши!), всё равно лезет непосредственно в ВВ79 минуя драйвер клавиатуры. Повбывав-бы.

hobot
08.10.2020, 17:50
А как на счёт переназначения клавиш с помощью set sl on?
кстати говоря родной SL.SYS всего то 5 назначений поддерживает )))



→ ЛAТ

Symbol Value
------ --------------------------------
; DIR/FU/VO/BL
\ nys
b lin
d dess
x mac

0 empty entries

SET SL LET is in effect
Bpeмя Дaтa
00:00:40 08-Oкт-2020, Чeтвepг

MZ0>

!archive.pdp-11.org.ru!

Manwe
08.10.2020, 19:19
кстати говоря родной SL.SYS всего то 5 назначений поддерживаетМожет быть. На Союз-Неоне у меня задано 7 значений и ещё 224 байта свободно.

TheGWBV
08.10.2020, 21:47
В Союз-Неоне драйвер клавиатуры находится в ПЗУ со своей таблицей соответствия сканкодов ВВ79 в коды символов. Казалось бы поставь клавиатуру от Поиска с нормальной раскладкой и просто перебей табличку... Так нет, замечено что некоторый софт (драйвер мыши!), всё равно лезет непосредственно в ВВ79 минуя драйвер клавиатуры. Повбывав-бы.

А с какой целью драйвер мыши лезет к ресурсам клавиатуры, впринципе? Зачем оно вообще? :)

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

Ну, а клава не от Поиска, потому что другая экосистема и наследие :)
Кстати, где-то читала, что Стив Возняк в первых эплах ещё писал под 6502 эмулятор 16-ти битного проца, а сам софт был 16-ти битный как бы.
Это была эмуляция проца моторолы или таки pdp-11 какого-то? Кто-нибудь в курсе?

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


Да лана, полчаса примерно на перещёлкивание в голове :)
Хотя, вполне возможно, сказывается, что лет 15 сидел за JCUKENG и лет 20 за QWERTYU :)

Ну, я только 7 лет за БК в 90-х. Скорее даже проблема выглядит так - только за выхи привыкнешь к jcuken, как пора снова привыкать к qwerty :) а времени на это жалко)

troosh
08.10.2020, 21:50
А с какой целью драйвер мыши лезет к ресурсам клавиатуры, впринципе? Зачем оно вообще? :)
Ну если мыши нет, а очень хочется стрелки погонять?..
В случае отсутствия физического устройства, программы, использующие МЫШЪ, без модификации могут управляться посредством клавиатуры. Выделенные комбинации клавиш клавиатуры позволяют управлять работой программ вне зависимости от фактического наличия манипулятора. (отсюда (https://github.com/troosh/pk11-16/blob/master/Docs/P16DOC.DSK/VPMSC1.DOC.txt))

TheGWBV
08.10.2020, 22:06
да чего там перещёлкивать, где латинская буква там такая же Русская - вот и всё перещёлкивание [Д / D] - кайф же полный, у меня обе клавиатуры сейчас по переменно используются: слева УК-НЦ, справа ПиСишная ) Родная УК-НЦ клавиатурка - это же часть того самого, ради чего весь компот и заварен )


TheGWBV, а как быть с ретро-кощейством ? )))))))))))

D ≈ Д... Только это и спасает :)
С кощейством в норме, но и не хочется зачахнуть))

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


Ну если мыши нет, а очень хочется стрелки погонять?..
В случае отсутствия физического устройства, программы, использующие МЫШЪ, без модификации могут управляться посредством клавиатуры. Выделенные комбинации клавиш клавиатуры позволяют управлять работой программ вне зависимости от фактического наличия манипулятора. (отсюда (https://github.com/troosh/pk11-16/blob/master/Docs/P16DOC.DSK/VPMSC1.DOC.txt))

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

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

shattered
08.10.2020, 22:28
Стив Возняк в первых эплах ещё писал под 6502 эмулятор 16-ти битного проца, а сам софт был 16-ти битный как бы.
Это была эмуляция проца моторолы или таки pdp-11 какого-то? Кто-нибудь в курсе?

Это был синтетический процессор https://en.wikipedia.org/wiki/SWEET16

troosh
08.10.2020, 22:48
Ну, а клава не от Поиска, потому что другая экосистема и наследие :)

Ой, бес попутал, - клава не от Поиска, а от МС1502. Ну во всяком случае визуально выглядит точно также, только колпачки иначе разрисованы.

TheGWBV
08.10.2020, 22:59
Это был синтетический процессор https://en.wikipedia.org/wiki/SWEET16

Почитала - помечтала, спасибо :)
Правильно ли у меня отложилось в памяти, что RT-11 использует для системных вызовов эмуляцию прерываний EMT0.. И все ли допустимые в машинном коде номера EMT уже заняты rt-11 и ВПО советских машинок?

На 1801вм1 вход в обработчик прерываний EMT отнимает больше десятка тактов, емнип, что вызывает грусть и печаль... А как с этим у 1806ВМ2 и 1801ВМ2, сколько тактов с начала исполнения EMT до начала исполнения кода EMT-ловушки?

Команда IOT и её ловушка уже забраны под нужды rt-11 и драйверы устройств?

На БК0010 с этими ресурсами много свободы у программиста :)

Hunta
08.10.2020, 23:45
Команда IOT
Только EMT. Причём даже не всё номера. Много функций у EMT 375
RSX вообще использует только EMT 377 (EMT 376 для привилегированных программ и самой системы)

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

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

AFZ
09.10.2020, 08:36
IOT пользует так называемая перфоленточная операционная система (ПЛОС). Вроде-бы, еще IOT пользует XXDP (ТМОС), но это не точно, я просто не помню. "Настоящие" ОС IOT не используют.

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


На 1801вм1 вход в обработчик прерываний EMT отнимает больше десятка тактов, емнип, что вызывает грусть и печаль...Любое прерывание состоит из пяти циклов шины: первый - получение вектора прерывания для аппаратных прерываний от периферии, либо выборка команды прерывания (IOT, TRAP, EMT), второй и третий - сохранение в стеке PS и PC, четвертый и пятый - загрузка из области векторов новых PC и PS. Сколько там у ВМ1 тактов на один цикл шины? 4? Значит не менее 20 тактов на любое прерывание...

hobot
09.10.2020, 11:47
Может быть. На Союз-Неоне у меня задано 7 значений и ещё 224 байта свободно.
не путайте штатный SL.SYS с отечественным драйвером Сторожевых ! )

@TheGWBV (https://zx-pk.ru/member.php?u=7838), в выходные исходники набивать строго в блокноте окошек и компилировать в эмуляторе, а на живой машинке работать (счастье есть!) с ОС RT-11, гонять проверочные сборки своих исходников, возможно по ностальгии игры играть. И времени будет тратиться гораздо меньше, ПКМ на компиляцию точно!!!

Про кощейство - вы меня видимо, ув. Хранительница, не поняли, слишком толсто видимо выразился, обыграв вашу реплику про ретро-кощунство = т.е. лепить к ретро машинке извр. всякими способами современную клавиатуру - это вы кощунством не считаете? Ну и стандартики у вас. Впрочем я не в коей мере не пытаюсь быть агрессивным, просто дёргаю за косичкИ ;-)

По поводу мышей и джойстиков обманывающих и претворяющихся клавиатурой - если я не ошибаюсь, вариант джойстика для УК-НЦ (в глаза его не видел, бесовская игрушка!), претворяется ДКЛ в режиме ДКЛ. Хотя я могу и ошибаться, и могли быть иные реализации ? )

Alex
09.10.2020, 15:30
Дай бог памяти, много EMT с разными кодами пользовала DOS-11, но я её живьём видел ровно один раз - на СМ-4(АРМ чертёжника), там специально для графического софта запускали :) Был первый курс ...

shattered
09.10.2020, 15:31
А что за софт такой?

Alex
09.10.2020, 15:39
Там были устройства, кои ныне зовутся дигитайзерами... ПКГИО и УВКГИ. Планшетный кодировщик графической информации и универсальный кодировщик графической информации.
Обычно гоняли ПКГИО в оффлайн режиме с выводом на перфоленту. Потом с этой перфоленты в текстовый файл, правка в редакторе и использование ...
Технология была отработана :)
И был исходный софт на эти изделия. Как называлось - не помню :( Я в сторонке стоял...
Но запускался при мне он один раз... Что-то надо было ...

Hunta
09.10.2020, 15:44
Дай бог памяти, много EMT с разными кодами пользовала DOS-11
Ну, я бы сказал - относительно много :) но таки да - не один-два кода :)
Но учитывая, что у неё никакого управления ДП - то по сути это - системно-независимый однословный способ обратится к системным подпрограммам в/в

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

Я с СМ-3 и DOS/Batch-11 начинал знакомство с миром компьютеров :) Целый семестр :)

Alex
09.10.2020, 15:52
DOS-11 была написана тогда, когда не было диспетчера памяти... Да и 56 кбайт были не всегда заполнены...
RT-11 оказалась сильно приятнее :) Но это было уже потом...

BYTEMAN
24.10.2020, 01:32
Товарищи, напомните пожалуйста, как быть. Вот есть у меня какой-то драйвер, пусть будет например MX. Хочу я его запустить на уже установленной и настроенной системе. Взял HX.SYS, скопировал в систему. Ожидаю, что при перезагрузке он подхватится и будет работать, но оно сходу не заводится, пишет ошибку (уже точно не помню, какую). Напомните пожалуйста, какие ещё действия надо сделать, чтобы драйвер подхватится системой и она начала видеть устройства с ним? В частности, хочу на свою ДВК попытаться установить ADOS и туда драйверы MX, MY, HX...

Hunta
24.10.2020, 10:49
Если драйвер не подхватился сходу, то в принципе возможны два варианта - или устройства нет или конфликт опций SYSGEN. Для драйвера HX, кстати, возможен только второй вариант. Сообщение, когда устройства нет:


.INS ZE:
?KMON-F-Invalid device installation SY:ZEX.SYS

.


Сообщение при конфликте опций SYSGEN:


.INS ZD:
?KMON-F-Conflicting SYSGEN options

.

В случае конфликта - более правильный вариант - пересобрать драйвер с нужными опциями, более быстрый - найти вариант драйвера с нужными опциями. Посмотреть опции системы можно через SHOW CONFIGURE, опции драйвера - утилитой HAND.SAV или HANDLE.SAV (в состав дистрибутива не входят, это утилиты не от DEC)

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

Опций SYSGEN примерно 4 штуки (больше не вспомнил) - поддержка таймаута в/в устройством, поддержки регистрации ошибок, поддержка расширенной памяти, поддержка RTEM. Но - поддержка расширенной памяти - ака драйвер для XM монитора - у драйвера имя с суффиксом X, поддержка RTEM - насколько я помню - у драйвера имя с суффиксом М, да и опция эта - экзотика, остаётся поддержка таймаута и регистрации ошибок. Регистрация ошибок в системе - тоже встречается редко (хотя и чаще, чем RTEM), так что если проблема в SYSGEN - самый большой шанс у поддержки таймаута.

Если система поддерживает таймаут, в SHOW CONFIGURE будет строчка


Device I/O time-out support


Чего пишется в случает поддержки регистрации ошибок - показать не могу, нет у меня такой системы, но скорее всего, будут слова ERROR и LOGGING или ERRLOG.

Да, можно, конечно ещё поменять не драйвер, а систему :)


ADOS
Про эту систему и её драйвера ничего не могу сказать

Alex
26.10.2020, 09:07
Ещё были драйвера, которые сами частично настраивались на систему. Типа :
SET MX SYSGEN
и драйвер соответствовал системе. Но надо было это учитывать, что это только атрибуты устанавливались...
Сам драйвер окромя ввода-вывода ничего не поддерживал, чаще всего.

Hunta
26.10.2020, 10:26
Ещё были драйвера, которые сами частично настраивались на систему
Я с этим подходом детально не разбирался (мои драйвера используют классический подход), драйвера без исходников, для которых восстанавливал исходник, с таким механизмом не попадались, так что, учитывая часто попадающиеся всякие "улучшения" во внутренностях драйверов, к таким драйвера отношусь настороженно. То есть я не говорю, что все они не рабочие, но если есть возможность - использую драйвера без этого механизма :)

Для HX, кстати, я просто собрал его варианты под разные значения параметров SYSGEN

Alex
26.10.2020, 14:58
Из прикола, в XM-мониторе (в RT11 v5.2), если устройство не системное и использована опция SYSGEN, то для задач не работающих с расширенной памятью и не помещённых туда VBGEXE, то такие драйвера обеспечивают ввод-вывод :)

hobot
26.10.2020, 23:30
хочу на свою ДВК попытаться установить ADOS и туда драйверы MX, MY, HX...
кроме последнего все драйвера под ADOS уже есть и DW - там какой-то то же есть. HX только добавить (если очень надо)
и всё.




.Dir/Fu/Bl/Vol HX
26-Oct-2020
Volume ID: HD System
Owner : v05.07
HX .SYS 6 16-Mar-2016 295 < UNUSED > 63 1682
1 Files, 6 Blocks
63 Free blocks

.HAND HX

Имя драйвера HX.SYS
Код устройства 363 (не идентифицирован)
В устройстве блоков 1600.
Регистр CSR=177560
Вектор 0
Обработка прерываний .+132
Приоритет 340
Размер драйвера 1536 байт, 431. слов
Начальный загрузчик 1000 байт, 256. слов
Контроль установки Есть
Параметры генерации TIM$IT=0 (не поддерживает тайм-аут)
MMG$T =0 (не поддерживает диспетчер памяти)
ERL$G =0 (не поддерживает регистратор ошибок)
Слово состояния FILST$=1 (прямой доступ)
RONLY$=0 (не только для чтения)
WONLY$=0 (не только для записи)
SPECL$=0 (стандартная файловая структура)
HNDLR$=0 (не выполняет простые завершающие операции)
SPFUN$=1 (выполняет специальные функции)
ABTIO$=0 (не выполняет завершающие операции)
VARSZ$=1 (поддерживает тома переменного размера)
SET HX [NO]ERLG
SET HX [NO]TIMIT
SET HX INFORM
SET HX LIST
SET HX HXCSR=<восьмеричное значение>
SET HX TTCSR=<восьмеричное значение>

.


Если INS HX выдаст ошибку - отпишись.

BYTEMAN
27.10.2020, 11:28
Информацию принял, всем спасибо! Как доберусь до железки - отпишусь о результатах.

BYTEMAN
24.11.2020, 01:32
Вот зараза, устройство устанавливается, но при попытке сделать DIR машина повисает, хотя я вижу что обмен между эмулятором и ДВК был... Но на экране ничего не появилось... Вот блин..

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

Но по ctrl-c прерывается и выходит в приглашение...

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

заработало! сделал ttcsr=176560, как и hxcsr

hobot
24.11.2020, 02:03
Вот зараза,

заработало! сделал ttcsr=176560, как и hxcsr
то что "заработало" - безусловно хорошо, но вот твой пост выше никаким боком к RT-11 не относится,
вопросы по работе с эмулятором терминала лучше и задавать в теме эмулятора терминала (ты ведь модератор сам?)

Manwe
05.01.2021, 11:25
Единственная игра с БК 0011, которая запустилась на Союз-Неоне. Правда, немного тормознуто.

74391

hobot
05.01.2021, 17:53
Единственная игра с БК 0011
попробуй с этого образа dwkwebcomplekt\arsDVK\GAMES1.DSK
MARS .SAV 15P 29-Mar-1984

Manwe
05.01.2021, 22:30
74397

Родной DECовский “Space Invader” завёлся отлично на «Союз-Неоне»

hobot
06.01.2021, 13:55
Родной DECовский “Space Invader” завёлся отлично на «Союз-Неоне»
чему ты так удивляешься мне честно не совсем ясно,
тебя удивляет, что программа для RT-11 работает под RT-11, да и на родственном процессоре к тому же?
Вот если бы не работало, тогда было бы честно чему удивляться )

Manwe
07.01.2021, 10:41
чему ты так удивляешься мне честно не совсем ясно,
тебя удивляет, что программа для RT-11 работает под RT-11, да и на родственном процессоре к тому же?
Вот если бы не работало, тогда было бы честно чему удивляться )десяток других игр не заработал.

CodeMaster
07.01.2021, 11:28
десяток других игр не заработал.
Для RT-11 или для БК-11? На БКашке была неполноценная RT'шка ;-)

hobot
07.01.2021, 15:46
десяток других игр не заработал.
например?

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

Manwe
08.01.2021, 10:16
например?Вот эти: http://pdp11.saracom.com/