User Tag List

Показано с 1 по 10 из 361

Тема: Секреты и трюки программирования (в том числе и игр) для РК-86

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri
    я спросил где она в этой табличке
    В таблице приведены коды клавиш матрицы 8*8, а спец клавиши стоят вне основного поля. УС и СС это модификаторы кодов нажатых клавиш. А именно, клавиша УС (Control на вражеском языке) сбрасывает бит 40H, а СС (на вражеском языке SHIFT) устанавливает бит 20H (точнее делает XOR 20H). А клавиша РУСЛАТ по F81B выдаёт код FE, а в F803 просто меняет байт RUSLAT (кажется 7606). Клавиша РУСЛАТ в 8-ми битовой кодировке (т.е при КОИ-8) должна называться CAPS LOCK (так она и используется на ОРИОНЕ в CP/M драйверах)

    Код:
    .
    	LD	A,(0)
    	LD	(0),A
    Думаю, что это для отладки. Чтобы радиолюбитель мог осцилографом проконтролировать формирование сигналов /RAS /CAS для РУ3-тьих.

    Цитата Сообщение от jerri
    чем отличается .xcall от CALL
    Это надо спрашивать у авторов РК86: Попова, Горшкова и Зелёнко. Макрокоманда .xcall - это цепочка команд заменяет CALL тогда, когда нет ОЗУ (отчего нельзя использовать стек). Точка в макрокомандах в M80 не обязательна, а мнемоники пишу большими буквами, чтобы не портить зрение, а все служебные слова пишу маленькими буквами для отличия. Некоторые делают наоборот, но это глупо (т.к зрение одно и большие буквы различаются лучше, - например, легко перепутать l и 1).

    Но это не лучшая идея получения подпрограмм в программах без ОЗУ. Я в своих тестах СПЕЦИАЛИСТА и ОРИОНА делал так. Тестирую микросхему ППА, которая стоит в области памяти, и если исправна, ставлю стек на её адрес. Таким образом я получаю стек глубиной в 1 и ещё одну служебную ячейку. А с помощью всего одной служебной ячейки тоже можно делать тесты ОЗУ с подпрограммами. И даже совсем без ячеек ОЗУ можно. Тогда составляется таблица адресов возвратов и в одном из регистров подпрограмме передаётся вектор. Все подпрограммы после отработки уходят на п/п-мму @RET, где по вектору из таблицы извлекается адрес возврата. Итого имеем 256 вызовов подпрограмм не имея стека.

    А вообще-то в РК86 применена лобовая идиотическая идея сканирования матрицы. Так делают только тупые профессионалы, всё делающие по учебникам. А любители делают лучше. Вот в СПЕЦИАЛИСТЕ клавиатуру делал любитель. Там нет никаких идиотических диодов. Выкидываем 0 по горизонтали, читаем по вертикали. Затем перепрограммируем ППА и выкидываем 0 по вертикали, а читаем по горизонтали. Из двух байтов получаем адрес в таблице размещения клавиш. Это в 10 раз быстрее и, т.к таблица, легко перемещать и менять коды клавиш, как угодно.

    Цитата Сообщение от jerri
    Читая, что "при изготовлении РАДИО-РК86 мы все сделали просто-просто в 29 корпусов", возникает вопрос "Вы серьезно?" ...определение одновременного нажатия всего одной из всего богатства в 64 кнопки. Назвать РК86 игровым компом это очень громкое и смелое решение. Но блин, бытовой комп должен быть хоть немного игровым. А тут - световое перо (нафиг не нужное), принтер (дома?). А джойстик где? Мышь где?
    Есть доп.ППА. Через него можно подключить любое устройство, не только принтер. Контактный джойстик подключается параллельно курсорным клавишам. Мышь от БК-010 цеплялась к ОРИОНУ через ППА, так что и к РК86 её можно применить (мышь от БК даёт готовый байт сигналов, а не передаёт их по последовательному интефейсу). Мышь от PC подключить в 100 раз сложнее, но ведь её подключили к ОРИОНУ, так что можно заимствовать, Только зачем Вам мышь, если экран текстовый? А световое перо существенно облегчает рисование лабиринтов псевдографикой 128*60.

    Насчёт 29-ти микросхем, это конечно глупость. Надо было 30 микросхем. Во-первых, круглая цифра. А во-вторых 30-я микросхема позволила бы иметь ССИ аппаратно, избавившись от необходимости делать бордюр слева и справа программно. Что позволило бы произвольно менять формат экрана по горизонтали. Например, сделать экран 32*24 и адаптировать программы от ZX80, а также тогда не надо было бы в графическом режиме переносить разбухший экран ниже 7500.

    А если бы микросхем поставили 31-у, то были бы ССИ, КСИ и бордюр - аппаратными, отчего экран бы сократился на треть, увеличилось бы разрешение псевдографики по вертикали, а быстродействие возросло бы на 10%. Можно было бы запрограммировать ВГ75 в любые режимы, с любой матрицей экрана. Хотя число строк сильно сокращать нельзя, иначе нарушится регенерация ОЗУ.

    Интересно, можно ли, имея КСИ, ССИ и бордюр аппаратными, заставить РК86 выводить на VGA?

    Частота строк сейчас 15.625, для VGA надо 31.50 КГЦ. Даже не меняя такт ВГ75, сократив разрешение вдвое до 32*24, мы удвоим частоту строк, а частоту кадров программно поднимем до 70 Гц. Тогда сигнал будет пригоден для VGA монитора.

    Получается, что заменив такт 8 МГЦ на ВГ75 на 16 МГЦ, т.е лишь убрав один каскад деления в счётчике ИЕ4 на плате РК86, можно получить сигнал для монитора VGA. Расход деталей: два TTL-корпуса на формирование ССИ и КСИ.

    Получается, что РК86 это единственный самодельный компьютер пригодный для VGA монитора. Это ценное открытие для тех, у кого РК86 доработан до цвета. Так как у многих фанатов РК86 нет цветного CGA, только монохром. Зато у всех есть цветной VGA.
    Последний раз редактировалось barsik; 12.03.2017 в 21:51.

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

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

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

Похожие темы

  1. Ответов: 210
    Последнее: 26.07.2019, 11:45
  2. Ответов: 6
    Последнее: 07.02.2016, 11:55
  3. Трюки с контроллером FDD 82077
    от Titus в разделе Утилиты
    Ответов: 4
    Последнее: 10.06.2011, 19:17

Ваши права

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