Важная информация

User Tag List

Страница 18 из 156 ПерваяПервая ... 141516171819202122 ... ПоследняяПоследняя
Показано с 171 по 180 из 1553

Тема: Программирование на УКНЦ как?

  1. #171
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    282
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Грубо говоря - какую циферку указал в LOOKUP/ENTER, такую и используешь в остальных операциях до самого CLOS*/PURGE.

    Есть еще разные хитрые операции с каналами, но обычно хватает и этого.
    Последний раз редактировалось form; 14.11.2011 в 14:56.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  2. #172
    Master
    Регистрация
    22.07.2007
    Адрес
    St.Petersburg
    Сообщений
    593
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Titus, рекомендую книжку, офигенная

    http://www.alib.ru/bs.php4?uid=3714e...1dc2b7541c8cef

    http://vova1001.narod.ru/00000050.htm

    В PDF не нашел

  3. #173
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,597
    Спасибо Благодарностей отдано 
    1,240
    Спасибо Благодарностей получено 
    1,806
    Поблагодарили
    694 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от AlecV Посмотреть сообщение
    Titus, рекомендую книжку, офигенная

    http://www.alib.ru/bs.php4?uid=3714e...1dc2b7541c8cef

    http://vova1001.narod.ru/00000050.htm

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

    ---------- Post added at 00:36 ---------- Previous post was at 00:34 ----------

    К тому же, ее нет тут в электронном виде.

  4. #174
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    282
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На самом деле берется RT-11 V5.6: RT-11 System Macro Library Manual и быстро пролистывается. Там целая куча примеров.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  5. #175
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хочется переделать UST.sav так, что-бы он устанавливал дискретный рулон,режим ЛАТ, черный цвет знакоместа\экрана и белый цвет знаков - цвета и ЛАТ легко и понятно, сложнее с рулоном - есть ESC последовательность или где это регулировать?
    И ещё, помню был вариант стартового UST где курсор делался горизонтальной полоской (нижней), вот как это делалось интересно?
    Спасибо.
    + прилепил свой первый шедевр на UKNCBTL )))) Супер версия UCL.SAV от [hobot]
    Вложения Вложения
    Последний раз редактировалось hobot; 19.11.2011 в 20:03.
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  6. #176
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    прилепил свой первый шедевр на UKNCBTL )))) Супер версия UCL.SAV от [hobot]
    Шедевр действительно замечательный . Но лучше воспользоваться макробиблиотекой и тогда:
    Код:
    	.MCALL	.PRINT,.EXIT
    START:	.PRINT	#PRIGL
    	.EXIT
    PRIGL:	.ASCII	"!UCL-E-Bad command or file name"<200>
    	.END	START
    и тогда вообще ни одной команды PDP-11.

  7. #177
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    282
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    !UCL-E-Bad command or file name
    А главное - по смыслу верно. -E- традиционно обозначает ошибку которая не мешает выполнению программы

    ---------- Post added at 18:59 ---------- Previous post was at 18:44 ----------

    Кстати о программировании (хотя и не для УКНЦ). Ни у кого нет желания помучить запуск RT-11 внутри RSX-11 или P/OS? Разобрался как это делается, осталось собраться с силами
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  8. #178
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Хочется переделать UST.sav так, что-бы он устанавливал дискретный рулон,режим ЛАТ, черный цвет знакоместа\экрана и белый цвет знаков - цвета и ЛАТ легко и понятно, сложнее с рулоном - есть ESC последовательность или где это регулировать?
    И ещё, помню был вариант стартового UST где курсор делался горизонтальной полоской (нижней), вот как это делалось интересно?
    Насчет ЛАТ всё понятно - управляющий код <017>. Можно также в ПП вызвать подпрограмму по адресу 105306.
    Цвета. Тут существуют разные Esc-последовательности. Все дело в том, что номера используемых цветов и номера цветов в пунктах УСТ хранятся в разных ячейках. Esc-последовательности <033><240>, <033><241>, <033><242> устанавливают цвет символов, знакоместа и экрана, но они не устанавливают пункты в меню УСТ, зато с помощью <033><277><240>, <033><277><241> можно возвратить старый цвет. В режиме графики есть Esc-последовательность, которая скопом устанавливает цвет символа, знакоместа и экрана, она же правильно настраивает пункты меню УСТ, но возвратиться к предыдущему цвету нельзя. Эта последовательность <033>LI. Сначала надо переключиться в режим графики, переключить номера цветов и возвратиться в текстовый режим. Где-то так <033>%!0<033>LI@@7@@0@@0<033>%!3.
    Если же номера цветов менять прямо программой в ПП, то пункты УСТ: 7160 - цвет символа, 7162 - цвет знакоместа, 7164 - цвет экрана. Реальные цвета содержаться в таблице видеопараметров, для экрана пользователя ее адрес - 22656. Цвет символов - ячейка 22712, цвет знакоместа - 22716 и цвет экрана - 22722. Если цвет символа указывается прямо (от 0 до 7), то цвета знакоместа и экрана должны указываться в формате загрузки в регистр кода цвета фона, сама таблица содержится по адресу 113512, она содержит восемь слов, соответственно по номерам цветов.
    Рулон. Никаких Esc-последовательностей не существует, только изменять ячейки в ПП. Пункт УСТ - ячейка 7170, соответственно 0-плавный, 1-дискретный, 2-отсутствует. Для реальной работы: 7136 - тип рулона (0-плавный, 2-дискретный), 22752 - присутствие рулона (0-отсутствует, 2-присутствует).
    Про курсор чуть попозже. Там ситуация более сложная, надо оставлять резидент в ОЗУ ПП.

  9. #179
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    282
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Там ситуация более сложная, надо оставлять резидент в ОЗУ ПП.
    А кто мешает? PRUN для того и делал чтобы такие вещи упростить. Даже позиционнонезависимый код не нужен
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  10. #180
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Про курсор. Естественно никаких Esc-последовательностей для изменения его формы нет. Нет также и ячеек памяти, где хранится информация в какой строке начинается курсор, и в какой оканчивается. Его форма зашита жестко в подпрограммах ПЗУ. Но все не так плохо. Для переключения курсора существует ячейка с адресом 7134. При значении её равное нулю, курсор выключается в старой позиции и включается в новой. Обрабатывается эта ячейка в подпрограмме обслуживания прерываний сетевого таймера по адресам 175072-175304. Значение ячейки равное нулю обрабатывается в диапазоне 175150-175276. Но значение ячейки 7134, равное нулю, присваивается только в одном месте - в подпрограмме переключения координат курсора, расположенной по адресу 176056. Эта подпрограмма вызывается только из диспетчера процессов по флагу из ячейки 7066. Так что в данном случае нужно перехватить вызов п/п в диспетчере процессов и ложить в ячейку 7134 значение равное разнице между адресом новой п/п переключения и адресом 175076, т.к. переход делается командой ADD @#7134,PC.
    Само переключение делается просто - в таблице видеопараметров есть два слова со смещениями 032 и 060, в которых расположены соответственно адреса списка видеострок новой позиции курсора и предыдущей позиции. Список видеострок для экрана пользователя и установки двухсловный, во втором слове младший бит указывает изменять состояние курсора или нет. Поэтому для выключения курсора там есть две команды BIC #1,6(R1) и BIC #1,52(R1). Для включения соответственно BIS #1,6(R1) и BIS #1,52(R1). В соответствии с этими командами курсор расположен со 2-й по 10-ю строки знакоместа (нумерация с единицы), включение происходит в списке 2-й видеостроки, а выключение в 11-й. Этим примером, расположенным в системном ПЗУ можно спокойно воспользоваться, если курсор не будет расположен в самой последней 11-й видеостроке, т.к. выключать его придется уже в следующей символьной строке. Если же курсор будет находится и в последней 11-й видеостроке, то здесь возможно два варианта. Сразу замечу, что это не относится к экрану установки (когда он активен, то ячейка 23150 равна 22754), т.к. там нет скроллинга и описание строк расположено последовательно, то и сработает правило 56(R1).
    Вариант 1 относится к тому случаю, когда курсор расположен не на последней символьной строке, это можно узнать из таблицы видеопараметров, если по смещению 020 записано 1, то строка последняя, в этом случае вариант 2.
    Вариант 1. Список видеострок для экрана пользователя является закольцованным, он описывает 26 текстовых строк (286 видеострок), при этом на экране отображаются только 24, две невидимы. Сама таблица занимает адреса с 2500 по 4666. При скроллинге само изображение в видеопамяти не прокручивается, меняются только адреса следующих видеострок в таблице. Соответственно при таком раскладе значение ячейки 4666 обычно указывает на следующий адрес 2500 для закольцовки. Поэтому, если адрес равен или больше 4670, то надо вычесть 02170 (286*4 в десятичном).
    Вариант 2. В этом случае просто, выключать курсор надо уже в нижней разделительной видеостроке, адрес ячейки - 6746.
    Ещё надо перехватывать обработку Esc-последовательности <033>%, т.к. при переходе в режим графики по <033>%!0 вызывается подпрограмма по адресу 111632, которая выключает курсор командами BIC #1,6(R0) и BIC #1,52(R0).
    Еще кстати в дополнение при включении курсора надо запомнить ячейки списка видеострок, где он включен и выключать уже по этим адресам. Это необходимо, т.к. узнать в какой символьной строке расположен курсор (смещение 020 в таблице видеопараметров) можно узнать только для новой позиции.

    Естественно программа обработки должна висеть резидентом в ОЗУ ПП.

    ---------- Post added at 20:53 ---------- Previous post was at 20:47 ----------

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

    А PRUN хорош только для загрузки резидента, который ничего на экран не выводит, т.к. обычно RT-11 свой промптер иногда успевает вывести вперед. Если же нужно взаимодействие программ между собой в ОЗУ ЦП и ОЗУ ПП, то только свой загрузчик в программе. Да и не столь сложно сделать MOV PC,R0 ADD #LABEL-.,R0, не столь часто это встречается.

Страница 18 из 156 ПерваяПервая ... 141516171819202122 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Программирование на Эмуляторе. Возможно ли это?
    от Toxic в разделе Программирование
    Ответов: 10
    Последнее: 20.01.2008, 19:20
  2. Программирование Altera и JTAG
    от Mikka_A в разделе Несортированное железо
    Ответов: 7
    Последнее: 18.01.2008, 09:07
  3. Программирование и софтмейк на NES
    от Splinter в разделе Nintendo
    Ответов: 7
    Последнее: 30.06.2006, 04:31

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •