Просмотр полной версии : ДВК (и всё, что с ними связано)
Страницы :
1
2
3
4
5
[
6]
7
8
9
10
11
12
13
14
15
16
17
18
19
Получается, раз затирать вектора программа не может, то первые пара секторов в ней хранятся впустую?
Почему впустую - не все вектора защищены. Вектора для BPT, IOT, TRAP к примеру программа может переписывать. Также может переписывать вектора устройств которые не заняты, но это уже ненадежно - лучше явно из программы запрашивать. Кроме того не пара секторов, а один сектор.
И не забываем, что в этом секторе хранятся собственно параметры самой программы и грузятся в адреса 40-56.
вообще-то, команды R и RUN немного отличаются в работе - с помощью R <имя файла> можно запустит программы ТОЛЬКО с устройства SY:, тогда как RU и RUN запускают с любого.
вообще-то, команды R и RUN немного отличаются в работе - с помощью R <имя файла> можно запустит программы ТОЛЬКО с устройства SY:, тогда как RU и RUN запускают с любого.
Уточнение - так было в старых системах. В последних версиях RT-11 синтак команд R и RUN одинаков и разница только в устройстве по умолчанию - то есть можно написать "R DK:FILE".
.HELP R
R Loads and starts a program
SYNTAX
R filespec[ input-list[ output-list]]
or R filespec[ argument]
SEMANTICS
Filespec is the name of the program to be started. The default
device is SY: and the default file type is .SAV. Any argument
or input and output list you include is passed to the program
in CSI format.
OPTIONS
None
EXAMPLES
R MYPROG
R DX1:MYPROG
R DIR DX1:*.* LP:/E
.HEL RUN
RUN Loads and starts a program
SYNTAX
RUN filespec[ input-list[ output-list]]
or RUN filespec[ argument]
SEMANTICS
Filespec is the name of the program to be started. The default
device is DK: and the default file type is .SAV. Any argument
or input and output list you include is passed to the program
in CSI format.
OPTIONS
None
EXAMPLES
RUN MYPROG
RUN DX1:MYPROG
RUN DIR DX1:*.* LP:/E
.
Не совсем понимаю, по какому принципу в ОС RT-11 действует в командной строке при нажатии на клавиши вверх/вниз листание предыдущих набранных команд. Загружаю систему, нажимаю DIR. Получаю каталог. Нажимаю вверх/вниз, команда DIR не выскакивает. Потом нажимаю RUN LAND. Запускается игра LAND. Выхожу из нее, нажимаю вверх/вниз, теперь работает, появляется в командной строке надпись RUN LAND. Потом чего-то позапускаю, опять перестает появляться. От чего это зависит?
В защиту драйвера SL.SYS версии 8 от Сторожевых С.В.
Всю дорогу его использовал (на УКНЦ) - глюков никаких не наблюдал !
Если ты говоришь о забитой в драйвере команде по нажатию кнопки,
например у тебя в SL на кнопку ";" забито Dir - и ты просто нажал её без
ввода с клавиатуры каких-либо символов - SL не станет запоминать её !!!
Смысл ? Причём в случае как я забил в SL эту кнопку в режиме < auto
на загрузочной дискете, вся забитая строка выскочит перед указанным
тобой пути, директорию которого ты хочешь просмотреть.
В таком же режиме там забиты запуск mac и lin.
Если часто используешь один и тот же набор команд,
набери SE SL SAVE, и драйвер сохранит в памяти всё кольцо команд
(независимо от перезагрузок и вкл.выкл. компа)
пока ты не отменишь это командой SE SL NOSAVE.
Run - запускает программы с DK: устройства ( текущего )
R - строго с системного ( с того которого загрузились )
Такие дела.
Кстати обнаружился неприятный момент с той (http://zx.pk.ru/showpost.php?p=428561&postcount=87) загрузочной дискетой
"шустрой с ассемблером", которую я по запросу Titusa выложил. В плане
игрушек всё работает (со сборника игр для UKNCBTL) , кроме CAT.gam он вылетает в trap to 10.
Titus, там где образ дискеты и архив с доками не зря же я прилепил, читай, там и подробное описание драйвера SL.SYS есть, и много другого элементарно полезно-справочного.
:redface:
глюков никаких не наблюдал !
Навскидку глюк: попробуй в SIPP что-нибудь сделать :)
Собственно даже не сделать - просто ввести ися файла :)
кроме CAT.gam он вылетает в trap to 10.
Не разобрался, почему?
Не разобрался, почему?
Из за версии монитора, но для программирования и для остальных игрушек на эмуляторе или на реальной УКНЦ-шке вполне пойдет, я ещё один образ с другим
монитором (наверно ещё более стареньким) сделаю позже, ну подумаешь кот?
:smile:
Навскидку глюк: попробуй в SIPP что-нибудь сделать
Собственно даже не сделать - просто ввести ися файла
Прости мою не образованность, но я понятия не имею о чём речь )))
Честно.
... В плане
игрушек всё работает (со сборника игр для UKNCBTL) , кроме CAT.gam он вылетает в trap to 10.
Игра CAT.GAM шла для ДВК с КГД, на УКНЦ она патченная (патчил не я), патч располагается с адресов 500 и выше. form правильно заметил, что для новых систем надо установить бит 8 (CHAIN$) в смещении 44 (JSW), чтобы загружалась в память информация в адреса 500-776. Надо DESS-ом установить этот бит, в блоке 0, смещение 44. Надо к текущему значению прибавить 400, там сейчас 100000, будет 100400.
После этого даже в RT-11 V05.07 запускается.
После этого даже в RT-11 V05.07 запускается.
Alex_K на форуме Добавить отзыв для Alex_K Пожаловаться на это сообщение
Да, но если загрузится с другой дискеты (например с той что прилеплена к эмулятору) или с id0 например, этот котяра без проблем запускается ! ))) Так что версия кота на сборнике выбрана как-раз уже для УКНЦ переделанная (а не просто очередная) и проверенная в UKNCBTL как и все другие игры на этом сборнике.
А если править игрушку Dess-ом, надо отдельного кота заводить для старых мониторов и новых )))
Да, но если загрузится с другой дискеты (например с той что прилеплена к эмулятору) или с id0 например, этот котяра без проблем запускается ! ))) Так что версия кота на сборнике выбрана как-раз уже для УКНЦ переделанная (а не просто очередная) и проверенная в UKNCBTL как и все другие игры на этом сборнике.
Это зависит от версии RT-11, с ID0 грузится версия 5.02, на дисках с эмулятором 5.00 или 5.01. Это новшество было введено или в 5.03 или в 5.04.
В сущности подобные различия достаточно подробно описаны в RT-11 V5.6 Release Notes (http://pdp-11.nsk.ru/files/docs/rt-11/rtv56-relnot.zip) с указанием версии системы в которой изменение было сделано. Правда конкретно про chain версия не указана :)
Это зависит от версии RT-11
Так я и написал - из за версии монитора =) Просто одна позиция (кот-гад а не спортсмен оказался) обидно конечно, там есть, например LANDM - так вот он без проблем с той дискетой работает. Версия там 5.02 но какая-то хитрая попалась.
Так я и написал - из за версии монитора =) Просто одна позиция (кот-гад а не спортсмен оказался) обидно конечно, там есть, например LANDM - так вот он без проблем с той дискетой работает. Версия там 5.02 но какая-то хитрая попалась.
В мониторах где покопались советские шаловливые ручки номер версии не всегда является надежным источником информации :)
У меня к примеру есть "RT-11SJ V5.6" в коллекции, а такого не существует в принципе, и вроде как этот вариант попадался автору WD. Так, что "не верь глазам своим" :)
Версия там 5.02 но какая-то хитрая попалась.
Там высвечивается 5.02A, что-то такой версии не припомню.
Там высвечивается 5.02A, что-то такой версии не припомню.
Да, вроде в 5.01 были варианты, а следующий с вариантами - 5.04 - там их аж 8 штук :)
Так, что "не верь глазам своим"
Там высвечивается 5.02A, что-то такой версии не припомню.
Без комментариев, нармальная дискета с ассемблером и линком,
я просто позже (для себя в первую очередь) переделаю и выложу с монитором
в котором и программы можно ладить и в игры играть (ориентируюсь на эмулятор в первую очередь конечно).
И всё из за одного кота!!! Но вот кто он после этого ??? "смайл"
Без комментариев, нармальная дискета с ассемблером и линком,
я просто позже (для себя в первую очередь) переделаю и выложу с монитором
в котором и программы можно ладить и в игры играть.
И всё из за одного кота!!! Но вот кто он после этого ??? "смайл"
К слову, описанное изменение на тему загрузки 500-776 всего лишь привело систему в соответствие с документацией еще на RT-11 V4. Но программерам конечно пофигу такие вещи как возможные варианты - программер всегда точно знает, что во всем мире есть только та система в которой он сейчас :)
Может выдерживали совместимость чтобы древний MU/BASIC какое-то время поработал? :)
Без комментариев, нармальная дискета с ассемблером и линком,
я просто позже (для себя в первую очередь) переделаю и выложу с монитором
в котором и программы можно ладить и в игры играть (ориентируюсь на эмулятор в первую очередь конечно).
И всё из за одного кота!!! Но вот кто он после этого ??? "смайл"
Там в этой дискете как-то хитро MZ2 и MZ3 настроены, в эмуляторе диск не читается.
Там в этой дискете как-то хитро MZ2 и MZ3 настроены
Упс! Заметил сегодня уже... Первый блин комом )))
Всё идёт к тому, что надо (как я уже писал) просто загрузочную дискету переделать,
что я и сделаю (запрос Titusa только повод был - мне самому по старой памяти удобного загрузчика не хватало), просто это же не всем нужно и уж точно не к спеху. Любой может в любой момент 100 системных дискет записать )))
Упс! Заметил сегодня уже... Первый блин комом )))
Ничего, второй будет екзешником ;)
Кстати обнаружился неприятный момент с той (http://zx.pk.ru/showpost.php?p=428561&postcount=87) загрузочной дискетой
"шустрой с ассемблером", которую я по запросу Titusa выложил. В плане
игрушек всё работает (со сборника игр для UKNCBTL) , кроме CAT.gam он вылетает в trap to 10.
А на моей дискете с шустрым ассемблером, которую я выкладывал, этот CAT.gam работает)
Titus, спасибо, даже не знаю что и ответить ))) Но настроение поднял однозначно ))) А какая именно дискета твоя ? ))))))))))))))))))
Я монитор и mz.sys брал не с твоего образа - вот в чем дело.
Titus, спасибо, даже не знаю что и ответить ))) Но настроение поднял однозначно ))) А какая именно дискета твоя ? ))))))))))))))))))
Я монитор и mz.sys брал не с твоего образа - вот в чем дело.
Поищи в теме, это единственное, что я недавно выкладывал.
Подскажите, что за расширения .gpr и .gra?
Найдены на дисках с софтом для КЦГД.
.gra - уверен, что картинки. Только под какой редактор?
а внутри файлов .gpr есть стринг CGRED-I-GPR.
---------- Post added at 19:11 ---------- Previous post was at 19:09 ----------
И еще - что, игры под КЦГД ограничились одним LANDD?
А тесты одним KC?
Поищем у себя в архивах, товарищи ДВК-шники...
---------- Post added at 19:15 ---------- Previous post was at 19:11 ----------
А еще картинки .kar, и какие-то .grf?
Есть ли краткий список всех EMT системных? Чтобы EMT - и функция. Без описания всей RT-11.
Чтобы EMT - и функция.
Такой вариант устроит?
Такой вариант устроит?
Почти. Тут только названия функций, без кратенького описания.
И еще, что за програма PIP.SAV? Программы на ДВК ее просят.
Есть ли краткий список всех EMT системных? Чтобы EMT - и функция. Без описания всей RT-11.
RT-11 System Macro Library Manual (http://pdp-11.nsk.ru/files/docs/rt-11/rtv56-sysmac.zip)
Только зачем собственно?
Писать программы удобнее с использованием самих макросов. Разьве что дизассемблировать :)
---------- Post added at 11:03 ---------- Previous post was at 11:02 ----------
Почти. Тут только названия функций, без кратенького описания.
И еще, что за програма PIP.SAV? Программы на ДВК ее просят.
Программа работы с файлами которая обрабатывает команды COPY, DELETE, RENAME, TYPE итд.
Почти. Тут только названия функций, без кратенького описания.
Кратенького нет, есть стандартное 150 стр., делать?
RT-11 System Macro Library Manual (http://pdp-11.nsk.ru/files/docs/rt-11/rtv56-sysmac.zip)
Только зачем собственно?
Писать программы удобнее с использованием самих макросов. Разьве что дизассемблировать :)
Да, мне именно для копания в коде.
---------- Post added at 11:49 ---------- Previous post was at 11:48 ----------
Программа работы с файлами которая обрабатывает команды COPY, DELETE, RENAME, TYPE итд.
Выложите тут стандартную PIP.SAV, пожалуйста. И еще стандартную UCL.SAV.
Выложите тут стандартную PIP.SAV, пожалуйста. И еще стандартную UCL.SAV.
Система какая? Они немного отличаются в пределах разных 5.x.
Кратенького нет, есть стандартное 150 стр., делать?
Если оно 'RT-11 System Macro Library Manual', то уже выложили.
---------- Post added at 11:51 ---------- Previous post was at 11:50 ----------
Система какая? Они немного отличаются в пределах разных 5.x.
А вот фиг ее знает) Я гружусь с системы, которую тут уже выкладывал. Она в принципе для УКНЦ заточена. При загрузке пишет RT-11SJ V05.02.
При загрузке пишет RT-11SJ V05.02.
Поверим и будем считать, что это 5.02 :)
Поищем у себя в архивах, товарищи ДВК-шники...
предлагаю мою тему (http://zx.pk.ru/showthread.php?t=16861) поддержать с запросами по софту, не стесняемся ))) подходим ))) разгружаем тему про ДВК и всё что с ним связано ))))))))))))
Кратенького нет, есть стандартное 150 стр., делать?
Это не к спеху, но если сделаешь\выложишь благодарность и почёт !
Ведь справочный материал ценен не менее самих программ !!!
:redface:
предлагаю мою тему (http://zx.pk.ru/showthread.php?t=16861) поддержать с запросами по софту, не стесняемся ))) подходим ))) разгружаем тему про ДВК и всё что с ним связано ))))))))))))
Пока еще не совсем понимаю, то ли мало было написано софта под КГД, и тем более под КЦГД, или же просто он еще не найден.
Лично мне софт без графики скучен и неинтересен. Одни буковки надоели еще на РК-86)
Titus, я помню из игр помимо уже пере-пере-пере повторенных лэндов и котов, изометрическую графическую игру с космическим кораблём (это на самой первой двк было - та у которой монитор зелёного свечения) там квадратные поля и препятствия какие-то облетать нужно было. И что то было ещё из игр - но вот беда - КГД умирал чаще чем кот от пираний и ДВК обычно без него стоял, каждое новое подключение КГД было праздником )))
Потом в Зеленограде в магазине "ЗЕЛИНФОРМПРИБОР" продавалось несколько пакетов по разработке графики для ДВК (не знаю под какой именно контроллер - вот бы эти дискеты сейчас пощупать - тогда совершенно не интересовали, да и стоили не так уж мало)
Было не мало оригинального софта (правда тогда уже писали для УКНЦ в основном, ДВК сходили на нет потихоньку) созданных в Зеленограде, и их нет ни у кого с кем я общался. Мои личные архивы безвозвратно уплыли. На ДВК графической развлекухи почти не было (!) игр в смысле,
а вот чертёжный софт был какой-то точно и для графопостроителя.
Так что УКНЦ по количеству портированных и оригинальных игр - чемпион!
Про ДВК, Арсений больше моего знает, у него есть живой монстр в коллекции, но свою выборку по ДВК он тут уже выкладывал, а ты кстати
дублировал по моей просьбе ссылки на архив :rolleyes_std:
----------- добавил
Поверим и будем считать, что это 5.02
Может дожмём до полной загрузочной дискеты SJ 5.02, form, не хочу быть назойливым, но кому как не тебе
округлить (скажем грубо) эту тему с разными версиями мониторов, подвести черту )))))) конечно лучше в теме УКНЦшного софта (для укнц в смысле)
Если оно 'RT-11 System Macro Library Manual', то уже выложили.
Нет, оно такое.
Titus, я помню из игр помимо уже пере-пере-пере повторенных лэндов и котов, изометрическую графическую игру с космическим кораблём (это на самой первой двк было - та у которой монитор зелёного свечения) там квадратные поля и препятствия какие-то облетать нужно было.
Это было в графике? Под КГД? Названия не помнишь?
Нет, оно такое.
Это вроде есть у меня на странице с информацией в текстовом виде.
Системные таблицы и библиотеки. Руководство программиста. (http://pdp-11.nsk.ru/files/docs/rt-11/r23310.txt)
Но оно старенькое - примерно уровень RT-11 V4.
На ДВК графической развлекухи почти не было (!) игр в смысле,
Про ДВК, Арсений больше моего знает, у него есть живой монстр в коллекции, но свою выборку по ДВК он тут уже выкладывал, а ты кстати
дублировал по моей просьбе ссылки на архив :rolleyes_std:
Однако же все эти Land'ы, Коты рыболовы, Шерифы, полеты на вертолете, как я понимаю, пришли именно с КГД.
Те игры, что выкладывал Арсений, я видел. Там мало, и, в основном, под КГД.
Однако же все эти Land'ы, Коты рыболовы, Шерифы, полеты на вертолете, как я понимаю, пришли именно с КГД.
Наверное так. Не могу ничего утверждать. Я вначале познакомился со всеми этими игрушками (кроме кота) на БК0010(01), ДВК я тогда ещё в глаза не видел, позже увидел. А ещё чуть позже УКНЦ где все те же игры уже были. Но видел форум какой-то по БК (где чёрный страшный фон как экран у ДОСа), где якобы один из авторов игр пишет, что да - вначале были ДВК версии > портировались на БК, про УКНЦ вроде вообще ничего не говорилось (ссылка на тот форум где-то тут возможно попадалась не помню)
Названия не помнишь?
Нет, но впечатляло дико, на зеленом мониторе любая графика была как супер-шоу ! )))
Какие были буржуйские аналоги, близкие к ДВК, и желательно с графикой?
Какие были буржуйские аналоги, близкие к ДВК, и желательно с графикой?
Буржуйские аналоги - это сильно :)
А насчет графики, подозрвеаю, что "совместимой с ДВК" не было. Но лучше пусть кто-нибудь кто в ней разбирается скажет.
Какие были буржуйские аналоги, близкие к ДВК, и желательно с графикой?
Уж буржуйских аналогов ДВК точно не было. Так что все наши контроллеры, такие как КСМ, КГД, КЦГД, КНГМД(MX), КМД(MY), чисто наше изобретение.
А с графикой была университетская машина Terak 8510/a (http://en.wikipedia.org/wiki/Terak_8510/a). Делала её не DEC, а Terak Corporation. Там был и программируемый знакогенератор, и графический дисплей 320х240. В машине был процессор LSI-11, но кое в чем под архитектуру PDP-11 она не подходила, поэтому RT-11 была для нее особенная.
А с графикой была университетская машина Terak 8510/a (http://en.wikipedia.org/wiki/Terak_8510/a). Делала её не DEC, а Terak Corporation. Там был и программируемый знакогенератор, и графический дисплей 320х240. В машине был процессор LSI-11, но кое в чем под архитектуру PDP-11 она не подходила, поэтому RT-11 была для нее особенная.
Получается, что PDP-11 систем с графикой не было?
Видел фотку в википедии PDP-шной игры на векторном графическом терминале!
http://upload.wikimedia.org/wikipedia/commons/2/29/GT40_Lunar_Lander.jpg
С графикой у DEC много чего было, но в союзе ни разу не видел DECовского - все свое было везде (и везде по разному сделнное [имею в виду не ДВК, УКНЦ, Э85]), хотя в скрипте генерации РАФОСА упоминается ЭПГ-СМ, надо полагать, аналог VT11 какого-нибудь (который поддерживался в RT-11 до 5.4 как минимум).
VT11 кстати можно в E11 посмотреть. Там на сайте у них игрушка для него лежит, ну и в старых RT-11 можно включить поддержку и запользовать графический терминал :)
С графикой у DEC много чего было, но в союзе ни разу не видел DECовского - все свое было везде, хотя в скрипте генерации РАФОСА упоминается ЭПГ-СМ, надо полагать, аналог VT11 какого-нибудь (который поддерживался в RT-11 до 5.4 как минимум).
Меня интересуют именно дековские графические игрушки.
Меня интересуют именно дековские графические игрушки.
Именно DEC игрушек вроде не писал :)
А для DEC железа вот (http://www.dbit.com/pub/e11/lunar/) например.
Именно DEC игрушек вроде не писал :)
А для DEC железа вот (http://www.dbit.com/pub/e11/lunar/) например.
Есть эмули, которые это покажут?
Получается, что PDP-11 систем с графикой не было?
Видел фотку в википедии PDP-шной игры на векторном графическом терминале!
http://upload.wikimedia.org/wikipedia/commons/2/29/GT40_Lunar_Lander.jpg
Были векторные графические терминалы VT-11 и VS-60. Для их включения/выключения в RT-11 были команды GT ON/GT OFF.
Но это всё-таки векторные терминалы, для растровых нужен прямой доступ в видеопамять.
Есть эмули, которые это покажут?
Дык писал выше - E11.
Собственно там в каталоге и лежит заточенное под E11.
Дык писал выше - E11.
Собственно там в каталоге и лежит заточенное под E11.
А, т.е. патченное, не оригинальное?
Были векторные графические терминалы VT-11 и VS-60. Для их включения/выключения в RT-11 были команды GT ON/GT OFF.
Но это всё-таки векторные терминалы, для растровых нужен прямой доступ в видеопамять.
Был еще VT30 color graphics controller, но я про него ничего не знаю.
В E11 тоже есть.
А так - везде видел советское, не совместимое ни с ДВК ни с чем-либо DECовским ни с подобными же железяками в соседнем институте :)
---------- Post added at 01:27 ---------- Previous post was at 01:18 ----------
The VT30 "Colour Mimic Diagram Display System" is a simple display-list-based raster graphics device, built by
DEC CSS in Reading, UK. It is a Unibus device, mounted in a 5.25" high external box. It displays 8x8 characters
from a software character generator on a 64x36 grid, yielding 512x288 pixels, displayed on an attached PAL monitor.
---------- Post added at 01:28 ---------- Previous post was at 01:27 ----------
Это поди то самое, что Andrey_Ak с Э100-25 досталось :)
При этом линкер прописывает параметры программы по адресам: 40 - стартовый адрес, 42 - начальное значение SP (начало программы), 50 - последний адрес программы.
Ковырял одну ДВК'шную программу и нашел такой глюк. По адресу 50 записан, как я понимаю, адрес последнего слова программы. Но, когда программа запустилась, она считала из ячейки 50 этот адрес, и стала копировать свое тело по другому адресу так, как будто в 50 был не последний адрес программы, а адрес следующего слова за ним. Таким образом одно слово при копировании не дописалось. Интересно, как такое может быть? Плагин wcx этот адрес не трогает? Не пойму, или авторы налажали, или он просто так попортился. Программа в аттаче. Это драйвер КЦГД для ДВК. При запуске она сперва проверяет наличие регистра КГД 176640, если он отсутствует, то считает, что на компе нет КГД, а стало быть есть КЦГД, и копирует свое тело через ESC-X в память КЦГД. Но копируя, она использует адрес в ячейке 50, как адрес следующего слова за последним словом программы, и программа копируется в КЦГД без последнего RTS. Надеюсь, понятно обьяснил.
Но, когда программа запустилась, она считала из ячейки 50 этот адрес, и стала копировать свое тело по другому адресу так, как будто в 50 был не последний адрес программы, а адрес следующего слова
Бывает такая ошибка - сам делал иногда :)
Или возможен вариант, что сама программа так сделана. К примеру:
START: ...
...
.BLKW
.END START
в этом случае у нас .BLKW специально вставлен чтобы сдвинуть последний адрес.
---------- Post added at 11:37 ---------- Previous post was at 11:28 ----------
Кстати навскидку не нашел описываемого (детально анализировать лень). Там берется значение из 50, от него отнимается число (возможно уже с учетом того что это последний адрес, а не следующий), а потом этот кусок кода "печатается" на экран (то есть видимо грузится в КЦГД).
Кстати навскидку не нашел описываемого (детально анализировать лень). Там берется значение из 50, от него отнимается число (возможно уже с учетом того что это последний адрес, а не следующий), а потом этот кусок кода "печатается" на экран (то есть видимо грузится в КЦГД).
Вот фрагмент. Извиняюсь, что частично в шестнадцатиричном виде.
0200 17F7 0004 0352 MOV (#4),(2530) ;Сохранить вектор TRAP 4 в (2530)
0206 15DF 0216 0004 MOV #$0216,(#4) ;Установить новый вектор TRAP 4
020C 0A1F FDA0 CLR (#176640) ;Читать регистр КГД 176640
0210 15C0 055A MOV #2532,R0 ;Если прочелся, то печатаем
0214 0122 BR $025A ;сообщение об ошибке -->
;TRAP 4
0216 17C3 0028 MOV (#50),R3 ;R3 - адрес последнего слова программы
021A E5C3 05BE SUB #2676,R3 ;R3 = R3 - 2676 (отнимаем адрес начала программы,
;и получаем в R3 длину копируемой области)
021E 10F7 0398 MOV R3,(2672) ;Заносим длину в (2672)
0222 15C1 0007 MOV #7,R1 ;Отправляем на терминал 7 байт параметров
0226 15C2 05B7 MOV #2667,R2 ;управляющей последовательности:
022A 35DF 0040 FF74 BIT #100,(#177564) ;ESC, X, 0, <длина>, <адрес для копирования>
0230 02FC BNE $022A ;
0232 8BDF FF74 TSTB (#177564) ;
0236 80FD BPL $0232 ;
0238 949F FF76 MOVB (R2)+,(#177566) ;
023C 7E46 SOB R1,$0232 ;
023E 15C2 05BE MOV #2676,R2 ;Копируем R3 байт с адреса 2676
0242 8BDF FF74 TSTB (#177564) ;в память КЦГД через терминал
0246 80FD BPL $0242 ;
0248 949F FF76 MOVB (R2)+,(#177566) ;
024C 7EC6 SOB R3,$0242 ;
Ввиду того, что длина последовательности для копирования вычисляется, как
содержимое ячейки (50) минус адрес начала программы, будет скопировано
все до адреса, указанного в (50), не включительно. Таким образом,
последняя команда RTS не скопируется, т.к. (50) указывает не на слово за ней,
а на нее.
Ковырял одну ДВК'шную программу и нашел такой глюк. По адресу 50 записан, как я понимаю, адрес последнего слова программы. Но, когда программа запустилась, она считала из ячейки 50 этот адрес, и стала копировать свое тело по другому адресу так, как будто в 50 был не последний адрес программы, а адрес следующего слова за ним. Таким образом одно слово при копировании не дописалось. Интересно, как такое может быть? Плагин wcx этот адрес не трогает? Не пойму, или авторы налажали, или он просто так попортился. Программа в аттаче. Это драйвер КЦГД для ДВК. При запуске она сперва проверяет наличие регистра КГД 176640, если он отсутствует, то считает, что на компе нет КГД, а стало быть есть КЦГД, и копирует свое тело через ESC-X в память КЦГД. Но копируя, она использует адрес в ячейке 50, как адрес следующего слова за последним словом программы, и программа копируется в КЦГД без последнего RTS. Надеюсь, понятно обьяснил.
Я тоже глянул в DESS-е, согласен, авторы программы упустили этот момент. Но это легко поправимо - надо в нулевом блоке содержимое 50-й ячейки увеличить на 2. Собственно вся проблема и решается.
Я тоже глянул в DESS-е, согласен, авторы программы упустили этот момент. Но это легко поправимо - надо в нулевом блоке содержимое 50-й ячейки увеличить на 2. Собственно вся проблема и решается.
Я так и сделал) Только другой вопрос, как же оно работало раньше)
Вот фрагмент. Извиняюсь, что частично в шестнадцатиричном виде.
Не стоит в шестнадцатеричном - читать неудобно.
Да и конструкции языка соблюдать следует - самому же потом трудно будет перестраиваться при програминге ;)
Последняя команда RTS не скопируется, т.к. (50) указывает не на слово за ней,
а на нее.
Похоже на то.
---------- Post added at 18:55 ---------- Previous post was at 18:53 ----------
Я так и сделал) Только другой вопрос, как же оно работало раньше)
Ну может этот код никогда и не попадал в это место или попадал изредка и это относили на глючность чего-нибудь другого :)
---------- Post added at 19:01 ---------- Previous post was at 18:55 ----------
Загрузка кстати неграмотно сделана. Ожидается запрещение прерываний вывода на экран и делается вывод, что как они запрещены - больше выводиться ничего не будет, что может быть неверно :)
Я так и сделал) Только другой вопрос, как же оно работало раньше)
Хороший вопрос. Надо дизассемблировать то, что грузится в КЦГД и посмотреть при каких условиях вызывается эта подпрограмма. Может ее вызов столь редкое явление, что разработчики и не заметили этого.
Не стоит в шестнадцатеричном - читать неудобно.
Да и конструкции языка соблюдать следует - самому же потом трудно будет перестраиваться при програминге
Это вы PDP-шники восьмиричные. А мы, Амижники, Спектрумисты и т.д. - шестнадцатиричные. И все понимаем только с этой стороны. :v2_cool:
Это вы PDP-шники восьмиричные. А мы, Амижники, Спектрумисты и т.д. - шестнадцатиричные. И все понимаем только с этой стороны. :v2_cool:
Так дело-то не в привычках. Все дизассемблеры работают в восьмеричном виде, читать код можно нормально только в восьмеричном виде - в шестнадцатеричном придется дольше обдумывать.
Это по-моему просто выпендрежь, а не привычка - вроде того как "а мне в vi удобно работать: смотри как круто - могу за минуту сделать то, что ты в своем дурацком редакторе делаешь 10 секунд" ;)
Загрузка кстати неграмотно сделана. Ожидается запрещение прерываний вывода на экран и делается вывод, что как они запрещены - больше выводиться ничего не будет, что может быть неверно :)
А разве кто-то может вывести что-то на экран, кроме запущенной программы?
Загрузка кстати неграмотно сделана. Ожидается запрещение прерываний вывода на экран и делается вывод, что как они запрещены - больше выводиться ничего не будет, что может быть неверно :)
Тут можно и согласится и не согласится. Обычно после того как опустошилась очередь вывода на экран, RMON сбрасывает бит разрешения прерывания. Может они таким образом ждали освобождения очереди?
Так дело-то не в привычках. Все дизассемблеры работают в восьмеричном виде, читать код можно нормально только в восьмеричном виде - в шестнадцатеричном придется дольше обдумывать.
Это по-моему просто выпендрежь, а не привычка - вроде того как "а мне в vi удобно работать: смотри как круто - могу за минуту сделать то, что ты в своем дурацком редакторе делаешь 10 секунд" ;)
Разумеется, привычка. В шестнадцатиричном я ориентируюсь, как рыба в воде. А в восьмиричном лично мне совершенно не удобно. Единственное, это мешает анализировать сами коды программы, но я этим особо и не занимаюсь, на это есть дизассемблер. Так что каждому свое.
А разве кто-то может вывести что-то на экран, кроме запущенной программы?
Ну во-первых RT-11 в принципе бывает многозадачной. Во-вторых нажал на клавишу и - вот тебе вывод на экран (это если у нас в ячейке 6 сидит 0 по умолчанию в системе) :)
А может быть иначе - у меня например в ячейке 6 сидит 340, то есть в прогу загрузки мы попадаем на 7 приоритете проца и если прерывания на экран были разрешены - таковыми они и останутся ибо попросту не возникнут больше :)
---------- Post added at 19:11 ---------- Previous post was at 19:10 ----------
Разумеется, привычка. В шестнадцатиричном я ориентируюсь, как рыба в воде. А в восьмиричном лично мне совершенно не удобно. Единственное, это мешает анализировать сами коды программы, но я этим особо и не занимаюсь, на это есть дизассемблер. Так что каждому свое.
Так анализ кода в дизассемблировании наверное главное, нет? ;)
Так анализ кода в дизассемблировании наверное главное, нет? ;)
Имелся ввиду машинный код. Так как в восьмиричном виде машинный код PDP11 весьма поняен.
---------- Post added at 15:16 ---------- Previous post was at 15:14 ----------
Ну во-первых RT-11 в принципе бывает многозадачной. Во-вторых нажал на клавишу и - вот тебе вывод на экран (это если у нас в ячейке 6 сидит 0 по умолчанию в системе)
Получается, что при таком копировании программы в КЦГД надо сперва отключить клавиатуру последовательностью <27><91><50><104><128>?
Имелся ввиду машинный код. Так как в восьмиричном виде машинный код PDP11 весьма поняен.
Так про него и говорю.
Тот же дизассемблер может часть кода оставить как данные и не дизассемблировать или сам код может быть в виде данных команды.
В этом случае если он восьмеричный - понимание мгновенное.
Да и разницы при работе с восьмеричным особой нет с шестнадцатеричной. Разьве что два байта в слово и обратно менее привычно переводить навскидку, а в остальном все также. Даже логика 3 бита = восьмеричная цифра та же - только в шестнадцатеричной 4 бита :)
Разумеется, привычка. В шестнадцатиричном я ориентируюсь, как рыба в воде. А в восьмиричном лично мне совершенно не удобно. Единственное, это мешает анализировать сами коды программы, но я этим особо и не занимаюсь, на это есть дизассемблер. Так что каждому свое.
Дизассемблер код не проанализирует. Надо же отделить код от данных. Данные могут располагаться не только отдельно, но и после вызова подпрограммы, например по команде JSR R5,SUBR.
---------- Post added at 16:20 ---------- Previous post was at 16:18 ----------
Получается, что при таком копировании программы в КЦГД надо сперва отключить клавиатуру последовательностью <27><91><50><104><128>?
Необязательно. Можно при разрешенных прерываниях дождаться освобождения очереди, потом запретить прерывания и загрузить программу в КЦГД.
Так про него и говорю.
Тот же дизассемблер может часть кода оставить как данные и не дизассемблировать или сам код может быть в виде данных команды.
В этом случае если он восьмеричный - понимание мгновенное.
Да и разницы при работе с восьмеричным особой нет с шестнадцатеричной. Разьве что два байта в слово и обратно менее привычно переводить навскидку, а в остальном все также. Даже логика 3 бита = восьмеричная цифра та же - только в шестнадцатеричной 4 бита :)
Зато понимание всех остальных чисел, адресов, байтов и т.д. - тормозное в стиле 'со словарем'. Так что, имея уже некоторую практику анализа PDP-шного кода, скажу, что в шестнадцатиричном виде лично мне гораааздо удобнее)
Получается, что при таком копировании программы в КЦГД надо сперва отключить клавиатуру последовательностью <27><91><50><104><128>?
Вариантов может быть масса.
Я обычно критичные части кода в явном виде защищаю ".MTPS #340".
В данном случае можно в явном виде в 6 записать 340 (а не надеяться, что в системе он такой и есть). Но проблему с этим я объяснил :)
Что касается проверки вывода - на него можно или забить (мы ничего не выводили из проги, остальное - не наша проблема), прерывания только запретить заранее приоритетом проца.
Лично я бы делал так:
1. прерывания устанавливал бы не через @#4, а через .TRPSET - это бы избавило меня от потребности восстанавливать его потом
2. хандлер прерывания сделал бы отдельный из одной команды (не считая RTI) - BIS #1,2(SP). В этом случае после CLR @#адрес (или TST @#адрес) мы можем проверить наличие адреса просто командой BCS/BCC :)
3. если совсем заморачиваться - проверил бы наличие foreground job - мало ли ;)
4. как и сказал, .MTPS #340, загрузка, .MTPS #0 (причем именно так - .MTPS, а не MTPS) :)
:)
---------- Post added at 19:29 ---------- Previous post was at 19:25 ----------
Зато понимание всех остальных чисел, адресов, байтов и т.д. - тормозное в стиле 'со словарем'. Так что, имея уже некоторую практику анализа PDP-шного кода, скажу, что в шестнадцатиричном виде лично мне гораааздо удобнее)
Ну ладно, уломал - понимание удобнее для тебя, а команды-то зачем криво писать? :)
Да и шестнадцатеричные числа если на то пошло можно писать стандартным способом :)
Ну ладно, уломал - понимание удобнее для тебя, а команлы-то зачем криво писать? :)
Да и шестнадцатеричные числа если на то пошло можно писать стандартным способом :)
Команды пишу опять же 'тюнингованно', как привык на других ассемблерах, где адресация к ячейке памяти записывается, как (mem), а не как @#mem. А шестнадцатиричные числа как только не пишут. На си стандарт 0x0000, где-то пишут 0000h, на спектруме был $0000, где-то писали #0000 (хотя это неудобно, т.к. можно спутать с непосредственными данными), и т.д. Для краткости взял $, т.к. это компактнее, чем 0x.
Команды пишу опять же 'тюнингованно', как привык на других ассемблерах, где адресация к ячейке памяти записывается, как (mem), а не как @#mem. А шестнадцатиричные числа как только не пишут. На си стандарт 0x0000, на спектруме был $0000, где-то писали #0000 (хотя это неудобно, т.к. можно спутать с непосредственными данными), и т.д. Для краткости взял $, т.к. это компактнее, чем 0x.
На PDP-11 mem бывает разный.
MEM
@MEM
@#MEM
и все три варианта делают совершенно разные вещи :)
пытаться подогнать под другой проц чревато нехваткой фич того проца под который подгоняешь :)
Да и другим когда код потом показываешь - как-то приличнее наверное показывать его нормальным :)
А для шестнадцатеричного числа есть стандартный способ ^Xчисло на MACRO-11.
На PDP-11 mem бывает разный.
MEM
@MEM
@#MEM
и все три варианта делают совершенно разные вещи :)
пытаться подогнать под другой проц чревато нехваткой фич того проца под который подгоняешь :)
Да и другим когда код потом показываешь - как-то приличнее наверное показывать его нормальным :)
А для шестнадцатеричного числа есть стандартный способ ^Xчисло на MACRO-11.
Я не подгонял, а адаптировал под синтаксис адресации, наиболее мне понятный. Т.к. это было для меня. Когда показывал тут, поменял шестнацатиричные числа на восьмиричные, а адресацию не трогал. Разумеется, другим нужно давать на их языке, я согласен)
Кстати на всякий случай - чтобы потом не напороться :)
MOV 1000,R1
данная команда НЕ записывает в R1 содержимое адреса 1000 - это чтоб ошибок не наделать в будущем :)
Кстати на всякий случай - чтобы потом не напороться :)
MOV 1000,R1
данная команда НЕ записывает в R1 содержимое адреса 1000 - это чтоб ошибок не наделать в будущем :)
Что же она делает?)
Что же она делает?)
Она записывает в относительный адрес 1000 на момент компиляции.
Для простой программы SAV он совпадет с реальным. А вот если код будет перемещен или будет вунтри оверлея (или скажем драйвера устройства), адрес будет совершенно другим.
А вот синтакс @#1000 гарантирует, что всегда будет именно 1000.
Это впрочем нужно для программирования. Для дизассемблирования (правильной) программы как правило не существенно ибо там адрес подставится нужный :)
Она записывает в относительный адрес 1000 на момент компиляции.
Для простой программы SAV он совпадет с реальным. А вот если код будет перемещен или будет вунтри оверлея (или скажем драйвера устройства), адрес будет совершенно другим.
А вот синтакс @#1000 гарантирует, что всегда будет именно 1000.
Ну, так это понятно. К абсолютным адресам я так и обращаюсь @#. В перемещаемых программах так не прокатит. Недавно как раз писал перемещаемую для PPU.
Ну, так это понятно. К абсолютным адресам я так и обращаюсь @#. В перемещаемых программах так непрокатит. Недавно как раз писал перемещаемую для PPU.
Скажем так, не всегда прокатит :)
Для программ загружаемых в PPU через PRUN к примеру очень даже прокатит :)
Скажем так, не всегда прокатит :)
Для программ загружаемых в PPU через PRUN к примеру очень даже прокатит :)
Не знаю, что такое PRUN)
Не знаю, что такое PRUN)
Выкладывал в теме софта для УКНЦ.
Прога которая запускает программу на ПП в УКНЦ.
Саму прогу пишешь нормальным позиционнозависимым способом и не мучаешься - работать будет :)
У меня есть всякие фиксеры которые я ей гружу, можно для себя что-то делать :)
Есть тут (http://pdp-11.nsk.ru/~form/files/uknc/prun/).
Выкладывал в теме софта для УКНЦ.
Прога которая запускает программу на ПП в УКНЦ.
Саму прогу пишешь нормальным позиционнозависимым способом и не мучаешься - работать будет :)
У меня есть всякие фиксеры которые я ей гружу, можно для себя что-то делать :)
Есть тут (http://pdp-11.nsk.ru/~form/files/uknc/prun/).
А, вспомнил.
Как она модифицирует адреса программы, чтобы можно было реалоцируемо загружать?
А, вспомнил.
Как она модифицирует адреса программы, чтобы можно было реалоцируемо загружать?
Прогу надо собирать с ключом /FOREGROUND, это стандартный ключ для сборки перемещаемых программ (используется в многозадачных системах). Там в самом файле линкер создает таблицу перемещений.
Прогу надо собирать с ключом /FOREGROUND, это стандартный ключ для сборки перемещаемых программ (используется в многозадачных системах). Там в самом файле линкер создает таблицу перемещений.
Ааа... я про такой не знал) Мучался сам пиша в программе типа:
MOV PC,R1
ADD #Metka-.,R1
Ааа... я про такой не знал) Мучался сам пиша в программе типа:
MOV PC,R1
ADD #Metka-.,R1
Ну это универсальный способ.
В RT-11 в стандартной макробиблиотеке есть макрос .ADDR для всевозможных манипуляций такого типа. Вышенаписанное было бы
.ADDR #METKA,R1
Еще вариант - JSR неPC и после него данные адрес которых нужно передать :)
Кстати в драйверах для УКНЦ видел часто ошибку такого типа (один человек чтоли писал):
MOV PC,PTR
ADD #ADDR-.,PTR
Хотя на УКНЦ такое и работает, повторять этого не стоит.
Впрочем нормальный компилятор выдаст ошибку Z на это :)
Есть описание контроллера клавиатуры Электроника МС7004? Почему это двунаправленный порт? Т.е. приемник, его состояние, передатчик, его состояние?
Есть описание контроллера клавиатуры Электроника МС7004? Почему это двунаправленный порт? Т.е. приемник, его состояние, передатчик, его состояние?
Описания аж целых два - здесь (http://pdp-11.ru/oldcomp_vitaly_kremnev_ru/dvk.htm).
В продолжении темы по 1801ВМ2 тоже поделюсь: в архиве образ ПЗУ с клавиатуры МС7004 (выкладывался кем-то здесь) и листинг дизассемблированного ПЗУ с комментариями. Дизассемблировал вручную, так что может где и ошибся.
А почему порт двунаправленный, так потому-что используется 1801ВП1-065. Сама клавиатура тоже не только передает данные, но принимает - можно ее инициализировать, поморгать лампочками.
В дополнение - распределение памяти в МС7004:
21 - копия порта P1
22 - параметры
бит 3 - разрешен щелчок
бит 4 - разрешен звук
бит 5 - разрешен автоповтор
23 - номер порта при сканировании (P4...P7)
25 - действия
бит 1 - вырабатывается сигнал
бит 3 - вывод данных запрещен
бит 4 - вырабатывается щелчок
27 - счетчик между нажатием и автоповтором
28 - третья сохраненная клавиша
29 - вторая сохраненная клавиша
2A - первая сохраненная клавиша
2B - третий сохраненный адрес клавиши
2C - второй сохраненный адрес клавиши
2D - первый сохраненный адрес клавиши
2F - кол-во одновременно нажатых клавиш
30 - код клавиши из таблицы
36 - нажатые регистровые клавиши
бит 0 - нажата СУ
бит 1 - нажат правый ВР
бит 2 - нажат левый ВР
39 - сохранение A при прерывании 03
3A - сохранение A при прерывании 07
Новая версия считывателя лент. Хотя скорее первая - то, что было в теме про Э100-25 было просто наколенной поделкой.
Вобщем прога читает ленту и сохраняет ее в файл образа ленты для E11 (если размеры блоков кратны 4 байтам [а обычно так и есть] то образ годится и для SimH). RT-11 правда не особо удобная платформа для подобных целей и далеко не все ленты влезут в его файловую систему, но на безрыбьи...
Поддерживает VBGEXE, может грузиться через него как системная задача на отдельный терминал и при использовании живого железа не мешает работать на консоли параллельно ;)
Формат CSI строки:
*file=mm:[/N][/U]
*mm:/T[/N][/U]
Где file - файл образа ленты (по умолчанию .TAP), mm: - устройство ленты (или логическое имя). Опции: /N - не перематывать ленту перед открытием, /T - тестовый режим (файл не создается, можно вообще его не указывать в этом случае), /U - перематывает и выгружает ленту по окончании операции.
Пример:
.RU RDTAP MU: DU2:RT54/U
?RDTAP-I-29470. block(s) allocated for tape image file
?RDTAP-I-16384. word(s) allocated for tape block buffer
?RDTAP-I-00669. file(s) read from tape
?RDTAP-I-06527. disk block(s) used
.DIR DU2:RT54
14-Nov-2011
RT54 .TAP 6527 14-Nov-2011
1 Files, 6527 Blocks
58940 Free blocks
.SET RUN NOVBGEXE
.RU RDTAP MU:/T
?RDTAP-I-13285. word(s) allocated for tape block buffer
?RDTAP-I-00672. file(s) read from tape
?RDTAP-I-11127. disk block(s) required
.
UPD: слегка поправил номер версии, а то в старом IDENT такой же был :)
В продолжении темы по 1801ВМ2 тоже поделюсь: в архиве образ ПЗУ с клавиатуры МС7004 (выкладывался кем-то здесь) и листинг дизассемблированного ПЗУ с комментариями.
http://caxapa.ru/52582.html
Тут забавно комментируется кусочек дизассемблированного кода от прошивки клавиатуры "Русло-3" (МС7004).
(Выпускалась заводом 'МИКРООМ', 357340, РОССИЯ, СТАВРОПОЛЬСКИЙ ОБЛ., Г. ЛЕРМОНТОВ, УЛ. КОМСОМОЛЬСКАЯ, 13).
http://caxapa.ru/52582.html
Тут забавно комментируется кусочек дизассемблированного кода от прошивки клавиатуры "Русло-3" (МС7004).
(Выпускалась заводом 'МИКРООМ', 357340, РОССИЯ, СТАВРОПОЛЬСКИЙ ОБЛ., Г. ЛЕРМОНТОВ, УЛ. КОМСОМОЛЬСКАЯ, 13).
Да, мне тоже было забавно это видеть, когда дизассемблировал. Но что делать, система команд MSC-48 такая, что логические операции над каналами P1 и P2 можно делать только с непосредственными данными. По команде IN не всегда прочтется то, что записали по OUTL. Так что извратились, как могли. Чтобы избежать такой ситуации надо было хранить копию P2 в памяти, благо ячеек свободных достаточно, но вот почему не догадались - это для меня большой вопрос.
---------- Post added at 22:30 ---------- Previous post was at 22:08 ----------
В дополнение еще один шедевр из прошивки 1801РЕ1-000 - монитор МС1201.0.
.=160000
160000$:BR 160016$ ; Точка начального пуска
160002$:.WORD 160446$,2340 ; Вектор прерывания HALT, зависание в HALT
160006$:.WORD 160374$,2340 ; Вектор прерывания по двойному зависанию
160012$:.WORD 160416$,2340 ; Вектор прерывания по ошибке приема АВП
; Начальный запуск
160016$:BIS #10,@#177716 ; Открыть ПЗУ в диапазоне 160000-173777
BIC #4,@#177716
MOV #177614,SP ; Нач.значение указ.стека (177600-177613)
CALL 160112$ ; Скопировать п/п записи/чтения в сист.ОЗУ
CLR @#177650
CLR @#177644 ; Признак прерывания = 0 (HALT)
CLR @#177640
CLR R0 ; Вычисляемое условие начального пуска = 0
MOV @#177716,R1
BIC #177770,R1 ; R1 = условие нач. пуска (биты 1-0 177716)
160070$:CMP R1,R0 ; Вычисляемое и реальное равны?
BEQ 160100$ ; Да
INC R0 ; Вычисляемое условие плюс 1
BR 160070$ ; На начало цикла
160100$:ASL R0
ADD #161432$,R0 ; R0 = таблица адресов начального пуска
MOV @R0,R0 ; R0 = адрес начального пуска
JMP @R0 ; Переход по адресу начального пуска
; Адреса п/п исполнения условий начального пуска
161432$:.WORD 160134$,160440$,160152$,160170$
Как известно, условия начального пуска в МС1201 задаются переключателями, состояние которых можно прочесть из битов 0 и 1 регистра SEL1 (0177716). Условий соответственно может быть четыре, по количеству всевозможных значений из двух битов. Вызывает сперва удивление, почему просматриваются три бита, тем более бит 2 до этого был очищен. Но далее самое интересное - в цикле перебираются числа и сравниваются с тем что прочли из SEL1. А уж если сошлось, то тогда вычисляется адрес в таблице условий начального пуска, читается значение из таблицы и делается переход по прочитанному значению.
Далее текущее значение регистров R0 и R1 не используется.
По моему можно было сделать проще:
MOV @#177716,R1
BIC #177770,R1 ; R1 = условие нач. пуска (биты 1-0 177716)
ASL R1
JMP @161432$(R1)
Пост перенесен сюда. (http://zx.pk.ru/showpost.php?p=473049&postcount=46)
Не сказать, чтобы очень нужная вещь, но вдруг кому пригодится ;)
Версия IOSCAN, которая работает в RSX-11.
TSK в архиве годится для RSX-11M+ и Micro/RSX V3.0 и новее.
Для RSX-11M, RSX-11S нужно собирать в каждой конкретной системе.
При запуске проверяет, что нет задач с незаконченным I/O.
В RSX-11M/S также проверяет, что программа собранна с нужной системой.
UPD: Добавил IOSCAN для P/OS V3.2 ;)
В другом P/OS работать не будет ибо нет в системе функционала для переносимости привилегированных программ.
Такой момент, по поводу ДВК и всего что с ним связано )))
В архиве есть загрузочная (системная) дискетка с MX и MY драйвером в подборке игрушек от Арсения. А есть ли у кого и мог бы кто выложить образ загрузочной дискеты, которую на практике можно применять. Там должен быть нормальный RT-11 монитор, SL драйвер, транслятор ассемблера с библиотеками, транслятор паскаля с библиотекой и Link (конечно). Очень большая просьба выложить если есть такая возможность dsk-образ такой ДВК-ашной дискеты (будет к архиву пришпилина).
Спасибо.
:redface:
А есть ли у кого и мог бы кто выложить образ загрузочной дискеты, которую на практике можно применять.Любой образ можно сделать загрузочным с любого устройства.
Например, если мы загрузились с устройства HD и хотим сделать из образа, подключенного к HD2: - загрузочную дискету MX с монитором RT11SB, то нужно использовать команду:
copy/boot:MX HD2:RT11SB HD2:
При этом в образе, подключенном к HD2: , должны находиться файл монитора и драйвер MX. Наличие там драйвера HD - не требуется.
Patron, очень спасибо за информацию, но в моём случае бесполезно =)
Мне даже не понятно куда и что писать из предложенных вами команд, у меня есть
эмулятор УКНЦ и куча загрузочных дискет для укнц (правильных) в виде образов.
Есть вот архив с дискетами для ДВК от Арсения, но там нет ни одной загрузочной дискеты для ДВК с компиляторами ))) Переделывать образы из архива без гарантии
работы на реальной ДВК - это не то что требуется ))) Нужна честная проверенная
рабочая системная RT-11+macro+link+pascal+*.(obj,sml) дискета для ДВК в виде dsk,
что-бы к архиву пришпилить )))
----------- Ну и конечно там драйвера и текстовый редактор должны быть как минимум )))
Спасибо!
Виндовсная версия.
Синхронизация с RT-11 версией: добавлены команды которые раньше не распознавались: SPL, MFPT, WRTLCK, TSTSET, CSM.
В посте про тупой дизассемблер (http://zx.pk.ru/showpost.php?p=435716&postcount=1343) поправлен файл.
Пофиксены охрененные косяки с JSR и EIS :)
В посте про тупой дизассемблер для виндовса (http://zx.pk.ru/showpost.php?p=437671&postcount=1348). Поправилен файл. Был нерабочий.
Mad Killer/PG
21.01.2012, 10:27
hobot извиняюсь что нe по тeмe,выложи зaгрузочныe обрaзa укнц кудa нить.
И eщё никaк клaвиaтуру к ДВК3Ш нe зaпущу,eсть ли зaгрузочный диск с тeстaми систeмы для ДВК с aвтозaпуском или бeз клaвы никaк?.
зaгрузочныe обрaзa укнц
дискета загрузочная, монитор версии 50 rt11sj - позволяет программировать и запускать большинство игр, работать с базами данных и прочим ПО( дискета поставлялась вместе с промышленно-бытовыми УКНЦ) в архиве (http://pdp-11.nsk.ru/~hobot_lmb/ukdwk_archive/ukncbtlwebcomplekt/SEMZdsk/SEMZ_rt11sj50.DSK).
очень новая версия с патчами от forma, версия 57С rt11fb монитора (наверное правильно написал?), кроме всего прочего поддерживает даты после 2000 подробная инструкция прилагается, забирай отсюда (http://pdp-11.nsk.ru/~hobot_lmb/ukdwk_archive/ukncbtlwebcomplekt/rt11sb05.07c/).
Системная дискета 80-дорожек, драйвер MY для ДВК, из коллекции участника Patron, пожалуйста в архиве (http://pdp-11.nsk.ru/~hobot_lmb/ukdwk_archive/dwkwebcomplekt/MY.DSK).
Titus, вот папка внутри hd1.dsk из E11 (http://pdp-11.nsk.ru/~hobot_lmb/E11/) подборки, называется так Kcgd.dsk, содержание интересное,
весь hd1 - на самом деле очень интересный там )))
Содержание:
Image : KCGD.DSK
Format : DSK
Size : 450 Kb
Volume ID: АДОС
Owner :
File Blocks Date Bytes
---------- ------ ----------- ----------
KCGD82.SAV 2 30-Oct-1992 1'024
PUT6 .SAV 2 30-Oct-1992 1'024
KCGD82.BIN 67 29-Jun-1992 34'304
KCGD81.TAB 20 01-Jul-1992 10'240
KCGD82.TAB 20 29-Jun-1992 10'240
KCGD81.BIN 67 01-Jul-1992 34'304
KCGD81.SAV 2 30-Oct-1992 1'024
GPDEFS.PAS 15 11-Jul-1990 7'680
GPDEMO.SAV 68 17-Jun-1991 34'816
GPMONO.SAV 68 17-Jun-1991 34'816
GPDEMO.DAT 45 07-Sep-1990 23'040
GMACRO.MLB 22 11-Jul-1990 11'264
GX .SAV 23 20-Jul-1990 11'776
CGPACK.OBJ 9 18-Jul-1990 4'608
CGLIB .OBJ 41 18-Jul-1990 20'992
PGPACK.OBJ 9 18-Jul-1990 4'608
PGLIB .OBJ 41 18-Jul-1990 20'992
FGPACK.OBJ 9 18-Jul-1990 4'608
FGLIB .OBJ 42 18-Jul-1990 21'504
INSTAL.COM 1 14-Sep-1990 512
INSTAL.IND 19 05-Jun-1991 9'728
README.TXT 16 05-Jun-1991 8'192
LPSET .SAV 20 01-Aug-1990 10'240
LP1 .SYS 3 10-Jun-1991 1'536
LP .SYS 4 01-Aug-1990 2'048
GM .HLP 115 15-May-1990 58'880
GM .SYS 21 16-May-1990 10'752
GMLIB .LST 67 13-Feb-1992 34'304
< UNUSED > 48 24'576
---------- ------ ----------- ----------
28 Files, 838 Blocks
48 Free blocks
И цитата текста из описания:
При инсталляции драйвера осуществляется коррекция кодов клавиа-
туры (<ЗБ> и <ъ>), запрограммированных в ПЗУ КЦГД с ошибками, а также
подключаются незадействованные клавиши. Коды генерации этих клавиш
приведены в соответствие с кодировкой, реализованной в предыдущем ва-
рианте ДВК (с контроллером КСМ). Существует возможность установки ко-
дов клавиатуры в соответствии с потребностями пользователя.
:redface:
Меня интересуют больше игры под КЦГД. Я, на сколько помню, кроме цветного LAND'а больше игр не видел, кажется.
Меня интересуют больше игры под КЦГД
Надо мучить коллекционеров, у кого рабочие машины с контроллером стоят пылятся,
наверняка и дискеты с играми есть же ))) Только вот образов что-то не особо кто
публикует(присылает), дискеты ДВКашные я так понимаю проблематичней считать чем
УКНЦшные ?
---------- Post added at 20:57 ---------- Previous post was at 20:57 ----------
цветного LAND'а - это как интересно?
Просто я привык уже к двух цветной картинки от всех этих игр, а что там
цветное? Чёртики красные, кирпичики жёлтые, кладики зелёные?
Надо мучить коллекционеров, у кого рабочие машины с контроллером стоят пылятся,
наверняка и дискеты с играми есть же ))) Только вот образов что-то не особо кто
публикует(присылает), дискеты ДВКашные я так понимаю проблематичней считать чем
УКНЦшные ?
---------- Post added at 20:57 ---------- Previous post was at 20:57 ----------
- это как интересно?
Просто я привык уже к двух цветной картинки от всех этих игр, а что там
цветное? Чёртики красные, кирпичики жёлтые, кладики зелёные?
Да нет, вроде так же читаемы. У нас полно дисков от ДВК на форуме. Только КЦГД-шного софта мало. А трясни надо наших корифеев, они отмалчиваются. Может где и есть чего в заначке)
Да, просто расскрашен, и немного графика изменена.
---------- Post added at 20:14 ---------- Previous post was at 20:00 ----------
Вот скриншот.
Как видно, ввиду того, что у КЦГД в отличие от КГД в высоту меньше пикселей - 240 вместо 286, нижняя строчка из игры слега подрезна. Ну уж как сделали.
КГД:
http://s018.radikal.ru/i511/1201/47/17e0a17d480e.png
КЦГД:
http://s59.radikal.ru/i164/1201/62/aa5c38840028.png
Может с цветами и не прав, как-то выглядят не айсово.
нижняя строчка из игры слега подрезна
Есть с подрезаной строкой Land для УКНЦ !!! 100% в подборке игр от Арсения )))
Titus, может скинешь мне на мыло свою коллекцию для изучения ? ))) Если конечно ты морально к этому готов ))) У меня конечно есть фронт работы, но лишнего софта не бывает, повторы меня не смущают, и в целом люблю, знаешь ли, архивы )))
---------- Post added at 21:46 ---------- Previous post was at 21:45 ----------
Бутылочки - это тема из другой игры кстати, если кто помнит )))
http://gamerise.ru/files/games/3/golden-axe-ii-ru.jpg
А ведь для Land редактор уровней есть )))
Есть с подрезаной строкой Land для УКНЦ !!! 100% в подборке игр от Арсения )))
Titus, может скинешь мне на мыло свою коллекцию для изучения ? ))) Если конечно ты морально к этому готов )))
Тот подрезанный для УКНЦ, который был на желтом фоне, не подрезанный, а смещенный вниз почему-то. Так он такой же.
Моя коллекция софта от ДВК практически вся с этого форума. А LAND для КЦГД давал кто-то из наших на дискете D_IZOTW.DSK
D_IZOTW.DSK
Да есть такая дискета, но в UKNCBTL не работает, откуда такие скрины?
Архив Titusa hobot не получит? )))
Да есть такая дискета, но в UKNCBTL не работает, откуда такие скрины?
Архив Titusa hobot не получит? )))
Скрины - мое личное творчество)
Архив у меня только УКНЦ-шный, и находится пока на дискетах частично. Как будет, поделюсь.
Скрины - мое личное творчество)
Сверх секретный рабочий эмулятор ДВК! Мне пожалуйста одну копию под вин32 )))
Очень давно мечтается-хочется )))
Сверх секретный рабочий эмулятор ДВК! Мне пожалуйста одну копию под вин32 )))
Очень давно мечтается-хочется )))
Сверхконкретный симулятор)
Я ж писал, что SIMH является вполне адекватным эмулятором ДВК, по крайней мере -- ДВК-2 без фичей КЦГД. Главная проблема -- 90% софта заточены под терминал VT52 с которым на писюке очень плохо.
http://www.phantom.sannata.ru/forum/index.php?o=1&t=2367&st=260&p=
В середине примерно.
Я ж писал, что SIMH является вполне адекватным эмулятором ДВК, по крайней мере -- ДВК-2 без фичей КЦГД. Главная проблема -- 90% софта заточены под терминал VT52 с которым на писюке очень плохо.
http://www.phantom.sannata.ru/forum/index.php?o=1&t=2367&st=260&p=
В середине примерно.
С VT52 не плохо - с ним очень плохо :)
Те проги которые претендуют на его эмуляцию реально никогда видимо не проверялись. Для UNIX систем я себе врапер сделал который делает VT52 на обычном xterm, на виндовсе пока руки не дошли...
Может кто-то из обладателей ДВК с КЦГД запустит наконец LANDD у себя, и сделает скриншот, вернее фотку с экрана?
---------- Post added at 16:31 ---------- Previous post was at 16:29 ----------
С VT52 не плохо - с ним очень плохо :)
А в стандартной прошивке КЦГД какой терминал? VT52?
form, я даже авторам AlphaTerm и ShamCom писал, что у них VT52 кривой. Не отреагировали. Пробовал посмотреть исходники PuTTY, но не осилил.
В принципе если найти/украсть/переписать эмулятор VT52 то в комплекте с SIMH получается вполне нормальный эмулятор ДВК/Э-60/Э-100/СМ-3/СМ-4 с любой вариацией системы команд от LSI-11 до PDP-11/93. Ну минус спец-устройства MX/MY/DW
form, я даже авторам AlphaTerm и ShamCom писал, что у них VT52 кривой. Не отреагировали. Пробовал посмотреть исходники PuTTY, но не осилил.
В принципе если найти/украсть/переписать эмулятор VT52 то в комплекте с SIMH получается вполне нормальный эмулятор ДВК/Э-60/Э-100/СМ-3/СМ-4 с любой вариацией системы команд от LSI-11 до PDP-11/93. Ну минус спец-устройства MX/MY/DW
Ну для UNIX систем врапер есть - во всяких линухах-бсд с VT52 более-менее работает.
MY и DW тоже есть. simh-dvk (http://code.google.com/p/vak-opensource/source/browse/trunk/bk/simh-dvk/) их поддерживает. Правда кое-какие косяки наблюдались - RT-11 мне не удалось запустить в нем на DW (хотя может просто запутался в обилии драйверов с таким названием). ДЕМОС вот работает :)
---------- Post added at 20:37 ---------- Previous post was at 20:36 ----------
Кстати в SmiH одно время был консольный терминал эмулятор, но потом его выкинули - сказали мол пользуйся телнетом и получай что надо :)
А в стандартной прошивке КЦГД какой терминал? VT52? Насколько помню, по включению -- VT52 но хитрый. Он обрабатывает как короткие ESCx от VT52 так и длинные ESC[x от VT100.
UPD
http://oldcomp.vitaly.kremnev.ru/doc1/kcgd.djvu
Включение VT100 : ESC < , выключение ESC ? 2 l
Я по ходу дела написал эмулятор терминала, полностью совместимый с режимом VT52 терминала 15ИЭ-00-013 ( там есть несколько отличий от родного VT52 ).
Однако, скорость вывода на экран у меня там пока настраивается довольно сложно (потому что по-правильному, через скорость порта и число битов на посылку).
Для комфортного же геймления была бы весьма полезна возможность прямо задавать ограничение CPS в диапазоне 450-950 с шагом 50.
Когда доделаю этот эмулятор терминала - появится возможность полноценной эмуляции "VT-52 по-русски" :)
Собственно есть один способ получить VT52 вполне полноценный, в пределах английского или в виде как было на CM7209 (большие английские и русские). Для этого достаточно воспользоваться E11/Win32 с небольшой программкой и если нужно, переделанными шрифтами.
Таким способом можно повеситься и на COM порт и на телнет.
Правда telnet client поддерживается только в E11 6.0, а на него многие антивирусы ругаются :)
Patron, Нафига так сложно, легче IMHO машину замедлить (set throttle). Скорость 9600 начинает сказываться, когда на экране много меняющейся информации, например на 10-м уровне XONIX прыгает 10 шариков и штук 5 "теней". Не думаю что кто-то доходил дотуда кроме редких манияков. ;) ;)
А где эта программка есть? Она с исходниками?
Лежит на родном сайте в каталоге vt100- это тупой превращатель E11 в терминал. Чтобы он стал VT52 надо в конфиг добавить команду SET CON1 VT52. Чтобы стал как CM7209 надо подменить ему шрифты - я их выкладывал в теме про ДВК и все, что с ним связано.
Я кстати именно E11 использую когда нужен VT52 на 11/83 - CM7207 некуда пока поставить рядом со мной :)
Нафига так сложно, легче IMHO машину замедлить (set throttle). Скорость 9600 начинает сказываться, когда на экране много меняющейся информации, например на 10-м уровне XONIX прыгает 10 шариков и штук 5 "теней". Не думаю что кто-то доходил дотуда кроме редких манияков. ;) ;)Имя возможность отдельно регулировать скорость эмулируемого процессора и скорость эмулируемого порта - я ( естественно ) сразу же проверил - как именно изменение каждого из этих параметров влияет на "скорость геймления" :)
По итогам исследования докладываю: для разных игрушек решающее влияние оказывает либо одно, либо другое.
Так, например, XONIX очень мало зависит от скорости процессора и все игровые задержки реализует посылками в порт. При неизменной скорости порта - скорость игры в XONIX остаётся неизменной даже при уменьшении скорости процессора до порядка 0.01 MIPS.
Кроме того, при сильном снижении скорости процессора - игра может идти неравномерно (в такт с изменением "вычислительной нагрузки" ), тогда как при ограничении CPS порта - скорость всех событий на экране снижается равномерно.
Когда доделаю этот эмулятор терминала - появится возможность полноценной эмуляции "VT-52 по-русски" :)
Спасибо за новость-анонс ))) Такая информация прибавляет настроения )))
Про XONIX^
Если речь идёт от ДВКашном XONIX (там где надпись new-york на заставке), я
просто добавлю, что в UKNCBTL он успешно стартует, но играть в него нельзя,
скорость игры запредельная )))
UPD
http://oldcomp.vitaly.kremnev.ru/doc1/kcgd.djvu
Включение VT100 : ESC < , выключение ESC ? 2 l
Я эти странички в архив (http://pdp-11.nsk.ru/~hobot_lmb/ukdwk_archive/biblioteka/) пришпилил для сохранности )))
Когда доделаю этот эмулятор терминала - появится возможность полноценной эмуляции "VT-52 по-русски" :)
А кто тут в бета-тестеры последний? ))) Я хочу записаться ! )))
А кто тут в бета-тестеры последний? ))) Я хочу записаться ! )))Потребность комфортно погеймить в XONIX - одна из основных потребностей человека :)
Потребность комфортно погеймить в XONIX - одна из основных потребностей человека :)
Нет игр кроме зеленого тетриса из квадратных скобочек! ;)
Нет игр кроме зеленого тетриса из квадратных скобочек!
И в шутку и без шуток - но вот великая игра, особенно именно та ДВКашная реализация ))) Из квадратных скобочек ))) Всяческие граф версии на УКНЦ и БК убоги по определению - нужен эмулятор в котором "правильный" XONIX будет работать "правильно" )))
---------- Post added at 01:10 ---------- Previous post was at 01:07 ----------
Не думаю что кто-то доходил дотуда кроме редких манияков.
Ну маньяк - несколько грубовато конечно, но игра я думаю на всех уровнях должна
бегать так - как на реальном железе, это в идеале конечно )))
И в шутку и без шуток - но вот великая игра, особенно именно та ДВКашная реализация ))) Из квадратных скобочек ))) Всяческие граф версии на УКНЦ и БК убоги по определению
Вообще-то на БК Тетрис из комплекта поставки текстовый.
С управлением клавишами 7,8,9.
Вообще-то на БК Тетрис из комплекта поставки текстовый.
С управлением клавишами 7,8,9.
Спасибо за уточнение ))) Я снова не внимательно пост forma прочитал !!!
Читаю про "тетрис" пишу-отвечаю про "XONIX" ! Насчёт тетриса я конечно не прав,
его много на БК хорошего и не только тот который по умолчанию с машинкой давался! И на УКНЦ граф. тетрисов как минимум два очень качественных (классических!) и несколько вариантов "из скобочек" символьных.
Вот граф-XONIX в эмуляторе УКНЦшном пашет нормально, а ДВК-NY версия неиграбельна к сожалению )))
____________ картинки две добавил про XONIX на БК ____________
вот заставка на БК (игра XONIX) вроде-бы "правильная" )))
http://savepic.net/2394868m.png (http://savepic.net/2394868.htm)
А игрушка граф. там прячется )))
http://savepic.net/2383604m.png (http://savepic.net/2383604.htm)
И в шутку и без шуток - но вот великая игра, особенно именно та ДВКашная реализация )))
Когда эта "ДВК"шная игра появилась и стала популярной, никакого ДВК, БК, УКНЦа и тому подобного еще в проекте не было :)
Точнее были первые модели ДВК даже не в проекте, но где-то далеко где их никто не видел :)
Для ностальгирующих у кого еще найдется старенький PC... Первая программа (http://pdp-11.nsk.ru/~form/dos/files/tetris.zip), сделанная для MS-DOS ;)
Не совсем для ДВК, но... :)
ДВКашная реализация )))
я явно указал слово "реализация" ))) И повторюсь, я то про XONIX писал )))
Для ностальгирующих у кого еще найдется старенький PC... запустил сейчас в DOS_BOX - нормально только русский шрифт и скорость эмуляции надо выставлять как примерно для первого Lode Runner,
http://savepic.net/2365175m.png (http://savepic.net/2365175.htm)
---------- Post added at 06:01 ---------- Previous post was at 05:59 ----------
form, исходники есть? )))
запустил сейчас в DOS_BOX - нормально только русский шрифт и скорость эмуляции надо выставлять как примерно для первого Lode Runner,
form, исходники есть? )))
Русификатор есть на той же странице, но в досбохе, конечно, работать оно не будет :)
Исходники не сохринились.
Если время будет - восстановлю как для pc так и для RT/RSX/VMS :)
Или как вариант, исходники тетриса на C есть в OpenBSD :)
Посоветуйте, пожалуйста, смотрелку файлов для виндов чтобы умела в восьмеричном виде показывать. Про RADIX-50 я даже спросить боюсь......
Посоветуйте, пожалуйста, смотрелку файлов для виндов чтобы умела в восьмеричном виде показывать. Про RADIX-50 я даже спросить боюсь......
написать :)
---------- Post added at 20:10 ---------- Previous post was at 20:08 ----------
Если устроит просто думпер - могу сделать :)
View'ер писать не стану :)
form, Если бы всё можно было успеть самому - я бы и не спрашивал.
Просто думпер я сам быстро напишу, а вот вьювер (не говоря уже о редакторе).....
form, Если бы всё можно было успеть самому - я бы и не спрашивал.
Просто думпер я сам быстро напишу, а вот вьювер (не говоря уже о редакторе).....
Ну в стиле less для UNIXа могу сделать - чтобы можно было вверх-вниз ходить построчно или постранично :)
С гуем связываться не стану - не умею :)
form, Так я и не прощу написать. Я прошу посоветовать готовую ;-)
form, Так я и не прощу написать. Я прошу посоветовать готовую ;-)
Знал бы готовую посоветовал бы :)
Навскидку же могу посоветовать только E11 с RT-11 и DO: и программу PUD, DESS и тому подобное :)
---------- Post added at 20:25 ---------- Previous post was at 20:21 ----------
http://www.physics.ohio-state.edu/~prewett/hexedit/
правда только байты смотрит гад :)
Наверно можно было бы выдрать из эмулятора УКНЦ
Наверно можно было бы выдрать из эмулятора УКНЦ
Да наверняка есть готовые - надо знать только :)
---------- Post added at 20:46 ---------- Previous post was at 20:43 ----------
http://www.freewarepark.com/binary-viewer.html
во
этот смотрит :)
Только адрес зараза выбирает из hex/dec :)
form, Не, этот смотрит побайтово. Neo Hex Editor лучше. Если с таблеткой найти - можно еще и кодировки типа KOI-8r смотреть. (и адреса в octal показывает, и количество байт/слов в строке выбирает).
form, Не, этот смотрит побайтово. Neo Hex Editor лучше. Если с таблеткой найти - можно еще и кодировки типа KOI-8r смотреть. (и адреса в octal показывает, и количество байт/слов в строке выбирает).
Второй смотри пословно. Адрес только восьмеричнный не пишет :)
Недоделанный "эмулятор ДВК (http://zx.pk.ru/attachment.php?attachmentid=32627)", написанный мною в процессе разработки модульного API эмуляции, дошёл сегодня до состояния, в котором его можно использовать для достаточно комфортного геймления в XONIX для ДВК и некоторые другие текстовые игры.
...
В первом релизе эмулятора обнаружено "недовложение" писка терминала.
Если писк терминала желателен (а как же может быть иначе) - качайте второй релиз (http://zx.pk.ru/attachment.php?attachmentid=32627).
Недоделанный "эмулятор ДВК (http://zx.pk.ru/attachment.php?attachmentid=32612)", написанный мною в процессе разработки модульного API эмуляции, дошёл сегодня до состояния, в котором его можно использовать для достаточно комфортного геймления в XONIX для ДВК и некоторые другие текстовые игры.
Спасибо) Классненький)
Хотя, в текстовые игры эти можно и на эмуле УКНЦ поиграться. Хотелось бы графику)
Недоделанный "эмулятор ДВК (http://zx.pk.ru/attachment.php?attachmentid=32612)", написанный мною в процессе разработки модульного API эмуляции, дошёл сегодня до состояния, в котором его можно использовать для достаточно комфортного геймления в XONIX для ДВК и некоторые другие текстовые игры.
Эх, еще бы keypad работал полноценно, там где он обычно на клавиатуре, при этом не переключая NumLock каждый раз когда в GOLD тыкаешь :)
TerminalPort = Port_module:DL11-W
За что ты его таким словом нехорошим обозвал - DL11-W? :)
---------- Post added at 02:37 ---------- Previous post was at 02:36 ----------
Даешь ВМ3! - будем ДЕМОС[/360] мучить :)
А то от некоторых, не будем показывать пальцем, не дождешься когда попробуют вживую :)
в текстовые игры эти можно и на эмуле УКНЦ поигратьсяЧтобы играть те игры, которые завязаны на скорость порта - на УКНЦ нужно двигать пальцами (если не ошибаюсь) примерно в 3 раза быстрее.
Кроме того, поскольку эмулируется 1801ВМ1 с его уникальным "ВЕ-таймером" - это даёт возможность запускать игры от ДВК-1, которые этот таймер используют (такие в природе есть).
Хотелось бы графику)Даже КГД я не смогу сэмулировать раньше КСМ. А для точной эмуляции КСМ - нужны матрицы всех символов знакогенератора.
...
Эх, еще бы keypad работал полноценно, там где он обычно на клавиатуре, при этом не переключая NumLock каждый раз когда в GOLD тыкаешь В данном эмуляторе терминала - режим NumLock меняет местами NUMPAD и KEYPAD (клавиши блока стрелок начинают генерить цифры).
В данном эмуляторе терминала - режим NumLock меняет местами NUMPAD и KEYPAD (клавиши блока стрелок начинают генерить цифры).
То есть самого главного от VT52 просто нету? :)
То есть самого главного от VT52 просто нету?Насколько помню - наоборот, возможностей даже больше.
1. У клавиш <Insert>,<Home>,<PageUp>,<Delete>,<End>,< PageDown > - один режим (они всегда посылают коды, записанные в файле Terminal.ini ).
2. У блока стрелок - два режима, в зависимости от NumLock ( или стрелки, или цифры ).
3. У NUMPAD - три режима ( два режима NUMPAD VT-52, при включенном NumLock, и режим KEYPAD VT52, при выключенном NumLock ).
при включенном NumLock, и режим KEYPAD VT52, при выключенном NumLock ).
Keypad VT52 полноценен (имхо) только тогда, когда клавиши находятся там, где ты их ожидаешь найти после работы на обычном терминале. В частности клавиша NumLock должна выполнять роль GOLD :)
---------- Post added at 03:05 ---------- Previous post was at 03:03 ----------
Насколько помню - наоборот, возможностей даже больше.
Возможностей нужно не больше, нужно, чтобы они просто были - в частности использовать клавиатуру на которую расчитаны DECовские программы. Даже такие простые как SL :)
При этом режим клавиатуры должен управляться программой, а не нажатием клавиши ибо оба режима часто используются в одной и той же программе одновременно. В DEC редакторах к примеру (EDT).
Чтобы играть те игры, которые завязаны на скорость порта - на УКНЦ нужно двигать пальцами (если не ошибаюсь) примерно в 3 раза быстрее.
Кроме того, поскольку эмулируется 1801ВМ1 с его уникальным "ВЕ-таймером" - это даёт возможность запускать игры от ДВК-1, которые этот таймер используют (такие в природе есть).
Даже КГД я не смогу сэмулировать раньше КСМ. А для точной эмуляции КСМ - нужны матрицы всех символов знакогенератора.
Чего-то на УКНЦ в ксониксе не управляется персонаж.
А что, проблема считать ПЗУ знакогенератора?
В эмуляторе кстати RT-11 V5.7, а K52 старый. Функционал будет урезанный. Есть "родной" для 5.7 - специально собирал :)
---------- Post added at 03:16 ---------- Previous post was at 03:14 ----------
Чего-то на УКНЦ в ксониксе не управляется персонаж.
А чем управлять пробуешь? Управляется циферками, а не стрелками.
А чем управлять пробуешь? Управляется циферками, а не стрелками.
Циферками на доп-клавиатуре тоже пробовал.
Циферками на доп-клавиатуре тоже пробовал.
В эмуляторе (УКНЦ) все управляется. Вживую сейчас не на чем смотреть - отдал на перепайку С2.
В эмуляторе (УКНЦ) все управляется. Вживую сейчас не на чем смотреть - отдал на перепайку С2.
Вру, NumLock не нажал)
Вру, NumLock не нажал)
А я перед проверкой нажал - обычно выключен всегда, а в унихах и вовсе подизаблен :)
Привык уже, что вместо полноценной эмуляции клавиатуры обычно делают подкладку под PCшную :)
Одни буржуи честные люди, да авторы PuTTY полу-честные ;)
А я перед проверкой нажал - обычно выключен всегда, а в унихах и вовсе подизаблен :)
По-хорошему, эмуль не должен реагировать на NumLock, а всегда держать на этих клавишах клавиши дополнительной клавиатуры.
По-хорошему, эмуль не должен реагировать на NumLock, а всегда держать на этих клавишах клавиши дополнительной клавиатуры.
Во-о-от!
Это я пытаюсь донести очень довно до авторов :)
Почему в SecureCRT, PuTTY, E11 у меня может быть полноценный keypad, а в других - не может :)
Причем SecureCRT даже собственно NumLock статус не меняет при нажатии клавиш - возвращает на место. В остальных перечисленных NumLock переключается параллельно работе.
При этом режим клавиатуры должен управляться программой, а не нажатием клавиши ибо оба режима часто используются в одной и той же программе одновременно. В DEC редакторах к примеру (EDT).Всё что должно переключаться программно - там переключается.
Поскольку и KEYPAD, и NUMPAD у 15ИЭ-00-013 имеют "в ширину" 3 клавиши, то требовать от эмулятора ДВК клавишу PF4 - перебор. Все "нужные клавиши" (т.е. те, которые есть у "VT-52 по-русски") эмулируются максимально полно :)
...
А что, проблема считать ПЗУ знакогенератора?Для меня - проблема.
Мне нужны матрицы всех симоволов знакогенератора КСМ.
Только должен он не "не реагировать", а реагировать как на GOLD который в обычных терминалах в этом месте находится :)
---------- Post added at 03:37 ---------- Previous post was at 03:34 ----------
Поскольку и KEYPAD, и NUMPAD у 15ИЭ-00-013 имею "в ширину" 3 клавиши, то требовать от эмулятора ДВК клавишу PF4 - перебор. Все "нужные клавиши" (т.е. те, которые есть у "VT-52 по-русски") эмулируются максимально полно :)
А кто требует-то? Требуются именно три клавиши верхнего ряда.
У тебя есть только две из верхнего ряда и одна левая :)
Ну а привязка именно к NumLock хороша тем, что на терминале привыкаешь к частому и быстрому использованию GOLD 7, то есть одна клавиша под другой :)
---------- Post added at 03:37 ---------- Previous post was at 03:37 ----------
Левая - всмысле не-VT52шная :)
<ESC>S :)
Требуются именно три клавиши верхнего ряда.
У тебя есть только две из верхнего ряда и одна леваяЗаглянем в коды :)
void VT_TerminalClass::Key_Pad_Slash()
{
Key('\033'); Key('Q');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_Star()
{
Key('\033'); Key('R');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_Minus()
{
Key('\033'); Key('S');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_Plus()
{
Key('\012');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_Enter()
{
if( !bNumLock_Flag ) { Key('\015'); return; }
if( bExtendedKeypad ) { Key('\033'); Key('?'); Key('M'); return; }
Key('\015');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_9()
{
if( !bNumLock_Flag ) { Key('\033'); Key('P'); return; }
if( bExtendedKeypad ) { Key('\033'); Key('?'); Key('y'); return; }
Key('9');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_8()
{
if( !bNumLock_Flag ) { Key('\033'); Key('A'); return; }
if( bExtendedKeypad ) { Key('\033'); Key('?'); Key('x'); return; }
Key('8');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_7()
{
if( !bNumLock_Flag ) { Key('\033'); Key('h'); return; }
// if( !bNumLock_Flag ) { Key('\033'); Key('\025'); return; }
if( bExtendedKeypad ) { Key('\033'); Key('?'); Key('w'); return; }
Key('7');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_6()
{
if( !bNumLock_Flag ) { Key('\033'); Key('C'); return; }
if( bExtendedKeypad ) { Key('\033'); Key('?'); Key('v'); return; }
Key('6');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_5()
{
if( !bNumLock_Flag ){ Key('\033'); Key('f'); Gold_ON(); return; }
Gold_OFF();
// if( !bNumLock_Flag ) { Key('\033'); Key('\010'); return; }
if( bExtendedKeypad ) { Key('\033'); Key('?'); Key('u'); return; }
Key('5');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_4()
{
if( !bNumLock_Flag ) { Key('\033'); Key('D'); return; }
if( bExtendedKeypad ) { Key('\033'); Key('?'); Key('t'); return; }
Key('4');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_3()
{
if( !bNumLock_Flag ) { Key('\033'); Key('d'); return; }
// if( !bNumLock_Flag ) { Key('\033'); Key('\023'); return; }
if( bExtendedKeypad ) { Key('\033'); Key('?'); Key('s'); return; }
Key('3');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_2()
{
if( !bNumLock_Flag ) { Key('\033'); Key('B'); return; }
if( bExtendedKeypad ) { Key('\033'); Key('?'); Key('r'); return; }
Key('2');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_1()
{
if( !bNumLock_Flag ) { Key('\033'); Key('e'); return; }
// if( !bNumLock_Flag ) { Key('\033'); Key('\024'); return; }
if( bExtendedKeypad ) { Key('\033'); Key('?'); Key('q'); return; }
Key('1');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_0()
{
if( !bNumLock_Flag ) { Key('0'); return; }
if( bExtendedKeypad ) { Key('\033'); Key('?'); Key('p'); return; }
Key('0');
}
/////////////////////////
void VT_TerminalClass::Key_Pad_Dot()
{
if( !bNumLock_Flag ) { Key('.'); return; }
if( bExtendedKeypad ) { Key('\033'); Key('?'); Key('n'); return; }
Key('.');
}
Есть другие предложения?
Заглянем в коды :)
Есть другие предложения?
Ну я понял, что можно исправить ;)
А предложение - простое.
Как все нормальные терминал эмуляторы делают, эмулировать keypad максимально приближенный к реальному, а не с перекоршенным рядом клавиш :)
Мне собственно пофигу - по ДВК не ностальгирую ибо в советское время видел его только издалека, чем и был счастлив :)
А для себя поправь конфигу все-таки :)
Верхний ряд VT52 - <ESC>P, Q, R; а не Q, R, S :)
---------- Post added at 03:55 ---------- Previous post was at 03:48 ----------
А ВМ3 планируется эмулировать? :)
В первом релизе эмулятора обнаружено "недовложение" писка терминала.
Если писк терминала желателен (а как же может быть иначе) - качайте второй релиз (http://zx.pk.ru/attachment.php?attachmentid=32627).
...
Верхний ряд VT52 - <ESC>P, Q, R; а не Q, R, SПоскольку коды этих клавиш не переключаются - их можно сделать переназначаемыми в файлах конфигурации.
Сегодня это сделаю.
А ВМ3 планируется эмулировать?Планируется эмулировать "абсолютно всё" :)
Но на практике ещё даже 1801ВМ1 - эмулировать и эмулировать, поэтому самое простое и быстрое - переписать модуль pdp11 эмулятора SIMH под модульный API.
а как же может быть иначе
Неописуемо красиво! У меня вот даже слов просто нету ))) Истерика у [hobota] - неужели все мечты сбываются ))) Ксоникс - ДВКашный )))
http://savepic.net/2450793m.png (http://savepic.net/2450793.htm)
Не готов к какой либо критике конструктивной, да и рано наверное ещё !!!
Но вот один нюанс, Patron, я работаю на ноут-буке и соответственно у меня
все емули на нём стоят и проверяются (тестирование проходят официальное от Хобота "смайл"), нум-лок врубился по умолчанию, первый раз удалось его вырубить,
второй раз нет - а штука в том что у меня то тут ДКЛ на алфавитных кнопках !!! Мне надо что-бы (начинаются капризы) нум-локом я мог свободно управлять иначе не могу команды вводить.
А как подпихнуть другой монитор, другие игрушки?
Какая конкретно модификация ДВК это (я в них запутался уже давно)?
А будут дисководики как в UKNCBTL?
И ещё милион вопросов - будет всё?
http://i.smiles2k.net/holidayes_smiles/Party2.gif (http://smiles2k.net/holidayes_smiles/index.html)
переписать модуль pdp11 эмулятора SIMH под модульный API.
Еще бы знать его отличия пресловутые :)
нум-локом я мог свободно управлять иначе не могу команды вводить.
Извиняюсь, поторопился, когда эмулятор стартует он его врубает, но с отключением
проблем нету !!!
Извиняюсь, поторопился, когда эмулятор стартует он его врубает, но с отключением
проблем нету !!!По идее, при получении фокуса ввода окном терминала - терминал должен запоминать текущее состояние <CapsLock><NumLock><ScrollLock>, затем устанавливать свой контекст клавиатуры, а при потере фокуса ввода - производить обратную операцию.
Т.е. при переключении между окном эмулятора и окном любой другой программы - контекст клавиатуры должен (в общем случае) изменяться.
Doronetty
30.01.2012, 12:49
Планируется эмулировать "абсолютно всё" :)
Но на практике ещё даже 1801ВМ1 - эмулировать и эмулировать, поэтому самое простое и быстрое - переписать модуль pdp11 эмулятора SIMH под модульный API.
А может попросить авторов, давно уже заэмулировавших ВМ1 и ВМ2 в эмуляторах БК и УКНЦ, так сказать немного поделиться исходниками ;)
А может попросить авторов, давно уже заэмулировавших ВМ1 и ВМ2 в эмуляторах БК и УКНЦ, так сказать немного поделиться исходниками ;)
К сожалению ВМ1 + ВМ2 не дадут в сумме ВМ3 :)
(в общем случае) изменяться.
ага вот сейчас щупаю - так и есть, это стало очевидно когда снимок экрана делаешь надо что-бы окно эмулятора было не активным,
знаешь что тревожит
на включения нумлока на ноуте у меня без залипания (как в случае с UKNCBTL). но
те же 1155 в строку монитора (в эмуле) вылетают !!! Или просто две 11, но это пока всё, в УКНЦшном эмуле тупо ловлю залипание 1111111111111111,а тут как писал только два-четыре символа???
Зато подпихнул пару игр )))
http://savepic.net/2457963m.png (http://savepic.net/2457963.htm)
http://savepic.net/2458987m.png (http://savepic.net/2458987.htm)
С графикой я так понял пока рано спешить, у меня все графы трапятся, я консоль увидел не сразу, скорость только через cfg регулировать? А есть какое-то правило какие dsk можно или нельзя в разделе HD подрубать? Ух! Могучая штука ДВК )))
:smile:
---------- Post added at 13:20 ---------- Previous post was at 13:17 ----------
К сожалению ВМ1 + ВМ2 не дадут в сумме ВМ3
а может и не надо пока? ВМ1 - отличный проц )))
а может и не надо пока? ВМ1 - отличный проц )))
Не вдаваясь в его качества, в нем нет ничего загадочного.
Тогда как ВМ3 интересен тем, что по слухам, которые я никак не могу проверить, он несовместим в чем-то :)
Не вдаваясь в его качества, в нем нет ничего загадочного.
Тогда как ВМ3 интересен тем, что по слухам, которые я никак не могу проверить, он несовместим в чем-то
__________________
Косвенно знаю - в живую машинки на этих процах мимо меня прошли, не удалось пощупать - это вовсе не слухи, в том-то и грусть, что он вроде бы как мощнее-крутнее, но полностью не совместим - хотя могу и ошибаться... вот надо снова
дергать на опровержение или подтверждение обладателей живых экземпляров )))
той и другой железке )))
А может попросить авторов, давно уже заэмулировавших ВМ1 и ВМ2 в эмуляторах БК и УКНЦ, так сказать немного поделиться исходникамиДанная эмуляция 1801ВМ1 - самая точная на сегодняшний день и она ещё весьма далека от полной адекватности.
...
скорость только через cfg регулировать?Скорость ЧЕГО ?
Косвенно знаю - в живую машинки на этих процах мимо меня прошли, не удалось пощупать - это вовсе не слухи, в том-то и грусть, что он вроде бы как мощнее-крутнее, но полностью не совместим - хотя могу и ошибаться... вот надо снова
дергать на опровержение или подтверждение обладателей живых экземпляров )))
той и другой железке )))
Вот и хотелось бы убедиться, что это не слухи :)
Один слух был успешно опровергнут: слух, что RT-11XM V5.7 не работает на ВМ3. Проверили - работает :)
Насчет 18битных систем предполагаю, что опять таки все будет работать. Я просто не представляю где в 18бит можно сделать несовместимость которая помешает. Однако кто знает...
Ну и наконец самое страшное - 22бит (не RT-11) - тут есть простор для несовместимостей :)
Скорость ЧЕГО ?
Скорость работы ... Так увидел, выставил TRUE !!! Вот это штука !!! )))
---------- Post added at 13:50 ---------- Previous post was at 13:47 ----------
При активном окошке эмулятор, влк.выкл NumLock даёт два символа в строку системную - либо две 55 либо две 11 )))
На самом деле вот так это выглядит - при запуске на авто NumLock уже в строке после загрузки SL.SYS идёт 1155
и далее при переключении активно\не активно эмулятор ловит-выдаёт ещё парочку )))
http://savepic.net/2457965m.png (http://savepic.net/2457965.htm)
При активном окошке эмулятор, влк.выкл NumLock даёт два символа в строку системную - либо две 55 либо две 11Системная строка - это там, где набирают команды RT-11..
Так?
Так?
выше добавил! Да! Скрин добавил в пост выше !!! Сразу при старте эмуль ловит 1155
---------- Post added at 14:03 ---------- Previous post was at 14:01 ----------
это не так страшно, в случае с UKNCBTL залипает 1111111111111111111111111111
и всё только остаётся эмулятор перезапускать )))
Да!Дело ясное - ноутбуки плохо совместимы с программной эмуляцией нажатия клавиш типа <NumLock>.
Похоже, есть смысл добавить в настройки терминала отключение режима смены контекстов клавиатуры..
ноутбуки плохо совместимы
сейчас на большой машинке стартану - для проверки ! )))
А вот тогда что проверим на ноутбуке - у данного эмулятора терминала левый <Shift> ( при одиночном нажатии ) эмулирует клавишу <ВР>, а правый <Shift> - клавишу <НР>, т.е. при одиночном нажатии левого шифта - режим CapsLock должен включаться, а при нажатии правого - выключаться.
Далее - нажатие <Ctrl><S> должно включать режим ScrollLock, а нажатие <Ctrl><Q> - выключать.
При этих действиях какие-нибудь проблемы возникают ?
А вот тогда что проверим на ноутбуке - левый <Shift> при одиночном нажатии эмулирует клавишу <ВР>, а правый <Shift> - клавишу <НР>, т.е. при одиночном нажатии левого шифта режим CapsLock должен включаться
О, да! Никогда не забуду как меня ругали за то, что где были непеределанные 15ИЭ, я всегда спичкой ВР зажимал, а НР работал как обычный Shift :)
При этих действиях какие-нибудь проблемы возникают ?
так по порядку !!!
На большой машине всё ОК!!!
Проверяем на буке:
с регистрами всё норм. срабатывает, левый шифт при активном эмуле включает индикатор CapsLock правый вырубает - левые символы не выскакивают, далее...
на буке у меня индикатора ScrLock нет ((( Реакции эмуля такая после нажатия ctrl+S все нажимаемые кнопки не отображаются в строке, нажимаю ctrl+Q сразу
печатаются в текущей строке всё что между ними нажимал (как-то так)
Проверяем на буке:
с регистрами всё норм. срабатывает, левый шифт при активном эмуле включает индикатор CapsLock правый вырубает - левые символы не выскакиваютЗначит, проблемы на ноутбуке возникают только тогда, когда программа пытается имитировать нажатие на клавишу <NumLock>.
А если на ноутбуке переключаться между окном терминала и, например, блокнотом, то режим <CapsLock> автоматически переключается?
Терминал должен запоминать "свой" режим <CapsLock> и каждый раз восстанавливать его при активизации окна терминала.
Это работает нормально?
Это работает нормально?
Да но при каждом случае когда окно эмуля становится снова активным он сразу
возвращает свои режимы - загораются лампочки и бабах 1155 или просто 55 в строку )))
http://savepic.net/2434401m.png (http://savepic.net/2434401.htm)
Мощная вещь! )))
---------- Post added at 15:36 ---------- Previous post was at 15:16 ----------
Значит, проблемы на ноутбуке возникают только тогда, когда программа пытается имитировать нажатие на клавишу <NumLock>
именно так !!! )))
Обновление эмулятора (http://zx.pk.ru/attachment.php?attachmentid=32632).
Добавлены новые базовые параметры класса Terminal, которые можно переназначать в ini-файле класса ( Terminal.ini ) и ini-секциях объектов класса Terminal в конфигах:
ANSI_STR_FOR_KEY[PF1] = "\033P"
ANSI_STR_FOR_KEY[Pad_Slash] = "\033Q"
ANSI_STR_FOR_KEY[Pad_Star] = "\033R"
ANSI_STR_FOR_KEY[Pad_Minus] = "\033S"
ANSI_STR_FOR_KEY[Pad_Plus] = "\012"
KeyboardControlling = 1
NumLockControlling = 1
NumpadSwapping = 1
Use_NumLock_as_PF1 = 0
Теперь можно:
1) чтобы терминал не имитировал нажатия на NumLock - установить [ NumLockControlling = 0 ];
2) чтобы терминал не имитировал никакие нажатия вообще - установить [ KeyboardControlling = 0 ];
3) чтобы при нажатии NumLock не происходил обмен NUMPAD <-> KEYPAD ( удобный при эмуляции ДВК, но совершенно излишний при эмуляции VT-52 ) - установить [ NumpadSwapping = 0 ];
4) чтобы при нажатии на клавишу <NumLock> в окне терминала - генерились коды клавиши <PF1> терминала VT-52 - установить [ Use_NumLock_as_PF1 = 1 ].
Кстати, а COM порты там случайно нельзя прицепить? :)
---------- Post added at 22:47 ---------- Previous post was at 22:38 ----------
keypad проверил. То что нужно! thx! :)
Кстати, а COM порты там случайно нельзя прицепить? :)Для добавления к эмулятору новых модулей весьма желательно иметь адекватный модульный API с устоявшейся спецификацией интерфейсов и системой контроля версий.
Когда нет ни устоявшихся спецификаций, ни системы контроля версий - ни один модуль, написанный с использованием такого API, не будет (в общем случае) совместим с модулями из других релизов.
Потому и приходится релизить эмулятор "монолитом", каждый раз перекомпилируя все модули и встраивая их в exe-файл загрузчика (благо API уже позволяет делать это автоматически).
Покрутил. Вполне себе работает, VT52 теперь человеческий - можно быстро писать не задумываясь куда пальцы тыкать :)
Был бы COM порт - связал бы с живым железом.
Еще предлагаю сделать HD с поддержкой прерываний (как сделано в E11). Оно при этом остается совместимым и с традиционным вариантом.
---------- Post added at 23:15 ---------- Previous post was at 23:10 ----------
Да, а все-таки, почему именно DL11-W? :)
TerminalPort = Port_module:DL11-W
сразу чем-то UNIBUSным пахнет :)
сделать HD с поддержкой прерываний
А какая польза от поддержки прерываний ?
все-таки, почему именно DL11-W?Там максимально полно реализованы все особенности именно этой платы.
Хотя "максимально полно" - это ещё не значит минимально адекватно :)
Не уверен, что порт правильно ведёт себя если:
1) к нему ничего не подключено (хотя это, возможно, и работает как надо);
2) происходит сброс по DCLO;
3) происходит выключение-включение питания;
Дело в том, что плата DL11-W по сигналу Init не обнуляет регистр TTKB. Боюсь, что нынешний модуль эмуляции этой платы не обнуляет регистр TTKB даже после выключения питания :)))
А какая польза от поддержки прерываний ?
Полноценная асинхронность не польза? :)
Дело в том, что плата DL11-W по сигналу Init не обнуляет регистр TTKB. Боюсь, что нынешний модуль эмуляции этой платы не обнуляет регистр TTKB даже после выключения питания :)))
Вот он этот страшный DL11-W (http://pdp-11.nsk.ru/~form/files/1184/m7856x2.jpg) :)
У меня их тут два валяется :)
---------- Post added at 23:50 ---------- Previous post was at 23:46 ----------
Кстати DLV11-J тоже не обнуляет TTKB по иниту и скорее всего это вообще ко всем реализациям относится :)
Полноценная асинхронность не польза?Асинхронность полезна при асинхронных событиях. Любое же обращение к регистру "контроллера" HD приводит к появлению "события результата" на том же такте процессора.
Так, например, когда в регистр записывается последняя команда последовательности команд чтения данных с диска - запрошенный массив данных оказывается в эмулируемой памяти ещё до выборки процессором следующей (за командой записи в регистр) команды драйвера HD.
Асинхронность полезна при асинхронных событиях. Любое же обращение к регистру "контроллера" HD приводит к появлению "события результата" на том же такте процессора.
Так, например, когда в регистр записывается последняя команда последовательности команд чтения данных с диска - запрошенный массив данных оказывается в эмулируемой памяти ещё до выборки процессором следующей (за командой записи в регистр) команды драйвера HD.
А-а, устройство для организации дерганой эмуляции. Понятно :)
В этом собственно и отличие. С прерываниями оно работает как полноценный диск позволяя что-то сделать пока данные передаются.
Вот он этот страшный DL11-W
Да уж, глядя на эту платку, в моих глазах ужасность контроллера ГМД MX изрядно выцвела ;). Про удобство расположения соединителя тут и заикаться неприлично. Хотя, кто их знает, этих буржуинов, какие у них были соображения. А что это за детали возле каждой микросхемы, похожие на диоды? Для блокировочных конденсаторов как-то форма нехарактерная.
Даже КГД я не смогу сэмулировать раньше КСМ. А для точной эмуляции КСМ - нужны матрицы всех символов знакогенератора.
Так выкладывали уже вроде. Но мне тоже лень искать. В приложении снятые дампы ПЗУ КСМ и клавиатуры МС7004, плюс дизассемблированние версии фирмваре с комментариями. Шрифты находятся в файле ksm_03_CG_D31.BIN.
Если что в комментариях недописал или написал неверно, извиняюсь - так понял, как работает программа. Естественно процесс изучения листингов лучше проводить с техническим описанием и принципиальной электрической схемой, чтобы все правильно понять.
По развертке 15ИЭ-00-013 и КСМ абсолютно идентичны - 800х286, всего полный растр с обратным ходом кадровой развертки составляет 308 строк, также полная строка с обратным ходом составляет 1000 точек.
Дампы снимал не я, они были взяты на этом форуме.
По развертке 15ИЭ-00-013 и КСМ абсолютно идентичны - 800х286А КГД формирует изображение 400х286.
Как эти изображения соотносятся между собой? Ведь они могут выводиться одновременно.
Вряд ли точки, формируемые КГД, "шире" точек КСМ в два раза.
Тогда получается, что у точек КГД двойной горизонтальный интервал по сравнению с точками КСМ.
Это так?
Кто-нибудь может крупно сфотографировать изображение монитора при одновременном выводе картинок КСМ и КГД..
А дока на КСМ есть? А то тут только дампы.
А КГД формирует изображение 400х286.
Как эти изображения соотносятся между собой? Ведь они могут выводиться одновременно.
Вряд ли точки, формируемые КГД, "шире" точек КСМ в два раза.
Тогда получается, что у точек КГД двойной горизонтальный интервал по сравнению с точками КСМ.
Это так?
Да, это так. Одна точка КГД равна двум точкам КСМ. Ведь размер знакоместа равен 10х11. Восемь точек берутся из ПЗУ, а вот про остальные две сказать точно не могу, либо они пустые, либо копируется последний бит. Все дело в том, что по кодам 128-159 находятся символы псевдографики, реально же рисунки всех символов занимают размер 7х8, самая левая точка у всех символов пустая. Так что мне то же интересно посмотреть на псевдографику на реальном КСМ, сплошная она или с разрывами.
А-а, устройство для организации дерганой эмуляции. Понятно :)
В этом собственно и отличие. С прерываниями оно работает как полноценный диск позволяя что-то сделать пока данные передаются.Для плавности эмуляции это абсолютно не важно.
Дело в том, что если "правильная" последовательность кадров не нарушена, то догадаться о наличии "дёрганья" невозможно.
Для наушения же "естественной" последовательности кадров - мешающий процесс должен в теории длиться более 10 мс, а на практике - более 50 мс.
На такую роль может претендовать разве что свопинг виртуальной памяти, любые же дисковые операции устройства HD занимают существенно меньше 1 мс, поэтому повлиять на последовательность демонстрируемых кадров не могут.
А дока на КСМ есть? А то тут только дампы.
Скачать можно отсюда (http://oldcomp.vitaly.kremnev.ru/dvk.htm). Там хоть и написано про КСМ и МС7004, что там схемы, но они совмещены с паспортом и техническим описанием.
Обновление эмулятора.
тут два момента на которые хочу обратить ваше внимание, и задать вопрос:
и так первый - ради эксперемента "спрятал" от эмулятора все прописанные в ini диски, получается такая вот вещь
http://savepic.net/2445443m.png (http://savepic.net/2445443.htm) http://savepic.net/2446467m.png (http://savepic.net/2446467.htm) http://savepic.net/2435203m.png (http://savepic.net/2435203.htm)
т.е. значение счётчика растёт - не знаю насколько это вообще критично\нужно но есть ли там защита от переполнения, мало-ли к какой
ситуации может привести крах приложения, в общем думаю вы сами оцените эту ситуацию и степень её важности;
второй момент - нюанс завершения работы эмулятора - играет ли роль
как приложение закрывается ? системной кнопкой "крестиком" или через меня "файл --- выход" ?
вопрос - а нельзя ли что-бы стрелки - всегда были стрелками?
почему нум-лок вдруг на клавиши курсора стал влиять? откуда там
взятся цифрам? это же стрелки - там никогда не бывает цифр?
просто в защиту меня! представьте что мне надо команду прописать в
rt-11 (на ноутбуке же я) у меня ДКЛ на алфавите - что-бы написать DIR
HD1: я должен выключить нум-лок и если я случайно опечатался (для редактирования строки) я не могу сразу двигать курсор, мне надо снова
врубать нум-лок, двигать курсор, потом отрубать нум-лок, что-бы писать латинскими буковками потом снова - комфорта 0 :frown:
Вот пример клавиши именно моей модели
http://savepic.net/2431107m.jpg (http://savepic.net/2431107.htm)
2:владельцы ДВК )))
Для полноты ощущения, я бы попросил помимо уже озвученного ТЗ
на фото экрана (в двух темах) - записать наиболее качественно звук
вентиляторов от школьной ДВК ))) Можно будет в фоне включать на repeat или прикрепить как опцию к эмулятору - представьте, задумайтесь ! Мощь! :wink:
значение счётчика растётЭто не страшно.
играет ли роль как приложение закрывается ? системной кнопкой "крестиком" или через "файл --- выход" ?Без разницы.
что-бы стрелки - всегда были стрелками?В файле Terminal.ini установить NumpadSwapping = 0.
я должен выключить нум-локИли в файле Terminal.ini установить NumLockControlling = 0.
...
Для полноты ощущения, я бы попросил записать наиболее качественно звук вентиляторов от школьной ДВК ))) Можно будет в фоне включать на repeat или прикрепить как опцию к эмулятору - представьте, задумайтесь ! Мощь!Нужно максимально качественно записать все звуки. Все варианты писка терминала, старт, стоп и работу всех вентиляторов, щелчки всех тумблеров, все звуки дисковода при работе и смене дискеты, старт, стоп, работу, автотест и позиционирование винчестера.
Нужно максимально качественно записать все звуки. Все варианты писка терминала, старт, стоп и работу всех вентиляторов, щелчки всех тумблеров, все звуки дисковода при работе и смене дискеты, старт, стоп, работу, автотест и позиционирование винчестера.
вот без шуток!!! стояла бы ДВК (пылилась) в пределах досягаемости - взял бы микрофон и реально наделал бы (почистил от шумов) кучу ВАВОВ !!! Это была бы мощь!!! А тут не могут сделать 1-у фотку - уже в двух темах просят)))
На самом деле когда эмуль стартует почти оно (уууууууу щелг пик бум бац) вот только реального гудения вентиляторов не хватает для присутсвия !!!
Данная эмуляция 1801ВМ1 - самая точная на сегодняшний день и она ещё весьма далека от полной адекватности
Есть ли какие-нибудь хитрости, позволяющие однозначно отличить ВМ1, 2, 3 от других процессоров?
Именно от других, а не один от другого :)
Ну и разумеется варианты вроде написать на экране "если у вас не ВМ2, то сейчас все остановится" - не варианты :)
"если у вас не ВМ2, то сейчас все остановится
Значит будет работать на УКНЦ !!! Там ВМ2 ))) Ура !!!
Есть ли какие-нибудь хитрости, позволяющие однозначно отличить ВМ1, 2, 3 от других процессоров?У процессора ВМ1 есть уникальные регистры на шине. У процессора ВМ2 - уникальные команды. У ВМ3 наверняка тоже что-то есть уникальное :)
У процессора ВМ1 есть уникальные регистры на шине. У процессора ВМ2 - уникальные команды. У ВМ3 наверняка тоже что-то есть уникальное :)
Насчет уникалиных регистров - вопрос спорный, просто не помнб какие, но вроде не такие уж уникальные (по адресу).
У ВМ2 уникальные команды насколько я понимаю работают только в режиме HALT, то есть проверить не получится без описанного выше случая :)
---------- Post added at 15:21 ---------- Previous post was at 15:16 ----------
Пойду загляну в книжки умные по процессорам ВМским дабы отдохнуть от мерзкого RTEM V1.0 :)
У ВМ2 уникальные команды насколько я понимаю работают только в режиме HALTПо части ВМ2 я не очень силён, но у меня сложилось впечатление, что команды START и STEP работают у ВМ2 так же, как и у ВМ1 (т.е. и в USER-моде тоже).
Но у ВМ2 нет уникальных регистров ВМ1.
Поэтому, если есть и START, и STEP, и регистры - это ВМ1, а если регистров нет - это ВМ2.
По части ВМ2 я не очень силён, но у меня сложилось впечатление, что команды START и STEP работают у ВМ2 так же, как и у ВМ1 (т.е. и в USER-моде тоже).
Но у ВМ2 нет уникальных регистров ВМ1.
Поэтому, если есть и START, и STEP, и регистры - это ВМ1, а если регистров нет - это ВМ2.
А каков функционал этих команд в режиме USER? Они же вроде оперируют с невидимой режиму USER памятью?
А каков функционал этих команд в режиме USER? Они же вроде оперируют с невидимой режиму USER памятью?И то верно.. Похоже, что команды START и STEP у ВМ2 в режиме USER не имеют смысла.
Насколько я знаю, особенности эмуляции команд FIS в ВМ2 позволяют программам пользователя работать в режиме HALT.
Вот пример такой программы (автор В.Полетаев):
; Программа, скачивающая в основное ОЗУ
; содержимое ОЗУ HALT-режима в плате на базе 1801ВМ2.
.TITLE VM2
; команды 1801ВМ2
GO =: 12 ; G
STEP =: 16 ; P
RSEL =: 20 ; R0:=SEL
MFUS =: 21 ; R0:=(R5)+
RCPC =: 22 ; R0:=CPC
RCPS =: 24 ; R0:=CPS
MTUS =: 31 ; -(R5):=R0
WCPC =: 32 ; CPC:=R0
WCPS =: 34 ; CPS:=R0
START::
MOV #PROG,R5
MOV (R5)+,R0
MOV (R5)+,R1
MOV (R5)+,R2
MOV (R5)+,R3
MOV (R5)+,R4
MOV (R5)+,R5
CLR -(SP)
CLR -(SP)
CLR -(SP)
CLR -(SP)
FADD SP
CMP (SP)+,(SP)+
MOV #740,-(SP)
MOV #173002,R1
MOV R1,-(SP)
MOV #PROG,R5
MOV #PLEN,R2
RTI
PROG: MFUS
MOV R0,(R1)+
SOB R2,PROG
MOV #160000,R1
MOV #10000,R2
MOV #10000+20000,R5
10$: MOV -(R1),R0
MTUS
SOB R2,10$
MOV #NEXT,R0
WCPC
CLR R0
WCPS
STEP
PLEN=.-PROG/2
NEXT: HALT
EMT 350
.END START
;
Детально не разглядывал, но вот это насколько я понимаю, переход в режим HALT.
MOV #740,-(SP)
MOV #173002,R1
MOV R1,-(SP)
RTI
По части ВМ2 я не очень силён, но у меня сложилось впечатление, что команды START и STEP работают у ВМ2 так же, как и у ВМ1 (т.е. и в USER-моде тоже).
Но у ВМ2 нет уникальных регистров ВМ1.
Поэтому, если есть и START, и STEP, и регистры - это ВМ1, а если регистров нет - это ВМ2.
Ничего подобного, START и STEP у ВМ2 работают только в режиме HALT, как и вся группа команд с кодами 10-37. Но здесь тоже есть свои тонкие нюансы. Если определились, что есть команды EIS (ASH, ASHC, MUL, DIV), то можно предположить что это или ВМ2 или ВМ3. ВМ3 можно отличить по наличию регистров диспетчера памяти. А вот то, что перед нами ВМ2, можно отличить, запустив какую нибудь подпрограмму в режиме HALT.
Но сперва надо удостовериться, что работают также и команды FIS. Если команды FIS отсутствуют, то это может быть и ВМ2, но не в составе УКНЦ или МС1201.02. Тут я ничего предложить не могу. Остается определить, что перед нами - УКНЦ или МС1201.02. Определяем наличие регистров 176640 и 176642 на шине - если они есть - или УКНЦ, или ДВК с КГД, если нет ДВК с чисто КСМ, 15ИЭ-00-013, или с КЦГД. Отличить УКНЦ от ДВК с КГД просто - у КГД 176640 - регистр режима отображения (там используются только биты 15 и 14), у УКНЦ - регистр адреса, надо изменить младшие 14 битов, не трогая биты 15 и 14, если содержимое 176642 не меняется - то ДВК с КГД, иначе УКНЦ.
Наконец последняя проверка на исполнение спецкоманд HALT-режима. Как известно, ВМ2 может переходить в HALT-режим по команде RTI, если осужествляется переход в область памяти с адресами старше 160000. Для УКНЦ все довольно просто - через регистры 176640/176642 можно перенести нашу программку например с адреса 175000, а потом перейти на нее через RTI (занеся в стек 600 и 175000). На ДВК придется чуть-чуть попотеть, но и здесь не все так плохо. Подпрограмма обработки FIS сохраняет регистры с R0 по R5 последовательно в памяти, поэтому можно занести начало нашей п/п в регистры с R0 по R5, занести в стек два вещественных нуля и исполнить FADD SP, стереть из стека результат. Теперь наша п/п в системном ОЗУ, надо узнать адрес. Все подробности здесь (http://groups.google.com/group/fido7.mo.dec/browse_thread/thread/9a1f0119ad710be9/ff43ff1289fd0e67#ff43ff1289fd0e67), автор технологии - Владимир Полетаев.
Если определились, что есть команды EIS (ASH, ASHC, MUL, DIV), то можно предположить что это или ВМ2 или ВМ3.
Речь шла не о том как отличить один ВМ от другого, а как отличить каждый из ВМ от всех остальных процессоров вообще :)
С ВМ2 вроде теперь понятно - вышенаписанная программа кое-что прояснила.
Речь шла не о том как отличить один ВМ от другого, а как отличить каждый из ВМ от всех остальных процессоров вообще :)
А по всяким мелким тонкостям, типа ADD (R0)+,R0, ну другим подобным. Для начала.
Кстати DEC T-11, и соответственно наш аналог 1807ВМ1, не обрабатывают TRAP4, так для информации.
А по всяким мелким тонкостям, типа ADD (R0)+,R0, ну другим подобным. Для начала.
Кстати DEC T-11, и соответственно наш аналог 1807ВМ1, не обрабатывают TRAP4, так для информации.
ADD R0,(R0)+...
Не поможет - есть процессоры и таки и такие.
Это полезно когда уже более менее определено семейство, но в этом случае как правило уже известен и тип :)
ADD R0,(R0)+...
Не поможет - есть процессоры и таки и такие.
Тонкостей много, проверять надо ...
Тонкостей много, проверять надо ...
Поковыряю на досуге.
Пойдем от обратного - отсечем сначала то, что заведомо не ВМx, а там посмотрим :)
Поковыряю на досуге.
Пойдем от обратного - отсечем сначала то, что заведомо не ВМx, а там посмотрим :)
Вот это согласен! А у ВМ-ы отличить друг от друга не составит труда.
С ВМ2 вроде теперь понятно - вышенаписанная программа кое-что прояснила.С ВМ1 ещё проще - регистр 0177706 (начальное значение счётчика ВЕ-таймера) должен запоминать любое записанное туда значение, которое должно копироваться в регистр 0177710 при обнулении регистра 0177712.
Не вполне понятно лишь чем уникален ВМ3..
Вот это согласен! А у ВМ-ы отличить друг от друга не составит труда.
Ну это как время будет. Пока RTEM хочу доковырять...
Вот кстати, может кому какая идея в голову придет пока я не закопался глубоко в рмоны всякие :)
Симптомы:
.MCALL .CLOSE,.ENTER,.EXIT,.PRINT,.WRITW
START: .ENTER #AREA,#0,#DBLK,#5.
BCC 10$
.PRINT #ERR1
.EXIT
10$: .WRITW #AREA,#0,#BUFF,#256.,#0
BCC 20$
.PRINT #ERR2
.EXIT
20$: .CLOSE #0
.PRINT #OK
.EXIT
DBLK: .RAD50 /DK FILTSTDAT/
AREA: .BLKW 5
BUFF:
.REPT 256.
.WORD 123456
.ENDR
ERR1: .ASCIZ /ENTER/
ERR2: .ASCIZ /WRITE/
OK: .ASCIZ /OK/
.END START
В RT-11 до 5.5(!) включительно прога нормально создает файл.
Начиная с 5.6 и выше проходит без ошибок, но файл получается нулевой длины.
Дело еще осложняется тем, что драйвер системный от RT-11 V4, но в первом приближении в системах без поддержки device timeout вроде особой разницы нет.
---------- Post added at 16:25 ---------- Previous post was at 16:23 ----------
С ВМ1 ещё проще - регистр 0177706 (начальное значение счётчика ВЕ-таймера) должен запоминать любое записанное туда значение, которое должно копироваться в регистр 0177710 при обнулении регистра 0177712.
Не вполне понятно лишь чем уникален ВМ3..
Ну среди ВМов-то чем уникален понятно - как минимум наличием MMU :)
А от других процессоров - посмотрим, может действительно если отсечь заведомо то, что не ВМ то все встанет на места :)
Не вполне понятно лишь чем уникален ВМ3..
ВМ3 не совсем корректно работает в режиме 22-разрядного адреса, сам процессор не поддерживает режим разделения на память инструкций и память данных, и соответствующие биты в регистрах диспетчера стоят в состоянии "1", вроде так, что не должно быть. Это подробно обсуждалось на bk0010.org, поискать надо.
ВМ3 не совсем корректно работает в режиме 22-разрядного адреса, сам процессор не поддерживает режим разделения на память инструкций и память данных, и соответствующие биты в регистрах диспетчера стоят в состоянии "1", вроде так, что не должно быть. Это подробно обсуждалось на bk0010.org, поискать надо.
Насчет несовсем корректной работы в 22бит режиме слышал, но так и не было шансов проверить в чем это проявляется. Ясно, что RT-11XM в 22бит режиме успешно работает, но не более того :)
Отсутствие разделения на I/D вобщем-то обычная вещь, а вот бывает ли у DEC такое на 22бит процах - не берусь судить так сразу - кажется нет, но возможно это как раз позволит отличить.
Насчет битов - тоже интересно.
Надо будет проверить.
---------- Post added at 16:50 ---------- Previous post was at 16:33 ----------
; "'So it does!' said Pooh. 'It goes in!'
; 'So it does!' said Piglet. 'And it comes out!'
; 'Doesn't it?' said Eeyore.
; -A.A. Milne, "Winnie the Pooh"
из RMON.MAC от RT-11 V5.7 ;)
Ленточный кит RT-11 V5.7 для установки под CHARON-TB. Возможно для старого CHARON-11 тоже подойдет - не проверял.
RT-11 V5.4G tape kit for CHARON-TB
Я не в курсе просто, что такое CHARON-TB ? Дело в том, что гугль не сильно помог с ответом, в основном я увидел море ссылок на какой-то эмулятор? Вопрос то скорее вот какой - раз ты публикуешь это в теме по ДВК, насколько уместно пришпилить эти rar-ы к архиву в раздел ДВК ?
а гугля настаивает на этой страничке из который мне понятно, увы,
не многое http://www.stromasys.ch/support/support-downloads/charon-tb-downloads/
Я не в курсе просто, что такое CHARON-TB ? Дело в том, что гугль не сильно помог с ответом, в основном я увидел море ссылок на какой-то эмулятор? Вопрос то скорее вот какой - раз ты публикуешь это в теме по ДВК, насколько уместно пришпилить эти rar-ы к архиву в раздел ДВК ?
а гугля настаивает на этой страничке из который мне понятно, увы,
не многое http://www.stromasys.ch/support/support-downloads/charon-tb-downloads/
Пришпиль. Архивы не часть эмулятора и соответственно под его лицензию не попадают :)
Правда RT-11 официально тоже никто пока фрееварью не делал, но оно во всяком случае дропнуто ментеком :)
что такое CHARON-TB ?
Что означает в статье многократно использование слов "виртуализация" "эмуляция"
Это что за цаца? Программный пакет или железка, ленточный хранитель или его эмулятор ))) Я прилеплю рары в архив в раздел ДВК и к ним приложу кратеньки ридми-заголовки твоих постов.
Что означает в статье многократно использование слов "виртуализация" "эмуляция"
Это что за цаца? Программный пакет или железка, ленточный хранитель или его эмулятор ))) Я прилеплю рары в архив в раздел ДВК и к ним приложу кратеньки ридми-заголовки твоих постов.
Программный эмулятор PDP-11/93, /94 и некоторых MicroVAX. Расширяемый.
Кривоватый. Но если удалось сконфигурировать (с помощью какой-то матери) - работает надежно.
Не стал заводить отдельную тему - эта достаточно близка, и все у кого может быть интерес здесь бывают.
Решил написать небольшое не то руководство, не то ноговодство по мотивам темы про PDP-11/83 (http://zx.pk.ru/showthread.php?t=15967). Может быть кому-то кто не зациклен на советских компьютерах поможет собрать себе приличный компьютер ;)
Страничка (http://pdp-11.org.ru/~form/pdp11-83/) будет еще пополняться.
Может быть кому-то кто не зациклен на советских компьютерах поможет собрать себе приличный компьютер
приличный - в смысле "правильный" PDP-11 ? Это замечательно, только вопрос доступности и цен на железо,а так-же есть шанс в тот же тетрис или сталкер с ДВК
погонять на таком ??? Или это уже софтовая проблема ?
---------- Post added at 16:40 ---------- Previous post was at 16:39 ----------
в любом случае руководство надо !
Sergei Frolov
10.02.2012, 16:41
А нет ли у кого схемы КЦГД? А то у меня только техническое описание от док к ДВК-3.
приличный - в смысле "правильный" PDP-11 ? Это замечательно, только вопрос доступности и цен на железо,а так-же есть шанс в тот же тетрис или сталкер с ДВК
погонять на таком ??? Или это уже софтовая проблема ?
Цена в целом получается приличная. Но никто не заставляет набирать сразу все, можно двигаться постепенно. :)
Все, что не требует спицифического железа от ДВК будет отлично работать на нем. К примеру тетрис что из скобочек, XONIX, PENTIX и тому подобное. Я бросал ссылку на свою неначатую страничку с игрушками - все, что там перечислено, идет на PDP-11 :)
Цена в целом получается приличная. Но никто не заставляет набирать сразу все, можно двигаться постепенно. :)
form, а где подобное железо реально приобрести? И с чего начинать? :)
form, а где подобное железо реально приобрести? И с чего начинать? :)
Найти можно на ebay. Я правда первую порцию купил здесь на форуме, но эта порция в свое время также была куплена на ebay. Для начала нужен процессор и один модуль памяти - просто, чтобы получить удовольствие :)
Если докупить к этому DLV11-J (или найти попроще - какой-нибудь однопортовый контроллер) - уже будет система которая может грузиться "с диска". В роли диска в этом случае будет выступать программа эмуляции DECtape II (на страничке до этого еще не дошел, есть в теме про 11/83 которую здесь открывал). Ну а дальше - как душа пожелает :)
form, форм а ты фотки своей про в одном месте выложишь когда-нибудь, а то по разным постам разбросаны в разных стадиях сборки )))
И по поводу игр я тебе в ЛС сейчас напишу (это другое)
form, спасибо! Буду приставать с вопросами. ;) Надеюсь, не откажете начинающему. :)
form, форм а ты фотки своей про в одном месте выложишь когда-нибудь, а то по разным постам разбросаны в разных стадиях сборки )))
И по поводу игр я тебе в ЛС сейчас напишу (это другое)
ПРО у меня к счастью больше нету - эту мерзость я сплавил KALDUNу - пусть мучается :)
Мне же нужен классический PDP-11, а не PC с процессором от PDP-11 :)
Основные фотки на странице выложил (будут еще), беспорядочно есть здесь (http://pdp-11.org.ru/~form/files/pics/1183/).
---------- Post added at 19:56 ---------- Previous post was at 19:55 ----------
form, спасибо! Буду приставать с вопросами. ;) Надеюсь, не откажете начинающему. :)
Всегда буду рад помочь. Пусть нашего полку прибывает! :)
А нет ли у кого схемы КЦГД? А то у меня только техническое описание от док к ДВК-3.
Вот из моей коллекцией, с подписанными названиями листиков. Оригинал вроде качал с полигона призраков.
Схема и описание КЦГД (http://narod.ru/disk/40294953001/%D0%9A%D0%A6%D0%93%D0%94.ZIP.html)
Вот из моей коллекцией, с подписанными названиями листиков. Оригинал вроде качал с полигона призраков.
Схема и описание КЦГД
Спасибо! В библиотеку залил, что бы не терялось уже )))
Sergei Frolov
10.02.2012, 22:17
Вот из моей коллекцией, с подписанными названиями листиков. Оригинал вроде качал с полигона призраков.
Схема и описание КЦГД (http://narod.ru/disk/40294953001/%D0%9A%D0%A6%D0%93%D0%94.ZIP.html)
Спасибо!
Пользуясь случаем...
для Win32, DOS и OS/2
Расскажите кто-нибудь про все эти MY, MX, MU, DZ, не помню комбинации буковок, могу напутать, т.к. мне они ничего не говорят.
Расскажите кто-нибудь про все эти MY, MX, MU, DZ, не помню комбинации буковок, могу напутать, т.к. мне они ничего не говорят.
MU - MSCP лента - не в тему.
---------- Post added at 05:43 ---------- Previous post was at 05:43 ----------
А что интересует собственно?
Расскажите кто-нибудь про все эти
вот УКНЦшного MZ.sys кратенькое описание, он наверное почти то же что и MY ДВКашный
ДРАЙВЕР НАКОПИТЕЛЯ НА ГИБКОМ ДИСКЕ MZ.SYS, ВЕРСИЯ 15-JAN-90
SET ПАРАМЕТРЫ ДРАЙВЕРА:
SET MZ NTRK 80 - УСТАНАВЛИВАЕТ ЧИСЛО ДОРОЖЕК НАКОПИТЕЛЯ;
80 ДЛЯ НАКОПИТЕЛЯ МС 5309 И 5305
40 ДЛЯ НАКОПИТЕЛЯ НГМД 6022
SET MZ SIDE 2 - УСТАНАВЛИВАЕТ РЕЖИМ РАБОТЫ С ОДНОСТОРОННИМ ИЛИ ДВУСТОРОННИМ;
НАКОПИТЕЛЕМ: 2 - ДВУСТОРОННИЙ НАКОПИТЕЛЬ (ОСНОВНОЙ РЕЖИМ)
1 - ОДНОСТОРОННИЙ НАКОПИТЕЛЬ
SET MZ STEP 3 - УСТАНАВЛИВАЕТ ВРЕМЯ ПЕРЕХОДА С ДОРОЖКИ НА ДОРОЖКУ;
3 ДЛЯ НАКОПИТЕЛЯ МС 5309 И 5305
20 ДЛЯ НАКОПИТЕЛЯ НГМД 6022
SET MZ REGIM 1 - УСТАНАВЛИВАЕТ РЕЖИМ РАБОТЫ НАКОПИТЕЛЯ;
1 РЕЖИМ РАБОТЫ С НАКОПИТЕЛЕМ МС 5309 (80 ДОРОЖЕК)
2 В ЭТОМ РЕЖИМЕ МОЖНО ЧИТАТЬ ДИСКЕТЫ ЗАПИСАННЫЕ
НА НАКОПИТЕЛЕ НГМД 6022 (40 ДОРОЖЕК) НА НАКОПИТЕЛЕ
МС 5309 (80 ДОРОЖЕК). ДЛЯ ПЕРЕХОДА В РЕЖИМ 1 ИЗ РЕ-
ЖИМА 2 НЕОБХОДИМО ВЫКЛЮЧИТЬ ПИТАНИЕ И ПЕРЕГРУЗИТЬ СИСТЕМУ
ГДЕ MZ НОМЕР ПРИВОДА НАКОПИТЕЛЯ, МОЖЕТ БЫТЬ MZ0, MZ1, MZ2, MZ3.
На УКНЦ (наверное) использовали только MZ.SYS ну и какая-то переделка его, для ADOS MU называется (что то такое).
Всё что касается ДВКашной специфики лучше пусть кто знает расскажет,
я например плаваю в этом, мне самому не понятно как можно было столько народа заставить посадить на MX на уровне железа (!!!) - теперь
софт "не с" "не на" = "не прочитать" "не скинуть" ((( брррррррр... в общем сложно там всё на монстрах этих, зато вентиляторы мощные )))) Скучаю ))))
foxb2673
16.02.2012, 04:49
MX (КНГМД) был так хорошо распространён, потому что тянулся ещё со времён поздних ДВК-2, был очень простым и дешёвым (собран на доступной рассыпухе, почти вся обработка делалась в драйвере). Связанный с этим основной недостаток - дорожечная структура записи (при записи даже отдельных блоков нужно было считать всю дорожку целиком в память, заменить в считанном образе нужный блок, и записать её всю опять обратно на диск). Из-за этого непотоковый обмен с диском (чтение/запись не больших объёмов подряд, а вразнобой) был жутко медленным. Стандартный драйвер MX также не обеспечивал никакой оптимизации прижима/отжима головок дисководов, что приводило к сильному износу дискет (головы хлопали вниз-вверх при каждом запросе чтения/записи).
В связи с этим стандартный драйвер был вскоре вытеснен новым, разработанным в ВЦ АН ССАР М.И.Потёмкиным и Р.А.Бронштейном. Его описание выложено здесь (http://pdp-11.org.ru/~hobot_lmb/ukdwk_archive/dwkwebcomplekt/DWKGAMES/MX.HLP). Оно было опубликовано в виде статьи в одном из номеров МПСС. В принципе, все детали там раскрыты, незачем пересказывать ещё раз.
С MX наконец-то стало возможно более-менее работать, а не только трахаться...
Формат записи - ФМ, дорожечный, 2.5 КБ на дорожку (на 80-дорожечном двухстороннем диске помещалось 400 КБ).
MY (КМД) это значительно более поздняя разработка, представляет собой интеллектуальный контроллер со встроенным микропроцессором, выполнен преимущественно на БИС МПК 1801.
Формат записи - МФМ, посекторный, 5 КБ на дорожку (10 секторов), на диск 80/2 умещалось 800 КБ. Обмен с машионй выполняется с помощью прямого доступа к памяти.
Оснащались уже машины от ДВК-3 и выше, где-то с 89 года (по крайней мере, мне впервые он попал в том году в составе такой машины).
Существует несколько вариантов, отличающиеся использованием разных версий БМК контроллера НГМД (-097, -128), памяти (1809РУ1, 573РУ8, РУ10), версией микропрограммы. В ранних микропрограммах были ошибки, делающие затруднительным использование этого контроллера в многозадачных ОС, в частности, в ДЕМОС и TSX-Plus.
Дискеты MY можно читать и записывать на IBM PC, но вот чтение отформатированных на IBM дискет контроллерами со старой микропрограммой у меня вызывало ошибки вида "сектор не найден" (с новой, -255, читают уже нормально).
SET-параметры у драйвера MY в RT-11 следующие:
SET MY0 WAIT=n - задержка при переходе между дорожками (в каких единицах, не помню, скорее всего в миллисекундах)
SET MY0 TRACKS=n - установка числа дорожек (от 1 до 90)
SET MY0 SECTRS=n - установка числа секторов на дорожку (от 1 до 10)
SET MY0 RETRY=n - установка числа повторений при ошибках (от 1 до 8)
SET MY0 [NO]WRITE - запрет или разрешение записи на диск
SET MY0 [NO]SIDEUP - двухсторонний (SIDEUP) или односторонний (NOSIDEUP) дисковод
Только я не помню, они были и в стандартном драйвере, или это мои доработки (под рукой сейчас есть только текст своего).
Параметры устанавливаются индивидуально на каждый дисковод, т.е. вместо MY0 можно указывать MY1, MY2, MY3.
DZ - это драйвер контроллера НГМД Электроники МС-0585.
Формат тоже МФМ, аналогичный MY, секторов на дорожку, насколько помню, тоже 10, но есть интерливинг (физический порядок секторов на дорожке отличается от логического, при чтении на MY или на IBM PC требовалось переставлять их в считанном образе).
Машины комплектовались преимущественно односторонними дисководами, для работы с двухсторонними и поддержки форматирования требовалась модификация микропрограммы контроллера.
По SET-параметрам подсказать не могу, образа дискеты от Э-85 близко нет. По-моему, там ничего и не задавалось, кроме SET DZx RETRY=n.
Оно было опубликовано в виде статьи в одном из номеров МПСС
Спасибо, вот такие развёрнутые ответы, мне лично очень интересно читать!
Кстати теперь часть номеров этого издания есть и общедоступной библиотеке в виде архивов rar (http://pdp-11.org.ru/~hobot_lmb/BIBLIOTEKA/MPSS/)
http://pdp-11.org.ru/~hobot_lmb/BIBLIOTEKA/MPSS/mpss.gif
так-же добавились в архив в папку к ДВК программам три очень "мощных"
коллекционных позиции - средства разработки и производства, я этими
программами живьём не пользовался но интересное там есть и в архиве им быть, все желающие могут написать про них что знают и изучать:
1.GRAPH (http://pdp-11.org.ru/~hobot_lmb/ukdwk_archive/dwkwebcomplekt/anasana/graph/)
graph.zip (810.27 килобайт ) Кол-во скачиваний: 243
Кучка графических программ для терминала ДВК3,4 - платы КЦГД.
P.S. кстати, нет ли эмулятора КЦГД у кого? Рассказывали где-то, что кто-то строил таковой.
P.P.S. КЦГД может применяться и в качестве удаленного терминала, для этого с платы удаляют
531АП2 на буферизации шины (по заводской схеме DD2..DD8) и одну из 1801ВП1-065
(по заводской схеме - DD9), после чего устанавливается max232, сигналы с контактов 29 и 31
удаленной ВП1 заводятся на мах232 непосредственно, а с контактов 27 и 28 - через инверторы, образованные на свободных элементах DD1 - терминал готов.
2.HELIOS (http://pdp-11.org.ru/~hobot_lmb/ukdwk_archive/dwkwebcomplekt/anasana/helios/)
Программа разработки принципиальных схем для ДВК, дистрибутив.
Прикрепленный файл helios.zip ( 533.26 килобайт ) Кол-во скачиваний: 232
3.GRAFOR (http://pdp-11.org.ru/~hobot_lmb/ukdwk_archive/dwkwebcomplekt/anasana/grafor/)
Графический инженерный программируемый калькулятор, дистрибутив.
Прикрепленный файл grafor.zip ( 401.45 килобайт ) Кол-во скачиваний: 226
Andrey_Ak
16.02.2012, 08:01
В связи с этим стандартный драйвер был вскоре вытеснен новым, разработанным в ВЦ АН ССАР М.И.Потёмкиным и Р.А.Бронштейном. Его описание выложено здесь (http://pdp-11.org.ru/~hobot_lmb/ukdwk_archive/dwkwebcomplekt/DWKGAMES/MX.HLP).
- А есть у Вас эта новая версия драйвера MX и старые тоже?
А то я недавно разбирался с чтением/записью дискет МХ на ДВК,
и так-же на ПиСи, нашел две версии драйвера MX, но так и не
понял как их настраивать, Ваше описание должно помочь..
Но еще хотелось бы посмотреть Ваши драйверы, если такие сохранились...
А так-же есть ли подобное описание для драйвера MY, и есть ли у Вас разные версии MY? Потому как на некоторых моих драйверах MY
не работает команда SET MY INFORM
---------- Post added at 10:01 ---------- Previous post was at 09:58 ----------
В частности интересуют:
- описание драйвера MX в файле README.MX
- программа определения характеристик дисковода MXDEF.SAV
foxb2673
16.02.2012, 09:17
Доберусь домой, гляну, какие есть разновидности...
Новый MX точно есть, файлик справки от него тоже где-то был, старый MX - не помню, разве что в составе дискет с ТМОС сохранился. Точно был на древних дискетах с ОС ДВК, ещё от машин первого поступления, но они все, к сожалению, утеряны ещё в начале 90-х.
Для MY такого описания не было, версий MY есть несколько, втч с моими правками, но SET MY INFORM, насколько помню, ни в одной из них нет.
А есть у Вас эта новая версия драйвера MX и старые тоже? В частности интересуют:
- описание драйвера MX в файле README.MX
- программа определения характеристик дисковода MXDEF.SAVВсё, что имеется по MX - в приложении (http://zx.pk.ru/attachment.php?attachmentid=33068).
Image : MX.DSK
Format : DSK
Size : 88 Kb
Volume ID: RT11A
Owner :
File Blocks Date Bytes
---------- ------ ----------- ----------
MX0 .SYS 10 10-Jun-2009 5'120
MX1 .SYS 10 08-Jul-1987 5'120
MX2 .SYS 9 20-May-1988 4'608
MX .SYS 9 16-Oct-1988 4'608
README.MX2 29 14-Nov-1988 14'848
HELP .MX 9 4'608
README.MX1 84 43'008
HAND .SAV 8 08-Nov-1980 4'096
---------- ------ ----------- ----------
8 Files, 168 Blocks
0 Free blocks
...
P.S. Оба файла README.MX скопированы с ошибками, остальные в норме.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot