User Tag List

Страница 6 из 6 ПерваяПервая ... 23456
Показано с 51 по 59 из 59

Тема: Разработка нового ПО для Специалиста

  1. #51

    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,375
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    384
    Поблагодарили
    346 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Слава богу, что даже сегодня можно получить 100%-ный код стандартного ПЗУ - дампы были опубликованы в журналах! Достаточно свериться с ними.
    ага, как вспомню набор вручную 8 килобайт кода, да без контрольных сумм... сверяться не намного проще.

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

  2. #52

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    403
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    включить КОИ-8 (GD080, см. МК №4-89 стр 21) - должно заработать
    Да, работает.
    Цитата Сообщение от Serg6845 Посмотреть сообщение
    у себя нашел штук 5 копий этой ПЗУ из разных источников - и везде в этом месте 20 09 03
    Даже если непонятен источник, возможно, действительно стоит в эмуляторе заменить для гарантированной поддержки дополнительных кнопок и обеспечения работоспособности программ, их использовавших.

  3. #53

    Регистрация
    23.10.2012
    Адрес
    г. Красноярск
    Сообщений
    206
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    29 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Теперь по самой теме опроса клавиатуры. Как я понял, сначала нужно загрузить в регистр управления значение $82. Опрашиваем столбец через LDA $ff01. Значение нужно где-то сохранить. Затем, загружаем в регистр управления значение $91, и опрашиваем сначала $ff00 и если оно равно $ff, то загрузить из $ff02 и уже там проверить вторую половину байта. И вот теперь, на основании значений номера строки и столбца, вычисляем значение клавиши. Я правильно понял?

  4. #54

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,651
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Zidane Посмотреть сообщение
    Теперь по самой теме опроса клавиатуры.
    По моему глубокому убеждению, прямое программирование портов это очень плохой подход. Например, при прямом программировании перестанет работать моя раскладка QWERTY/ЙЦУКЕН на реальных оригинальных компьютерах, где я установил соответствующую прошивку и нарадоваться не могу. Опять же существуют всякие контроллеры PC-клавиатуры, которые неизвестно как будут работать с такой программой. Ну ладно ещё курсор с пробелом напрямую опрашивать - они на одной линии и от раскладки не зависят. Но алфавитно-цифровые клавиши я бы опрашивал именно через стандартные подпрограммы ПЗУ. Прямой опрос клавиатуры можно, конечно, сделать, но это не так просто для понимания, да и отожрёт память, которой и так мало.

    Вот пример, как я опрашиваю курсор с пробелом.

    Код:
    ;-------------------------------------------------------------
    ; Опрос клавиатуры на предмет нажатия курсорных клавиш и пробела
    ; Результат в регистре А
    ; A = 0 - не было нажатия
    ; Z = 1 - не было нажатия
    ; Отдельные установленные биты:
    ; 0 - Вниз
    ; 1 - Вверх
    ; 2 - Вправо
    ; 4 - Влево
    ; 5 - Пробел
    keyboard:
        ld    a, 0x91            ; Программируем ППИ КР580ВВ55А
        ld    (0xff03), a        ; Порты A и C - на ввод, порт B - на вывод
        ld    a, 0b11111011
        ld    (0xff01), a        ; Отправляем 0 в строку матрицы с нужными клавишами
        ld    a, (0xff02)        ; Встречаем 0 в левой половине клавиатуры
        cpl
        and     0b00000011
        ld    h, a
        ld    a, (0xff00)        ; Встречаем 0 в правой половине клавиатуры
        cpl
        and    0b00110100
        or    h
        ret
    И всё же я до сих пор не понимаю, что и где не работает в стандартной процедуре ПЗУ? Предлагаю всё-таки сосредоточиться на этом вопросе и решить его:
    1. Скачиваем это прошивку.
    2. Распаковываем и переименовываем в spec_m2.rom
    3. Скачиваем свежую версию Emu80.
    4. Заменяем файл ...\Emu80\spec\spec_m2.rom тем, который распаковали и переименовали. Нужно также убедится, что в конфиге spec.conf правильно указан диапазон ПЗУ (addrSpace.range = &rom, 0xC000, 0xDFFF)
    5. Запускаем эмулятор и выставляем там раскладку "Йцукен".
    После этого будет полное соответствие нанесённым на клавиатуру символам (ждём свежей версии Emu80, там будет фикс для трёх забытых кнопок), будут заглавные и строчные русские и латинские символы, будут работать стандартные подпрограммы ПЗУ, как я показывал.
    Последний раз редактировалось CityAceE; 07.11.2025 в 12:38.
    С уважением, Станислав.

    Этот пользователь поблагодарил CityAceE за это полезное сообщение:

    Zidane(07.11.2025)

  5. #55

    Регистрация
    23.10.2012
    Адрес
    г. Красноярск
    Сообщений
    206
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    29 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE;1220016
    И всё же я до сих пор не понимаю, что и где не работает в стандартной процедуре ПЗУ? Предлагаю всё-таки сосредоточиться на этом вопросе и решить его:
    1. Скачиваем это [URL="https://zx-pk.ru/attachment.php?attachmentid=82930&d=1760027835"
    прошивку[/URL].
    2. Распаковываем и переименовываем в spec_m2_qwerty.rom
    3. Скачиваем свежую версию Emu80.
    4. Заменяем файл ...\Emu80\spec\spec_m2.rom тем, который распаковали и переименовали. Нужно также убедится, что в конфиге spec.conf правильно указан диапазон ПЗУ (addrSpace.range = &rom, 0xC000, 0xDFFF)
    5. Запускаем эмулятор и выставляем там раскладку "Йцукен".
    После этого будет полное соответствие нанесённым на клавиатуру символам (ждём свежей версии Emu80, там будет фикс для трёх забытых кнопок), будут заглавные и строчные русские и латинские символы, будут работать стандартные подпрограммы ПЗУ, как я показывал.
    В общем-то да, тут я согласен, ибо каждый раз придумывать новые костыли - занятие сомнительное. Так может эту исправленную прошивку использовать как стандарт де-факто? Едва ли кто-то предложит что-то новое, софт работает, насколько я понял, да и вообще гламур. Просто хотелось бы чтобы такая прошивка шла в комплекте с эмулятором, а то вот такие приколы... Ну не очень интересные.

  6. #56

    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,375
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    384
    Поблагодарили
    346 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Zidane Посмотреть сообщение
    В общем-то да, тут я согласен, ибо каждый раз придумывать новые костыли - занятие сомнительное. Так может эту исправленную прошивку использовать как стандарт де-факто? Едва ли кто-то предложит что-то новое, софт работает, насколько я понял, да и вообще гламур. Просто хотелось бы чтобы такая прошивка шла в комплекте с эмулятором, а то вот такие приколы... Ну не очень интересные.
    только не надо забывать что в этой прошивке нестандартная кодировка символов в части строчных букв. если вдруг понадобится перетаскивать что-то на другой комп - возможны неожиданности.

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

  7. #57

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,651
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Zidane Посмотреть сообщение
    Так может эту исправленную прошивку использовать как стандарт де-факто?
    Это прошивка отличается от стандартной всего лишь двумя байтами. Плюс есть возможность полностью вернуть родное поведение, сделав сброс с зажатым НР. Так что да, эта прошивка могла бы стать стандартной. Но тут решать @Pyk.

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    только не надо забывать что в этой прошивке нестандартная кодировка символов в части строчных букв.
    Это да, вынужденно было сделано для оставления совместимости со всем наследием. Пришлось идти на компромиссы. Однако поведение предсказуемое и возможно легкое перекодирование как внешними кодировщиками, так и встроенным в пользовательскую программу экспортом.
    Последний раз редактировалось CityAceE; 07.11.2025 в 16:37.
    С уважением, Станислав.

  8. #58

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    403
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    эта прошивка могла бы стать стандартной. Но тут решать @Pyk.
    Склоняюсь все-таки к отдельной конфигурации или к отдельной настройке для основной конфигурации. Подумаю, ближе к релизу...

  9. #59

    Регистрация
    23.10.2012
    Адрес
    г. Красноярск
    Сообщений
    206
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    29 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В общем, после нашего здесь обсуждения, пришел к следующему решению: собрать два набора символов: КОИ7Н2 и ту же КОИ7Н2 с буквами в нижнем регистре. Переключения выполнять следующим образом:
    - РУС/ЛАТ переключает набор символов латиница/кириллица/псевдографика. Номер символа находится в диапазоне от 0 до 255
    - ПВ переключает регистр букв. Если в момент нажатия на клавишу установлен режим вывода псевдографики, включается режим латиницы в верхнем регистре. Но тут возможны обсуждения
    - Конкретный режим ввода символов отображается соответствующей буквой курсора L/R/G/l/r тут думаю все понятно.
    - Псевдографика расположена вместо цифр и специальных символов во второй таблице символов (с буквами в нижнем регистре). Коды от $20 до $3a включительно обрабатываются как есть, пока включен любой курсор, кроме G. Если G, то принимаются только коды из этого диапазона, а подставляются коды символов псевдографики.
    - Длина строки до 48 символов. Пока что. Просто потому что такой подход сильно упрощает обработку и отображение строки.

    Как будет готов такой редактор строки, как по мне, можно уже приступать к полноценной разработке редактора.

Страница 6 из 6 ПерваяПервая ... 23456

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

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

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

Похожие темы

  1. Ответов: 73
    Последнее: 18.07.2025, 08:42
  2. Разработка платы FPGA Специалиста
    от CityAceE в разделе Специалист
    Ответов: 22
    Последнее: 03.07.2025, 07:06
  3. Ответов: 153
    Последнее: 16.12.2021, 19:07
  4. Разработка НОВОГО клона
    от MegaMyth в разделе Несортированное железо
    Ответов: 311
    Последнее: 01.08.2008, 21:52

Ваши права

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