User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 59

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

Комбинированный просмотр

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

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

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

    В общем-то на данную тему меня навел CityAce. Суть сабжа - новое ПО для Специалиста если и выйдет, то неизвестно как и когда. Отсюда простой и логичный вывод - нужно писать самому. И первоочередное, что требуется, это редакторы BASIC и ассемблера, с вменяемым видеорежимом. С чего начинается редактор? С рабочей области? Неа - с парсера строки. То есть с блока, который разбирает строку на части, анализирует, "ху из ху" и заносит все эти компоненты по нужным адресам. И вот чой-то я понять не могу, и даже представить, как такое на ассемблере написать.
    Нет, в общих чертах все ясно - вызвать подпрограмму опроса клавиатуры, считать букву, занести в буфер. И так по цикла, до нажатия Enter. Длина буфера - 128 байт (ну к примеру) Опять же нужен анализатор кода. Может у кого есть готовые наработки или честно позаимствованные чужие идеи, хотя бы для ознакомления, желательно с кодом?
    Вообще в первую очередь хочется сделать интерпретатор BASIC, на основе такового от ZX Spectrum - компьютер сразу разживется весьма приличным количеством литературы, хотя к нему и не относящейся, но которую можно использовать. Это раз.
    А второе, как-то меня спросили: а есть ли какой простенький компилятор Си под это железо. То есть, интерес у людей есть - нет приемлемых средств разработки. Кстати в другой ветке под моими роликами кто-то заикался про RUST, что ли...
    Но все это начинается с парсера строк. Так что идеи и готовые решения приветствуются

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от Zidane Посмотреть сообщение
    С чего начинается редактор? С рабочей области? Неа - с парсера строки. То есть с блока, который разбирает строку на части, анализирует, "ху из ху" и заносит все эти компоненты по нужным адресам. И вот чой-то я понять не могу, и даже представить, как такое на ассемблере написать. Нет, в общих чертах все ясно - вызвать подпрограмму опроса клавиатуры, считать букву, занести в буфер. И так по цикла, до нажатия Enter. Длина буфера - 128 байт (ну к примеру)
    для этого в мониторе есть стандартная подпрограмма, 0xc80f

    Опять же нужен анализатор кода. Может у кого есть готовые наработки или честно позаимствованные чужие идеи, хотя бы для ознакомления, желательно с кодом?
    очень примитивный парсер есть в том же мониторе, готового кода под рукой нет, Ghidra в зубы и ковырять... там все несложно.
    парсер посложнее - например в SDOS, есть исходники
    https://zx-pk.ru/threads/29892-sd-ka...=1#post1205312
    смотреть dos_rk.asm, вокруг метки CMDLIST


    А второе, как-то меня спросили: а есть ли какой простенький компилятор Си под это железо.
    есть
    https://github.com/alemorf/c8080

    этот я пока не пробовал.

    https://github.com/alemorf/retro_com.../sd_controller

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

    Зверинецъ

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

  4. #3

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

    По умолчанию

    В общем, к вопросу об ассемблере. Нашел. Жаль только консольный, но и то хорошо. Что имеем: сам ассемблер, который ассемблирует кучу разных ассемблеров. Для каждого свой файл. Для процессоров сесейства Z80 (к которому автор также относит I8080) нужен файл vasmz80_oldstyle.exe - переваривает мнемоники Z80 и I8080. Можно указать набор мнемоник -8080 (набор для I8080, без этого параметра, как я понял - Z80). Чтобы работал с именами мнемоник I8080 - параметр -intel-syntax, а чтобы на выходе давал файл с 16-ричными кодами, добавляем параметр -Fbin
    по итогу строка для ассемблирования файла, набранного в Notepad++ в мнемониках I8080 выглядит следующим образом, при условии, что файл ассемблера находится в одной папке с целевым файлом:
    vasmz80_oldstyle.exe test.asm -8080 -intel-syntax -Fbin
    На выходе получаем файл a.out. Всегда и я не уверен, можно ли изменить параметр. Сильно не вчитывался. У этого самого файла, a.out, меняем расширение на a.obj, и пользуемся утилиткой, которую я взял на этом же форуме. Она добавляет заголовок к файлу и расширение *.rks, после чего файл уже можно использовать в эмуляторе. Мнемоники Z80 не проверял, но должно работать.
    Ресурсы:
    Страничка ассемблера: http://sun.hasenbraten.de/vasm/
    Ссылки для скачивания: http://www.compilers.de/vasm.html
    Ассемблер vasm и утилита obj2rks в одном файле: https://disk.yandex.ru/d/kV4yvaSSPURghw

    Был бы весьма признателен, если бы кто-то смог упаковать это в одну программу, желательно с GUI. Но даже так, инструмент крайне интересный и заслуживающий пристального внимания. Есть еще такая штука как WLA DX, он, в поледних релизах, тоже умеет I8080, но там нужно настраивать файл с картой памяти, что гемор, а потому изучение этого проекта я забросил, но может кому будет интересно.

    Кстати для написания кода в мнемониках I8080 крайне удобно использовать GNUSims8085 - подсветка синтаксиса и прочие ништяки. Жаль отассемблировать файл нельзя, или я не понял как.
    Последний раз редактировалось Zidane; 20.07.2025 в 17:03.

  5. #4

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А зачем такие заморочки? Наверное все Си- повёрнутые программисты никак не могут без своих примочек. Давно пишу в программе asm80win от Вячеслава Медноногова, пишу в мнемонике Z80, в том числе и для Специалиста. Текст набираю в обычном редакторе.

  6. #5

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

    По умолчанию

    SJAsmPlus + Notepad++
    У меня есть ролики, где я показываю, как я пишу.
    С уважением, Станислав.

  7. #6

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Посты о "правильности" выбора мнемоники удалил. Тема называется "Разработка нового ПО для Специалиста", а не о "Правильность выбора мнемоники при разработке нового ПО для Специалиста".

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

    Zidane(24.07.2025)

  8. #7

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

    По умолчанию

    В общем, пишу программу для вывода символов и строк для будущего редактора. В принципе написал и все работает. То бишь есть сами символы, указание позиции табуляции цвет и инверсия. Но вот вдруг допер - у меня в таблице только кириллица. По мелочи сойдет, но для редактора нужен полный набор символов. То бишь, 256. Полный набор латиницы кириллицы специальные символы и т.п. Вопрос не в этом. Вопрос в том, как удобно выполнять переключение.
    Кнопка "Рус/Лат" не пойдет - переключение регистра букв, то есть занята уже. Нужно какую-то кнопку занять, чтобы выполнять переключение. Я настоящего Специалиста в руках никогда не держал и какие там кнопки есть и чем они занят - фиг знает. Есть предположение использофать какую-нибудь из функциональных клавиш. Но сколько их и какими кодами определяются... Вопрос.
    В общем-то этом и проблема: какой клавишей или комбинацией удобнее всего будет переключать раскладку клавиатуры. Планируется её работа как флага, в зависимости от состояния которого выполняется сдвиг адреса таблицы символов. И как удобнее выводить индикацию текущего режима. Я вообще склоняюсь к варианту современных ос - небольшой индикатор в панели редактора. Но пока вопрос тоже открыт.

    Не в тему: самописная программа, при всей её кривости, работает куда как быстрее и удобнее чем то что есть в ПЗУ "Специалист" (взял набор управляющих кодов из набора ZX Spectrum), так что "Монитор" все равно придется переписывать. Наверное... Потому что 2 кБ на новый знакогенератор в оперативке жаль.
    Последний раз редактировалось Zidane; 01.08.2025 в 08:04.

  9. #8

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

    По умолчанию

    Цитата Сообщение от Zidane Посмотреть сообщение
    Кнопка "Рус/Лат" не пойдет - переключение регистра букв, то есть занята уже. Нужно какую-то кнопку занять, чтобы выполнять переключение.
    У Специалиста изначально есть две кнопки, предназначенные для смены регистра: НР - нижний регистр, и НР фикс. - нижний регистр фиксированный



    Чуть позже НР фикс. переименовали в РУС/ЛАТ.



    Собственно, по моему мнению, тут и вариантов особых нет:

    РУС/ЛАТ (НР фикс.) - смена раскладки
    НР - аналог SHIFT

    Цитата Сообщение от Zidane Посмотреть сообщение
    Потому что 2 кБ на новый знакогенератор в оперативке жаль.
    Ну и, кстати, полный набор символов так же есть в ПЗУ, если, конечно, третью микросхему ставили. Всё описано в Моделисте-Конструкторе №4 за 1989 год.



    Последний раз редактировалось CityAceE; 01.08.2025 в 09:01.
    С уважением, Станислав.

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

    Zidane(01.08.2025)

  10. #9

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

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Ну и, кстати, полный набор символов так же есть в ПЗУ, если, конечно, третью микросхему ставили. Всё описано в Моделисте-Конструкторе №4 за 1989 год.
    Если там стандартный 6*8 то фигня. Собственно весь сыр-бор у меня и начался из-за перехода на шаблоны 8*8. Я уже не раз говорил, что самое большое препятствие на пути популяризации специалист - его Монитор. А цвет и инверсия шли бонусом.

  11. #10

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

    По умолчанию

    Цитата Сообщение от Zidane Посмотреть сообщение
    Если там стандартный 6*8 то фигня.
    Да, там 6*8. Но на самом деле шрифт с такой матрицей, не тот кривой, что в ПЗУ, а с нормальным начертанием, выглядит очень даже прилично, по мне так лучше, чем 8*8. Да и больше его на экране поместится. А ещё лучше всё будет смотреться на экране, если использоваться не фиксированную матрицу для каждого симвова, а пропорциональную. Но основная его проблема - это скорость вывода на экран. Вот она реально расстраивается. Но, светлые умы давно уже всё оптимизировали и серьёзно повысили скорость относительно ПЗУшной процедуры.
    С уважением, Станислав.

Страница 1 из 4 1234 ПоследняяПоследняя

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

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

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

Ваши права

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