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

User Tag List

Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 25 из 25

Тема: Специалист: Вопросы программирования

  1. #21
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,217
    Благодарностей: 930
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    выравняв расположение этого фонта ровно по блоку, что дает младший байт равным 00
    Не совсем так. Адрес фонта поделён на 8, чтобы не было переноса в команде ADD L, адрес фонта должен быть кратным 800h.

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

    Учитывая, что перед этим из кода символа вычитается 20h, можно фонт подвинуть вперёд максимум на 100h байт. Вышесказанное верно, если мы хотим использовать весь диапазон символов 20-FF.

  2. #22
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    10,049
    Благодарностей: 3487
    Mentioned
    3 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Вопрос к специалистам по Специалисту)

    Зачем нужен сигнал НП?

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

    И еще такой вопрос, если допустим, в одном столбце клавиатуры нажаты две клавиши, как поведет себя ВВ55? Произойдет нагрузка выхода на выход? Например, на выходе KB2 - '0', на выходе KB3 - '1', а при нажатии одновременно двух клавиш S3 и S4, эти выходы обьединятся. Или же у ВВ55 выходы с открытым коллектором? Или же при сканировании на KB2 - '0', а на KB3 'Z'?
    у РК-86 на рядах стоят диодики, защищающие от такого включения. А у специалиста диодов нет, зато зачем-то подтягивающие резисторы и на рядах и на столбцах. Наверное, чтобы можно было сканировать и по столбцам, и по рядам, кому как удобнее.

  3. #23
    Master Аватар для barsik
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    933
    Благодарностей: 303
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Зачем нужен сигнал НП?
    Сигнал НП это аббревиатура от слов "Начальный Пуск". Этот сигнал нужен потому, что КР580 начинает прогон по сбросу с адреса 0, где ОЗУ. А ПЗУ находится по адресу C000. Назначение этого сигнала такое же как у сигнала НП в РК86 и ОРИОНЕ. Чтобы по сбросу во всём адресном пространстве стояло ПЗУ.

    Только в РК86 это сделано умнее. Там используется триггер. По сбросу он взводится, формируя НП, а по первой же записи куда-либо (сигналом /WR процессора) сбрасывается и открывается ОЗУ в области с адреса 0 и до RAMTOP. Потому первой командой в ПЗУ в этих компьютерах стоит JMP в область ПЗУ.

    В СПЕЦИАЛИСТЕ ради экономии деталей, в качестве сигнала НП используется разряд PC4 порта клавиатуры. По сбросу ВВ55 все порты программируются на ввод, отчего PC4=НП=1. А при программирования портов PC4...PC7 на вывод на разряде PC4 сразу оказывается 0, что и приводит к открытию ОЗУ.

    В любом случае при перепрограммировании ППА всегда надо программировать PC4...PC7 на вывод. В противном случае произойдёт улёт, т.к если запрограммировать на ввод, то НП=1 и ОЗУ исчезает. Это удобно использовать для защиты программ от взлома, причём делая JMP или CALL на команду в ПЗУ LD (PPA+3),A и желательно командой JP (HL) или ещё хитрее.

    В 1990 году товарищи Медведков и Иванов при расширении цвета с 4-х цветов до 8-ми, с целью освободить разряд PC4 для целей цвета, решили, что прерывания для КР580 это непозволительная роскошь. Они избавили PC4 от функции НП, отдав этот разряд для цвета, а в качестве НП использовали выход INTE процессора КР580. Из-за этого стало невозможно использовать программы от РК86 и ОРИОНА, где звук выдаётся по EI/DI, а также прерывания и возникли сложности при установке Z80, т.к у него не оказалось выхода INTE.

    Отчего при Z80 для начального пуска пришлось использовать два вентиля из 155 ЛА3 или половинку триггера 155 ТМ2. Из двух TTL-вентилей делается RS-триггер. На один вход заводится сигнал /RESET, на другой /WR процессора. Эту же переделку разумно делать и при КР580, чтобы освободить INTE для РК-шного звука, прерываний и возможности с его помощью переключать архитектуру, - например, банки ОЗУ.

    Т.к команды EI/DI - быстрые 4-х тактовые, это здорово ускоряет, давая при КР580 ВМ80 возможности процессора КР580 ВМ1, у которого для этих же целей изобретён префикс, ровно на одну команду включающий вторую банку ОЗУ, что даёт 64 кб для программ и 64 кб для данных.

    Цитата Сообщение от Titus Посмотреть сообщение
    как поведет себя ВВ55? Произойдет нагрузка выхода на выход? Например, на выходе KB2 - '0', на выходе KB3 - '1', а при нажатии одновременно двух клавиш S3 и S4, эти выходы обьединятся и ППА выгорит в хлам.
    Такое в СПЕЦИАЛИСТЕ можно сделать только во вредительских целях. Во все разряды как по вертикали, так и по горизонтали выдаётся только 0, точнее программно туда вообще ничего не выдаётся. Нули на выходах порта возникают сами по себе, когда данный порт программируется на вывод. И уж тем более единицы в порты клавиатуры никогда не выдаются, т.к это не требуется. Единственные единицы которые могут возникать на линиях матрицы возникают за счёт высокомных резисторов привязки и коротить их клавишами можно сколько угодно.

    В клавиатуре СПЕЦИАЛИСТА гораздо более грамотный алгоритм, чем классический алгоритм с диодами использованный в РК86 и ОРИОНЕ. Тут не производится сканирование матрицы по одному разряду, так называемым "бегущим нулём".

    Сначала по вертикали выводятся все нули и читается байт по горизонтали, затем ППА перепрограммируется, ноль возникает по горизонтали а считывается байт по вертикали. А затем табличным методом высчитывается код нажатой клавиши. Это примерно в 10 раз быстрее, чем алгоритм РК86.

    Потому вместо диодов и нужны привязки разрядов ППА резисторами (я ставил 20 ком). Никаких конфликтов в ППА не возникает и в играх программно обнаруживаются двойные нажатия (но п/п-ммы ПЗУ C377 и C81B это не поддерживают).
    Последний раз редактировалось barsik; 20.02.2018 в 08:12.

  4. Этот пользователь поблагодарил barsik за это полезное сообщение:
    Titus (20.02.2018)

  5. #24
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    10,049
    Благодарностей: 3487
    Mentioned
    3 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Сигнал НП это аббревиатура от слов "Начальный Пуск". Этот сигнал нужен потому, что КР580 начинает прогон по сбросу с адреса 0, где ОЗУ. А ПЗУ находится по адресу C000. Назначение этого сигнала такое же как у сигнала НП в РК86 и ОРИОНЕ. Чтобы по сбросу во всём адресном пространстве стояло ПЗУ.
    Поточнее - по каким адресам при начальном сбросе маппится ПЗУ и сколько раз?

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

    Цитата Сообщение от barsik Посмотреть сообщение
    Такое в СПЕЦИАЛИСТЕ можно сделать только во вредительских целях.
    Т.е. по сути, если чья-то 'вредительская' программа это сделает или же просто заглючит обычная программа, и случайно так запрограммирует ВВ55, то этот самый ВВ55, что логично, сгорит? Такое бывало?

  6. #25
    Master Аватар для barsik
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    933
    Благодарностей: 303
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Поточнее - по каким адресам при начальном сбросе маппится ПЗУ и сколько раз?
    Я об этом не думал, т.к это не важно и зависит от конкретной реализации области ПЗУ C000...F7FF. По сбросу ПЗУ C000 стоит на адресе 0, благодаря чему выполняется самая первая команда JMP C003. Далее командой на адресе C003 устанавливается стек и следующими двумя командами программируется ППА. Т.о после исполнения 4-той команды в ПЗУ после сброса, ОЗУ появляется в адресном пространстве процессора и не исчезает до выключения компьютера. Использовать сигнал НП, чтобы включать ПЗУ с нуля можно только, если НП формируется программно, т.е или битом PC4 или выводом INTE процессора КР580.

    Цитата Сообщение от Titus Посмотреть сообщение
    то этот самый ВВ55, что логично, сгорит? Такое бывало?
    Вряд-ли ВВ55 сгорит. Они довольно надёжные. Я имел дело с полусотней 8-ми разрядок с ППА. Дохли КР580 и ВГ93, а Z80 и ВВ55 никогда. Они также как КМОП серии и 1533 допускают коротыш на землю или +5В. А вот подача на ВВ55 напряжений -5В или +12В, возможно, убъёт их.
    Последний раз редактировалось barsik; 20.02.2018 в 08:38.

Страница 3 из 3 ПерваяПервая 123

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

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

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

Похожие темы

  1. Специалист: Разное
    от Splinter в разделе Специалист
    Ответов: 163
    Последнее: 24.06.2011, 18:27
  2. Специалист: Бейсик
    от Prusak в разделе Специалист
    Ответов: 1
    Последнее: 08.06.2009, 09:59
  3. Языки программирования
    от BlackWolf в разделе Программирование
    Ответов: 188
    Последнее: 26.04.2009, 13:34
  4. Техника программирования процедурных сопроцессоров
    от andrews в разделе Программирование
    Ответов: 4
    Последнее: 29.12.2006, 20:10

Ваши права

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