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

User Tag List

Страница 85 из 136 ПерваяПервая ... 818283848586878889 ... ПоследняяПоследняя
Показано с 841 по 850 из 1351

Тема: Орион-128: Разное

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

    По умолчанию

    Странслировал M1 Z80 версии 1.07 для РК-клавиатуры. Код оптимизировать дальше невозможно, это предельная версия (и для сжатия фонта использован самый эффективный алгоритм).

    После оптимизации кода, удалось выиграть ~150 ячеек. Эти ячейки были потрачены на:

    - исключена директива R. ORDOS автоматически грузится по сбросу
    - чтобы блокировать загрузку ORDOS держите клавишу <CC> при нажатии на сброс
    - исправлен алгоритм ввода п/п-ммы F803 (теперь срабатывает по нажатию)
    - оптимизирована п/п-мма F81B (работает быстрее и меньше байтов)
    - заменена неудобная процедуры ввода команд (использован CCP из М3)
    - заменена процедура вывода символов (выводится 9 линий знакоместа)
    - заменена подпрограмма FLASH (курсор большой)
    - введена индикация включённого регистра клавиатуры формой курсора
    - введена индикация регистра клавиатуры высотой тона подзвучки
    - полностью заменена директива 'M' на упрощенную директиву 'M' монитора-3
    - полностью заменена директива 'D' на упрощенную директиву 'D' монитора-3
    - введена подпрограмма BEEP F83F (и константа CBEEP F3E7 влияет на частоту)
    - убран вектор подпрограммы CONOUT (это незачем, если CONIN не векторизована)
    - введён вектор подпрограммы BEEP F83F, точно также как это в М2
    - убрана п/п-мма CLICK и теперь подзвучка клавиатуры использует BEEP

    Проверил только в эмуляторе, где невозможно проверить МГ-подпрограммы и звуки. По-прежнему не получил сведений о проверке ранее выложенных версий в реале. Просьба ко всем, кто имеет Z80 и прошиватель ПЗУ РФ2, проверить эту и другие версии. Интересует правильность звуков и работа МГ-подпрограмм. Помните, что с М1 работает только NC$ и NC4$ из 1991 года. VC$ 1994 года с М1 успешно глюкается. Прилагаю какой-то NC$ (у них версии не обозначены), который нормально работает с М1.

    Теперь займусь оптимизацией версии для КР580. Это мне важно потому, что часть кода одновременно будет использована для ПЗУ другого компьютера на КР580 с экраном 256*256. Позже "расковыряю" и оптимизирую и версию М2-РК для КР580.

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

    Вложение с дампами ПЗУ удалено, как устаревшее. Ищи в последующих постах
    Вложения Вложения
    • Тип файла: rar NC$.rar (2.4 Кб, Просмотров: 79)
    Последний раз редактировалось barsik; 29.04.2017 в 20:54.

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

  3. #842
    Activist Аватар для Stampmaker
    Регистрация
    08.02.2015
    Адрес
    г. Санкт-Петербург
    Сообщений
    240
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tol123 Посмотреть сообщение
    Ну тогда ждемс!

    будем пока без ay.

    очень советую собрать этот хороший и полезный девайс.
    а AY в нём появится нескоро, очень нескоро, если вообще появится.
    только учтите, что РАМ7 поддержан только в DSDOS.

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

    По умолчанию

    Ну вот наконец и версии ПЗУ М1 для КР580. Для КР580 оптимизировать чужой код на порядок тяжелее, и это удалось с трудом. Выкладываю версию для РК-клавиатуры и версию для MS-клавиатуры. Они разные (по перечню улучшений, что в каждую удалось уместить).

    Версия 1.20 для РК-клавиатуры и КР580. Это первая и, скорее всего, последняя версия для КР580 и РК-клавиатуры. Код оптимизирован до физического предела (25 часов оптимизации). Для сжатия фонта использован самый эффективный алгоритм (для КР580, для Z80 есть и лучше), но из-за этого фонт другой (тот что использую сам). Номер версии сразу 1.20, чтобы оставить номера для последующих версий на Z80, которые начались с 1.01, причём для РК и MS клавиатур нумерация своя (т.е версии 1.XY-MS и 1.XY-RK, это совершенно непохожие версии, сделанные в разное время и не имеющие ничего общего).

    За счёт оптимизации кода КР580 удалось сделать следующее:

    - исключена директива R. Теперь ORDOS автоматически грузится по сбросу
    - чтобы блокировать загрузку ORDOS, держите клавишу <CC> при нажатии на сброс
    - исправлен алгоритм ввода п/п-ммы F803 (теперь срабатывает по нажатию)
    - оптимизирована п/п-мма F81B (работает быстрее и меньше байтов)
    - теперь доступен для ввода символ подчёркивания (<СС> + пробел)
    - заменена неудобная процедуры ввода команд (использован CCP из М3)
    - заменена подпрограмма FLASH (курсор большой)
    - введена индикация включённого регистра клавиатуры формой курсора
    - полностью заменена директива 'M' на упрощенную директиву 'M' монитора-3
    - полностью заменена директива 'D' на упрощенную директиву 'D' монитора-3
    - введена подпрограмма F83F (чтобы был хоть какой-то звук, использован CLICK)
    - убран вектор подпрограммы CONOUT (это незачем, если CONIN не векторизована)
    - убран вектор пустой и совершенно бесполезной подпрограммы F821
    - удалена подпрограмма SVBYTE, зато её вход векторизован, также как в М2
    - директива 'O' сохранена, но работает только после загрузки драйвера SVBYTE
    - в качестве драйвера SVBYTE годятся старые драйвера SVBYTE 1992 года
    - удалена директива 'C', этот ROM-BIOS рабочий (а не для отладки цвета)
    - как ненужные удалены директивы 'R' и 'Z'

    Версия 1.00/MS-7007 для КР580. Нумерация с 1.00, т.к других версий М1 для MS-клавиатур я не встречал. Всё-же удалось уместить весь фонт в ПЗУ, оверлейность или удаление п/п SVBYTE не потребовалась. Это достигнуто тем, что директивы D и M оставлены примитивными, как в оригинале, а также выкинута директива C, которая низачем не нужна. В данной версии ORDOS автоматически не грузится, это пока оставлено как в оригинале, для запуска ORDOS надо исполнить директиву R. Скоро странслирую версию 1.01-MS КР580 с автозагрузкой ORDOS, так что ещё одна версия точно будет.

    - исправлен алгоритм ввода п/п-ммы F803 (теперь срабатывает по нажатию)
    - п/п-мма F81B работает быстрее (т.к сам драйвер MS из РАДИО 12.1991 быстрее)
    - заменена подпрограмма FLASH (курсор большой)
    - введена индикация включённого регистра клавиатуры формой курсора
    - введена подпрограмма F83F (чтобы был хоть какой-то звук, использован CLICK)
    - убран вектор подпрограммы CONOUT (это незачем, если CONIN не векторизована)
    - убран вектор пустой и бесполезной подпрограммы F821
    - удалена директива 'C', этот ROM-BIOS рабочий (а не для отладки цвета)
    - как ненужная удалена директива 'Z' (т.к уже программы 1991 портят CCP ORDOS)
    - а если всё-же нужен рестарт ORDOS без загрузки, не проблема ввести G BFFD <ВК>

    Подробнее об этих 2-х ПЗУ читайте в сопроводительных файлах.

    Кроме того, т.к было "отковыряно" еще более 20 ячеек, то перетранслированы и все версии для Z80 (правда в основном эти байты истрачены на вывод номера версии в титре, титр ПЗУ в ORDOS не виден, надо держать <СС> при сбросе). Номера версий не менялись, потому просьба удалить все предыдушие версии, чтобы избежать путаницы. Кроме того, чуть изменено ПЗУ М3 V3.13-MS из 1992 (увеличена константа автоповтора).

    Дизассемблировал NC$. Т.к тот дизассемблированный исходник, что "болтается" в архивных дистрибутивах вообще никуда не годится (то же самое можно увидеть и в любом отладчике). Вообще с помощью дизассемблера МИКРОН очень трудно дизассемблировать программы с самомодификацией кода, а данная программа NC$ просто "бъёт все рекорды" по само-модифицируемости (модификация кода считается извращённым стилем программирования и не поощряется, среди фирменных программ это не встречается, но для нас это вполне оправдано, т.к экономит код).

    Исходник нужен, чтобы увидеть, как выполняется опрос клавиш. Нет никакой задержки, поэтому если в ROM-BIOS использована более грамотная подпрограмма опроса клавиатуры F81B, в которой этот опрос выполняется в 2-3 раза быстрее, то ввод становится "очень нервным". Чем быстрее опрос клавиш, тем больше времени остаётся в играх на движение спрайтов и музыку. Также и в текстовых программах это ускоряет вывод текста (т.к профессиональные текстовые программы и во время вывода непрерывно проверяют клавиатуру). Поэтому быстрый опрос клавиатуры важен.

    Самый быстрый (почти мгновенный) опрос клавиш получается при аппаратной клавиатуре, где CPU остаётся только забирать готовый ASCII-код. А т.к в ОРИОНЕ предусмотрена загрузка драйвера любой клавиатуры, то ориентация на тормознутость одного конкретного ПЗУ - это ошибка.

    Теперь есть возможность оптимизировать NC$ и сделать так, чтобы можно было пользоваться не только при любом ПЗУ, но даже и при аппаратной клавиатуре.

    Ни одна из версий ПЗУ не проверена в реале (у меня нет возможности прошивать, точнее чистить, ПЗУ), да и нет, ни MS-7007 клавиатуры, ни адаптера магнитофона, ни самого магнитофона. В проверке прежде всего нуждаются звуки и ввод с магнитофона.

    PS: Если кому-то нужна директива 'C', которая бесполезная, т.к не делает ничего, кроме как заполнения плоскости цвета заданным кодом (раскрашивает экран), то могу странслировать эти 10 байтов в виде ORDOS-программы (будет как бы внешняя команда ДОС, во многих ДОС команды внешние, например, в RK-DOS большая часть команд - внешние).
    Вложения Вложения
    Последний раз редактировалось barsik; 29.04.2017 в 18:11.

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

    По умолчанию

    Сделал версию М1 КР580 и для MS-клавиатуры (на это ушло всего 3 часа). Причём удалось обойтись, как без загрузки оверлеев из ROM-диска, так и без переноса в драйвер подпрограммы SVBYTE. Чтобы сократить число вложений, просто перевложил файл вложения в предыдущем посте, соответственно отредактировав текст.

    По-прежнему нужна проверка в реале. Ну или хотя бы на разных эмуляторах, где есть MS-клавиатура, вывод звуков и работает МГ-ввод из WAV-файлов. Если на каком-то эмуляторе не работает, то скорее всего там не эмулирована команда CP (HL) попадающая в ППА (на моём эмуляторе тоже так было вначале, пока я не понял в чём дело).

    Могу в базовый М1 для РК-клавиатуры (т.е без улучшений п/п-рамм) встроить в директиву I автонастройку на скорость МГ-ленты, а также директиву R - ввод в формате ORDOS (тогда не нужен будет CH4$). Могу то же самое сделать и для М2, т.е встроить в него автонастройку на скорость.

    Есть также возможность сделать 2-х ПЗУ-шечный ROM-BIOS ОРИОНА (на КР580). Суть в том, чтобы как на СПЕЦИАЛИСТЕ получить резидентный драйвер шрифта 8*8. С М3 это тяжело, т.к там нет свободных ячеек, а М2 я немного уже "уплющил" и получил ~230 свободных ячеек !!! (на Z80 будет ещё больше). С учетом установки вторым этажом второй ПЗУ РФ2, этого хватит на цветной (но не оконный) драйвер 8*8.

    Можно истратить эти ячейкии иначе. Например, можно встроить драйвер связи с IBM PC по проводной линии (как чере ВВ51, так и без неё, если IBM PC имеет параллельный порт принтера). Суть в том, чтобы п/п-ммы LDBYTE и SVBYTE работали бы не с МГ-лентой, а с проводной линией. Тогда все древние МГ-программы будут работать также, только скорость обмена (с линией вместо магнитофона) будет в 5-15 раз выше.
    Последний раз редактировалось barsik; 29.04.2017 в 19:57.

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

    По умолчанию

    Сегодня день мониторов ОРИОНА для КР580. Исправил МОНИТОР-2. При этом за счёт более эффективного программирования одновременно освободил в нём 282 ячейки при полном сохранении функционала.

    Также сделал М2 для MS-7007. Это то же самое, что и вариант М2 Дм.Тупицына из 1992, но с другими драйверами клавиатуры и экрана. Здесь свободно только 178 ячеек так как MS-драйвер на 104 байта длиннее.

    Есть у кого-нибудь более эффективный алгоритм компрессии фонта ? Есть три моих алгоритма, но самый эффективный алгоритм требует Z80. Может этим кто-нибудь занимался. Жалко если не удастся довести число свободных ячеек до 300 (это можно сделать ухудшив качество, но не хотелось бы).

    Попробуйте новые версии М2. Поставьте сначала старый М2 и повводите в ORDOS-е или в редакторе символы. Затем поставьте этот М2 и сравните удобство ввода текста.

    Заодно разобрался в отличиях М1 и М2. Теперь могу сделать так, чтобы VC$ и другие ORDOS-программы работали с Монитором-1. Да, так и не дождался того, что кто-нибудь выложит МОНИТОР-4. Если бы его выложили, то я бы уже сегодня "заковырял" бы и его.

    Разобрался как вводит с МГ-ленты МОНИТОР-2. Это сделано не в соответствии с РК86 и даже просто некорректно. А именно нет синхронизации по второму синхробайту, что идёт после двух ИЛИ ТРЁХ нулевых байтов перед КС. Число нулевых байтов и пауза между блоком и КС может быть любой. Кстати, с поиском синхробайта п/п-мма даже короче (экономится 6 байтов). М2 сразу после конца блока вводит и просто пропускает 3 байта (2 нулевых байта и байт E6). Таким образом не только не проверяется, что это пилотон (т.е два именно нулевых байта), но и байт E6 вообще не проверяется (нет поиска синхробайта, как на всех РК-клонах и МИКРО-80). Все 3 байта игнорируются и значение имеют только два последующих байта КС.

    Это неправильно, т.к недопускает никакой паузы между блоком данных и блоком контрольной суммы. В РК86 и МИКРО-80 может выводиться 1 и более нулевых байтов перед синхробайтом и КС. А в ОРИОНЕ только 2, причем это могут быть даже не нулевые байты, а любые. И синхробайт не влияет и может быть любой. Таким образом ОРИОН может вводить любую чушь, лишь бы КС в нужном месте совпала. Но на других ЭВМ с РК-форматом это не так. Так же читается и формат ORDOS (т.к это стандартная п/п-мма LD_MAS ввод массива).

    Вообще в МГ-подпрограммах М2 с удивлением нашёл ~30 NOP-ов непонятного назначения (в М1 NOP-ов не было). Возможно это была попытка добиться того, чтобы константа ввода точно соответствовала РК86. В М3 никаких NOP-ов нет, подпрограммы вдвое короче, а надёжность выше.

    С удивлением узнал, что подпрограммы LDBYTE и SVBYTE в М2 вообще не векторизованы. Векторизация введена только в М3. Ещё один минус для М2. Т.е М2 не годится для загрузки драйвера проводной линии, т.е замены МГ-подпрограмм на аналоги, не использующие магнитофона. Когда-то я загрузив драйвер, так обменивался со СПЕЦИАЛИСТОМ и СИНКЛЕР-ом со скоростью 8 кб в секунду (что даже не снилось ВВ51).

    Возможно используя полученный листинг сделаю настоящий М2, т.е ПЗУ с которым уже можно будет работать в CP/M, если конечно мне кто-нибудь сообщит какие коды VT52 надо в это ПЗУ встроить. Если выкинуть МГ-подпрограммы, то в этом ПЗУ будет свободно ~350 ячеек.

    Т.к "обнаружил" в ПЗУ М1 еще 10 свободных ячеек, то все выложеные ранее версии М1 для Z80 и КР580 придётся перетранслировать (просьба удалить все ранее выложенные версии ПЗУ). Глупо не использовать все свободные ячейки.

    Подскажите кто-нибудь, как избавляться от VC$. Если я его запускаю, то потом мне никак не удаётся от него отделаться. Выход не помогает, а кнопка СБРОС разрушает ОЗУ и пользоваться ей не рекомендуется. Поэтому клавиатурное прерывание М3 по УС+СС+С, что делает JMP F800, очень выручало. Но в М2 этого нет, и я как без рук. В NC$ для запрета автовозврата достаточно было удалить файл автостартёра EXT$. Но здесь он невидимый и потому я не знаю как его удалить.

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

    Добавил М3 MS-7007 для КР580. Процессор Z80 позволяет эффективно сокращать объём программы для КР580, поэтому при Z80 нет проблем разместить на 104 байта более крупный MS-драйвер в коде М3. Однако при КР580 это представляет существенную трудность, т.к М3.1-РК КР580 уже изначально написан весьма грамотно. Отчего в нём невозможно освободить даже несколько байтов, а сжать код на 104 байта - это просто непосильная задача. Однако и это мне удалось сделать. Вот версия М3 КР580 для MS-7007.

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

    Добавил М3 КР580 V3.151. По сравнению с версией 3.150 сохранена п/п SVBYTE и звук сделан по EI/DI (ранее ошибочно звук был оставлен по OUT FF, как для Z80) .
    Вложения Вложения
    Последний раз редактировалось barsik; 01.05.2017 в 08:44.

  7. #846
    Activist Аватар для ABRAMKA0
    Регистрация
    16.10.2015
    Адрес
    г. Нытва
    Сообщений
    277
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Да, так и не дождался того, что кто-нибудь выложит МОНИТОР-4. Если бы его выложили, то я бы уже сегодня "заковырял" бы и его.
    Ловите,Владимир Иванович.Я уж и не помню,где я его нарыл,записан в РФ5 еще в 2002 году,но не помню как он работал.А вот с мониторами 1-2-3 помню в ОРДОСЕ проблем не было.m4.10.txt
    P.S. для того,чтобы вставить файл в сообщение,я его переименовал в .txt,перед использованием замените расширение файла на .bin
    P.S.S А все же,Владимир Иванович,вы не любите ОРДОС "как люблю ее я",а пытаетесь NC для неё переделать?Ну честно,почему?

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

    Thumbs up

    Это не МОНИТОР-4. Это монитор-3 версий 3.0 или 3.1, т.е ещё КР580, кем-то переделанный, а точнее изуродованный. Он может работать как монитор-2, но как М3 уже работать не может, изуродован, не может вводить HEX-числа. Но команды G и I сохранены. Дизассемблировал за 15 минут, знакомый код, расставил имена, как у меня в исходниках, чтобы легко ориентироваться, и стал искать что добавлено.

    Нашёл в коде загрузчик дисковода с адресацией ОРИОСОФТ (F710). Надо бы проверить в реале, а проще в эмуляторе B2M, т.к он поддерживает НГМД. В МОНИТОР-4 должны быть вместо МГ-подпрограмм дисководные подпрограммы. Может быть это какая-то ранняя версия М4. Ничего концептуально нового, обычный ROM-BIOS на базе М3 с загрузчиком дисковода и загрузкой ORDOS. Добавлена новая стандартная подпрограмма в конец таблички входов на F842. Там всего 4 команды:
    Код:
    	DI
    	OUT	(F9),A
    	LD	(F3D5),A
    	RET
    Изменения делал человек незнакомый с ROM-BIOS-ами. Ячейка F3D5 это важная ячейка - относящаяся к параметрам окна. А её используют для хранения номера банки. Сдвинут вход WARM BOOT F86C, даже стандартный вход в CCP F8B6 не сохранён. Не говоря уже о внутренних точках М3. В общем это не может называться М4. Это не новая разработка, это компоновка из чужих кусков. И это делается за 10 минут.

    Понятно почему взят М3. Ведь в нём код п/п-рамм оптимизирован и соответственно, если выкинуть сам монитор, то места хватает и для собственных дополнений. Позднее я закончу дизассемблирование этого М4. Только для того чтобы узнать, что значит строка "R/F/H ?", что выводится если отключить ROM-диск. Вообще-то, если нет ДОК-файла, это однозначно свидетельствует о несерьёзности автора.

    NC$ я дизассемблировал, чтобы посмотреть и возможно переделаю его в NC4. VC$ не работает с магнитофоном, потому он и не интересен. А NC$ уже весной 1991 один человек (в Ленинграде) переделал так, чтобы работало на 4 банки, причём это был файл 4К, содержащий в себе и модификацию ORDOS 2.0, чтобы она работала на 4 банки (для этого надо НЕ много изменений). В 1991 этот файл грузился с МГ, т.е CCP вообще не было. Но этого хватало, т.к CCP ORDOS малофункционально и NC его вполне заменяет. Т.к этого NC$ на 4 банки не сохранилось, то раз уж дизассемблировал, то не сложно переделать. Может у кого-то сохранился такой NC$ на 4 банки? Он был широко распространён до появления VC$, который появился года на полтора позднее. В каталогах торговцев программами это видно.

    А вообще-то было же несколько ORDOS-нортонов (кроме авторского). Это даже не считая нортона А.Вакуленко и нортонов В.Воронина. Где они все выложены? Ради интереса хочу написать свой нортон для ORDOS. Даже два. Один без драйвера, а второй с оконным драйвером. Для этого много труда не надо, т.к подпрограммы есть, а "глюкало" писать не понадобится, это делает оконный драйвер.

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

    Добавил в свой предыдущий пост вложение M3.151 для КР580 (с трудом удалось уместить SVBYTE, исправлен звук, он в версии 3.150 ошибочно оставался ещё для Z80), а также те экстенты М3, что работают при КР580.
    Последний раз редактировалось barsik; 01.05.2017 в 00:13.

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

    По умолчанию

    Выиграл ещё 16 байтов за счёт уплотнения фонта. Теперь в МОНИТОРЕ-2 у меня уже есть 298 свободных ячеек и не хватает всего 2-х байтов до круглой цифры. В эти 300 байтов можно вставить много чего. 16-ти байтов хватает, чтобы вернуть титры в выложенные ранее ПЗУ M3 КР580 (М3.13.5-MS и 3.151-РК). В ближайшее время их перетранслирую.

    Имея 300 (а при Z80 и более) байтов для расширения возможности ROM-BIOS, могу сделать универсальный ROM-BIOS ОРИОНА. В котором будут драйверы трех типов клавиатур. Базовой, с матрицей РК86, альтернативной, с матрицей MS-7007, а также аппаратной промышленной (типа КОНСУЛ, 15ВВВ-97, клавиатуры ИРИШИ, и от АГАТА/Apple-II). Также можно сделать ПЗУ поддерживающее две клавиатуры: обычную от РК86 и IBM-клавиатуру подключенную по способу IBM PC (т.е через его же контроллер 4042).

    К сожалению, игры нагло напрямую лезут сквозь ППА в матрицу кнопок, поэтому с аппаратными клавиатурами они не работают. Но системные программы, не использующие наглого влезания в ППА клавиатуры, с аппаратной клавиатурой всё-же использовать можно. Хотя в большинстве моих драйверов для подмены кодов курсорных клавиш программа, получив код курсорной клавиши, читает ППА клавиатуры, чтобы узнать получен код с клавишей CONTROL или без неё, что даёт информацию о том, надо ли подменять нестандартные коды курсорных клавиш ОРИОНА на коды курсорных клавиш принятые в CP/M. Но свои драйверы, я легко исправлю, чтобы работали и с аппаратной клавиатурой, в которой есть сигнал CONTROL (сигнализирующий о том, что клавиша нажата). Такой сигнал легко вывести из любой аппаратной клавиатуры.

    Чтобы при аппаратной клавиатуре работали игры, теоретически, есть возможность использовать идею прерывания, используемую в DEC-машинах. Там мощные DEC-процессоры имеют расширенную систему команд (что-то типа FPU поддержки расширенной арифметики). Но, как ни странно, программы рассчитанные на эти процессоры могут работать и на самых древних процессорах. Это достигается, тем, что встретив "неродную" команду, процессор выполняет стандартное прерывание TRAP, по которому вылетает в загруженный программный эмулятор расширенной системы команд. Таким образом новая программа работает, хотя и медленно, т.к программная эмуляция тормозит. Если бы разработчики КР580 догадались ввести переход на FFFD при "встрече" неверного кода команды (12 недокументированных команд КР580), то программы Z80 работали бы и на КР580.

    Если ввести в ОРИОН аппаратное прерывание (при КР580, оно увы, м.быть только на 38H, или же требуется куча трудов по установке контроллера прерываний), то при попытке процессора залезть в ППА клавиатуры, будет происходить прерывание, в котором эмулируется поведение матрицы клавиш. Это довольно сложная процедура и она займет все 300 свободных байт (если вообще уместится).

    Возможно использовать эти ячейки и иначе. ~300 байтов хватит, что ввести в М2, например, поддержку ВИ53, по типу ИРИШИ - музыкальный язык. При этом для вывода музыки, на консоль выкидывается строка с искейп-кодом, после которого все последующие байты интерпретируются не как символы для терминала, а как команды вывода нот в разных каналах ВИ53. В ИРИШЕ используют только один канал, т.е одноголосие. Да и то сделано с ошибкой, так что практической пользы от этого нет, даже простейшую мелодию не сделать (но попищать и произвести какафонию можно).

    Но чтобы получить трехголосную музыку, надо иметь в звуке атаку и затухание, т.е необходима регулировка громкости звука по каналам. Хотя бы по одному каналу для основной мелодии. Когда-то я пробовал использовать для регулировки громкости ИД14 (это 2 дешифратора в одном корпусе). Тогда на адреса подаётся вес уровня громкости, на чип-селект сигнал, а на выходы ИД14 подключены резисторы, так что образуется делитель, что даёт 4 градации уровня громкости для двух каналов. Расход деталей для регулировки громкостей всего 1 корпус, но при этом плохо, что выходной сигнал не синусоида, и к тому же с несбалансированным средним уровнем.

    Средний уровень 0 получается с операционником. Операционник включён как повторитель так, что при 1 на входе он инвертирует, т.е по 1 даёт минус входного сигнала, а при 0 не инвертирует и даёт плюс входного сигнала. Так что получается из 1 выходит положительная полуволна, а из нулей отрицательная полуволна (относительно земли), отчего средний уровень сигнала нулевой. Т.о сдвоенный операционник позволяют на ВИ53 производить классическую музыку. Расход деталей в 2 корпуса вполне оправдан (даёт 2 канала с регулировкой громкости). Чтобы получить лучший тембр, нужен КМОП аналоговый мультиплексор, который коротит сигнал на землю разными емкостями. С резистором (лучше дросселем) образуется частотный фильтр. Для каждого диапазона частот включается своя ёмкость. Благодаря чему на выходе не меандр, а почти синусоида. Т.о всего за счёт расхода 3-х корпусов, качество трехголосной музыки резко возрастает.

    Есть возможность ввести в М2 КОИ-8. Тогда в ПЗУ несжатыми размещаются маленькие русские буквы (что знимают всего 256 байт) и немного изменяется драйвер.
    Последний раз редактировалось barsik; 03.05.2017 в 20:26.

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

    По умолчанию

    Выкладываю обновлённые версии ПЗУ М1, М2, М3 для КР580 для всех клавиатур с максимальным числом свободных ячеек. Они очень нуждаются в проверке (особенно версии для MS). Все выложенные ранее версии КР580 имеют недостатки и их следует удалить.

    М2 для КР580 в данной выкладке имеет 297 свободных ячеек. Мне удалось достичь и 305 свободных ячеек. Однако при этом изображение самого символа оказывается центрованным, как в М3. А в М2 символ придвинут кверху знакоместа и на это ориентируется VC$, рисуя горизонтальные линии не по центру знакоместа. Поэтому, чтобы всё было как в оригинале М2 пришлось потратить ячейки.

    Пока отлаживал MS-мониторы в эмуляторе, рассчитанном на РК-клавиатуру, придумал как с ПЗУ рассчитанном на MS-клавиатуру, пользоваться клавиатурой от РК. Для этого первоначально составил таблицу соответствия клавиш РК клавиатуры клавишам MS-клавиатуры. Эта же таблица позволяет играть в игры, где прямой программный опрос MS-матрицы (если такие игры есть). Но для владельцев MS полезно составить обратную программу, чтобы играть в игры для РК-клавиатуры на MS-клавиатуре.

    А потом для удобства векторизовал F81B (как сделано в М3 для Z80) и написал драйвер EXT$, который подменяет одни коды другими и в ORDOS грузится автоматически. Таким образом кое-как получил возможность пользоваться программами при ПЗУ для MS. По крайней мере запускать программы можно. К сожалению, в матрице MS-7007 больше линий и число кнопок больше, чем 64. Поэтому коды некоторых клавиш никак не ввести (можно сделать, чтобы, по крайней мере, можно было вводить все буквы, заменив некоторые редко используемые символы, типа '% * / ^ ~' на недоступные буквы).

    Привожу список соответствия клавиш. Слева - то, что хотелось бы ввести, а справа - на что надо нажать. Как видите, не все коды нужных клавиш можно ввести, имея ROM-BIOS для MS, а клавиатуру для РК. Но пользоваться всеми программами, кроме текстовых редакторов, этого хватает. Список, возможно, не полный и даже, возможно, неточный (т.к не из реала). Во вложении программка позволяющую узнать коды. Она ещё понадобится при подключении корветовской клавиатуры вместо MS-7007. Для выхода удерживайте 5 секунд любую клавишу.

    Код:
    .
    Соответствие клавиш с ROM-BIOS для MS-клавиатуры при матрице РК86
    
    A...D	     M           Y...B        F1...CTP,ВК     !...2
    B...@	     N...-       Z...Y        F2...F2         =...F4
    C..."	     O...F       [...0        F3...влево      "...3
    D...9	     P           ]...1        F4...вверх      :...F5
    E...7	     Q           ^...I        F5...вправо     %...5
    F   	     R...E       ПС...F2      вниз...F2,U     $...вниз
    G...>	     S...K       HOME..|      вверх...]       #...4
    H...X	     T...M       CTP...)      вправ...W       &...6
    H..влево     U...+,:     забой..T     влево..H        )...CTP
    I...G	     V...Q       4...R        пробел...O      /...F3
    K...<	     W           5...Z        ВК...пробел     >...W
    L...8	     X...N       6...ESC      R/L...R/L
    			
    Символы, что не ввести: . , _ 0 1 2 3 7 8 9 + - * ? F M P Q W
    Последний раз редактировалось barsik; 03.05.2017 в 16:45.

  11. #850
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да уж, раскладки символов на матрицу и близко не похожие.
    Меня всегда интересовало: при том что печатное поле пишмашки на всех клавиатурах одинаковое, с чем глубокий смысл в каждом клоне каждый раз рассыпАть символы по матрице как Киса "Сеятель" Воробьянинов ассигнации на базаре - случайным образом (ну как минимум - неочевидным). Чтобы потом дважды героически преодолевать трудности: один раз разводя печатку/пленку для кнопок и второй раз перекодируя ни к чему топологически не привязанные сканкоды в символы?
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

Страница 85 из 136 ПерваяПервая ... 818283848586878889 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Специалист: Разное
    от Splinter в разделе Специалист
    Ответов: 171
    Последнее: 09.05.2018, 07:50
  2. Видео про спекрум новое разное
    от AAA в разделе Новости
    Ответов: 19
    Последнее: 05.08.2016, 22:57
  3. Куплю Поиск, Радио - 86, Орион, БК
    от luzanov в разделе Барахолка (архив)
    Ответов: 23
    Последнее: 03.04.2007, 17:50
  4. Ответов: 4
    Последнее: 05.10.2006, 20:18
  5. Я готов купить Радио и Орион
    от Shaos в разделе Барахолка (архив)
    Ответов: 7
    Последнее: 18.12.2005, 22:15

Метки этой темы

Ваши права

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