User Tag List

Страница 17 из 157 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя
Показано с 161 по 170 из 1564

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

  1. #161

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Что за спрайтовый механизм такой?
    Спрайтовый механизм - это регистры с 177016 по 177026. Заносить в ОЗУ (во всё, т.к. практически всё ОЗУ можно сделать видеопамятью) можно либо через регистры адреса/данных (177010, 177012, 177014), либо через спрайтовый механизм. В случае спрайтового механизма в регистр адреса грузится адрес, программируются два регистра кода цвета фона, регистр кода цвета точки, а запись информации делается через регистр октета. Пишется сразу во все три плана. Всё описано в техописании.

  2. #162

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,386
    Спасибо Благодарностей отдано 
    1,700
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Спрайтовый механизм - это регистры с 177016 по 177026.
    Да, это я читал. Просто не называл это спрайтовым механизмом)

    ---------- Post added 18.10.2011 at 00:00 ---------- Previous post was 17.10.2011 at 23:53 ----------

    Если что, то там еще были вопросы выше)

  3. #163

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Кстати, в каком-нить софте используются банки ОЗУ плана 0 вместо ПЗУ. И почему в них при этом нельзя писать?
    И еще, из документации не совсем понятен механизм работы этого регистра. Бит 0 отключает системное ПЗУ в окне. При отключении что в этом окне оказывается? И зачем этот бит, если окон 4, и битами 4-7 можно ими выборочно управлять?
    Используются. В ТурбоБейсике Олега Герасимова.

    Что исчезает и что оказывается, тут надо понимать архитектуру машины. Во-первых ПЗУ обрабатывает только чтение (сигнал DIN), на запись оно не реагирует. Вот благодаря этой особенности с помощью битов 7-4 можно подставлять ОЗУ по соответствующим адресам, ПЗУ при этом не отключается. В этом случае ОЗУ и ПЗУ живут одновременно в одном пространстве. Но т.к. ПЗУ на запись не реагирует, то в ОЗУ можно писать спокойно. Естественно здесь имеют смысл только команды без чтения, такие как CLR и MOV. А вот с чтением сложнее, отвечать будут оба. ПЗУ пошустрее, и быстрее выставит свои данные на шину, контроллер ОЗУ не успеет окончательно прочесть ячейку, но по сигналу DIN выставит на шину свой буферный регистр, в котором будет результат предыдущего чтения. В итоге прочтется (с учетом инверсной шины) логическое ИЛИ между содержимым ПЗУ и предыдущем результатом чтения памяти (здесь правда может успеть затесаться младший байт считываемого адреса). Поэтому команды с циклом DATIO бесполезны (INC, BIC, BIS, ...).

    Посложнее с "окном". Тут ещё всё зависит от того, что воткнуто в слоты. Если ничего, то сбросом бита 0 177054 и установкой бита 4 этого же регистра можно сделать так, что в "окне" ОЗУ будет нормально доступно и по записи и по чтению.
    А вот если в слот воткнуто устройство, использующее "окно" (контроллер винчестера, ЭД от ЭР), то обычно эти устройства активируются при отключении системного ПЗУ в "окне". Тут уже трюк с полным доступом на чтение/запись не пройдет. В этом случае на команды чтения/записи будут реагировать и ОЗУ и устройство.

    ---------- Post added at 00:10 ---------- Previous post was at 00:08 ----------

    Цитата Сообщение от Titus Посмотреть сообщение
    Для экспериментов.
    Флаг Вам в руки. Я тоже любитель извращенно покопаться в чём-нибудь.

  4. #164

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,386
    Спасибо Благодарностей отдано 
    1,700
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А вот если в слот воткнуто устройство, использующее "окно" (контроллер винчестера, ЭД от ЭР), то обычно эти устройства активируются при отключении системного ПЗУ в "окне". Тут уже трюк с полным доступом на чтение/запись не пройдет. В этом случае на команды чтения/записи будут реагировать и ОЗУ и устройство.
    Как система определяет, воткнуто ли в слот что-то, что надо подставить в окно или нет?
    Можно еще описать биты 1-3 своими словами?

  5. #165

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Как система определяет, воткнуто ли в слот что-то, что надо подставить в окно или нет?
    Можно еще описать биты 1-3 своими словами?
    Определить может только драйвер какого-то устройства. Например теоретически можно определить, что воткнута кассета ПЗУ, контроллер винча или ЭД от ЭР. При этом даже можно определить к каком слоте. А окно подставляет сам драйвер. Система умеет работать только с кассетой ПЗУ (соответственно контроллер винча тоже делает так, чтобы его ПЗУ подставлялась в окно).
    Про биты 1-3, а лучше 0-3. Они соответствуют сигналам на шине с CE0 по CE3. А уж аппаратура использует их по своему усмотрению. Единственно в УКНЦ используется сигнал CE0, по нему можно включать и отключать системное ПЗУ в "окне" 100000-117777. Сигнал CE3 поступает на один слот прямо, на другой через инвертор, благодаря этому устройство имеет свой адрес слота, а так бы пришлось вводить джампер на самом устройстве. Обычно CE3 используется для выбора устройства в слоте. А с помощью CE1 и CE2 в кассете ПЗУ (классической) выбирается какой банк подставлять в окно, комбинация 00 запрещает подстановку, а с помощью 01, 10 и 11 можно выбрать нужный банк.

  6. #166

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,386
    Спасибо Благодарностей отдано 
    1,700
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Обьясните коротенечко, как из своей программы загрузить файл в память, и как для этого зарезервировать у системы память?

  7. #166
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #167

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Обьясните коротенечко, как из своей программы загрузить файл в память, и как для этого зарезервировать у системы память?
    Загрузить - всмысле открыть файл и считать его?
    Если так, я тут давал исходники PRUN - там открывается файл и читается в память

    Память в RT-11 резервируется макросом .SETTOP которому указывается верхний желаемый адрес (-2 - мксимум возможного), а он отвечает в R0 реальным максимальным адресом.

    Есть еще управление расширенной памятью, но это только в XB/XM/ZB/ZM.
    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

  9. #168

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,386
    Спасибо Благодарностей отдано 
    1,700
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Загрузить - всмысле открыть файл и считать его?
    Если так, я тут давал исходники PRUN - там открывается файл и читается в память
    Там надо разбираться в исходнике, а я просил коротенечко.)

  10. #169

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Там надо разбираться в исходнике, а я просил коротенечко.)
    Сейчас набросаю кратко

    ---------- Post added at 17:43 ---------- Previous post was at 17:10 ----------

    Примерно так:

    Код:
    Все макросы при успехе очищают бит C, при ошибке устанавливают.
    В последнем случае в байте @#52 может вернуться код ошибки.
    
    
    Открытие существующего файла
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    .LOOKUP	AREA,CHAN,DBLK
    
    AREA	- 3-словный блок для хранения параметров EMT
    CHAN	- номер канала
    DBLK	- четырехсловный блок имени файла:
    
    DBLK:	.RAD50	/DK /		;ИМЯ УСТРОЙСТВА
    	.RAD50	/FILNAM/	;ИМЯ ФАЙЛА
    	.RAD50	/EXT/		;РАСШИРЕНИЕ
    
    При успехе R0 вернется длина файла в блоках.
    Таким способом можно открыть и устройство, в этом случае при успехе в R0
    будет не длина, а 0. У макроса есть еще аргумент, но он интересен только
    для лент.
    
    
    Создание файла
    ~~~~~~~~~~~~~~
    .ENTER	AREA,CHAN,DBLK,LEN
    
    AREA	- 4-словный блок
    LEN	- запрашиваемая длина в блоках или
    	  0 - половина максимального пустого места
    	 -1 - максимальное пустое место
    
    В R0 возвращается максимальный размер файла. Реальный размер определяется
    или последним записанным блоком или через .CLOSZ.
    
    
    Закрытие файла
    ~~~~~~~~~~~~~~
    .PURGE	CHAN
    
    Закрывает файл. Если был открыт по .ENTER, файл не сохраняется.
    
    .CLOSE	CHAN
    
    Закрывает файл, размер определяется последним записанным блоком (для .ENTER).
    
    .CLOSZ	AREA,CHAN,SIZE
    
    Закрывает и устанавливает размер (для .ENTER) или работает
    как .CLOSE (.LOOKUP).
    
    AREA	- 2-словный блок
    SIZE	- требуемый размер файла (в пределах выделенного через .ENTER)
    
    
    Чтение файла
    ~~~~~~~~~~~~
    
    .READ	AREA,CHAN,BUF,WCNT,BLK
    .READC	AREA,CHAN,BUF,WCNT,CRTN,BLK
    .READW	AREA,CHAN,BUF,WCNT,BLK
    
    AREA	- 5-словный блок
    BUF	- адрес буфера в программе
    WCNT	- количество слов
    BLK	- номер блока
    
    .READ запускает операцию чтения и продолжает выполнение. Дождаться завершения
    можно далее в любом месте макросом .WAIT.
    
    .READC аналогично .READ, по завершению вызывается подпрограмма CRTN. При входе
    в нее R0 содержит слово состояния канала (CSW), R1 содержит номер канала.
    Эти регистры можно портить в подпрограмме, другие нужно сохранять.
    
    Биты CSW: 000001 - ошибка, 020000 - конейц файла.
    
    .READW аналогично .READ, только ждет окончания операции.
    
    Особое внимание на буфер - I/O выполняется прямо с ним, портить его пока
    операция не завершилась нельзя.
    
    
    Запись в файл
    ~~~~~~~~~~~~~
    .WRITE	AREA,CHAN,BUF,WCNT,BLK
    .WRITC	AREA,CHAN,BUF,WCNT,CRTN,BLK
    .WRITW	AREA,CHAN,BUF,WCNT,BLK
    
    Записывает в файл. Остальное аналогично .READ/.READC/.READW.
    При записи некратного 256 количества слов на блочное устройство, остаток последнего блока зануляется.
    
    
    Ожидание завершения операции
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    .WAIT	CHAN
    
    Ждет завершения операции на канале.
    Последний раз редактировалось form; 14.11.2011 в 14:46.
    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

  11. #170

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,386
    Спасибо Благодарностей отдано 
    1,700
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Дополнительный вопрос - что такое канал?

    Еще вопрос - какое надо указывать устройство, чтобы файл загрузился с того же диска, с какого запущена была программа, отркрывающая его?
    Последний раз редактировалось Titus; 14.11.2011 в 14:55.

Страница 17 из 157 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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