User Tag List

Страница 5 из 5 ПерваяПервая 12345
Показано с 41 по 43 из 43

Тема: x80 - RISC-ядро с интуитивной системой команд для x80-CISC

  1. #41

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Чем описанное виртуализирующее ядро будет лучше например ZPU ?
    Чем ZPU лучше на мой взгляд, это тем что там изначально несколько другая цель - подружить при его помощи самые разные целевые 8-битные платформы с современными популярными средствами разработки, что позволяет делать простым портирование сложного софта (в т.ч. и софта изначально написанного под куда большие разрядности и более мощную математику, чем принято у 8-биток). В 2021 изучать новый машкод чтобы потом на нем творить что-то сложное (а иначе зачем?) ИМХО путь тупиковый в силу слишком высокого образовательного порога и низкого полезного выхлопа у программиста (а именно наличие софта решает в любом программно-аппаратном комплексе).
    Последний раз редактировалось Error404; 28.02.2021 в 18:33.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  2. #42

    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Smile

    Цитата Сообщение от Error404 Посмотреть сообщение
    Чем описанное виртуализирующее ядро будет лучше например ZPU ?
    Нe знаю. Сейчас все помешаны на стековых машинах.
    Цитата Сообщение от Error404 Посмотреть сообщение
    В 2021 изучать новый машкод чтобы потом на нем творить что-то сложное (а иначе зачем?)
    Машкода как такового нет. Что в дампе видится, то и значится.
    Цитата Сообщение от Error404 Посмотреть сообщение
    ИМХО путь тупиковый в силу слишком высокого образовательного порога и низкого полезного выхлопа у программиста
    Где-то читал заметку/байку, что современные инженеры/программисты выпускники не знают что такое байт-код и маш-код.

    У меня - никакой таблицы системы команд практически нет. Что в дампе видишь, то и значит:
    • Видишь «A1» - значит активируется регистр «A1»
    • Видишь «AB» - значит скоро в АЛУ поступят операнды регистров «A,B»
    • Видишь «3D» - значит регистр #3 участвует в Дизъюнкции - «OR A1,B3»
    • Видишь «00» - значит «конец строки» - HLT
    Вот так байт за байтом простыми командами «A1 AB 3D» собирается целая команда «OR A1,B3».

    Хочется Форт синтаксиса?
    Тогда «A1 AB 3D» - это «A1 B3 Disj».

    Никаких битовых полей, никакой эзотерики.

    Префиксы - BCD-числа от 1 до 99.
    Код:
    3456 A1         |REG  A1
    3457    AB      |ARG  A,B
    3458          3D|OR   A,B3
    3459       65 4D|OR   A,[B4][BC6][5]
    345B       87 DD|DAD  BC8,BC7
    345D          CF|CMC
    345E       87 CE|JC   [BC8][7]
    3460       65 AB|XCHG A6,B5
    3470       43 C2|MOV  [BC4][3],C2
    3472       18 F8|CALL 0xF818
    3474          F8|CALL 0xF800
    3475       18 00|CALL 0x0018
    3477          00|CALL 0x0000 (HLT)
    Коды E0…FF так и работают однобайтовыми «CALL 0xE000…0xFF00» и программно можно наращивать функционал виртуальными инструкциями.

    P.S.: Согласен, архитектура - для любителя копаться в дампах.
    Но у LMC эзотерики в сухих цифрах больше.
    А общее - одно: 00 - HLT

  3. #43

    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb HTML-Web-Эмулятор

    Написaл Эмулятор (поддерживает Автозапуск).

    Данная HTML5-версия эмулятора дизайном выполнена в стиле Windows'95.
    Кнопка «RUN» запускает цикл эмуляции до инструкции останова «HALT».
    Кнопка «STEP» предназначена для пошаговой отладки программного кода.

    На странице в режиме отладки отображается контекст процессора со всеми регистрами, дизассемблер, листинг ассемблера и дамп памяти.
    В пошаговом режиме дамп памяти и текст ассемблера проматываются на активный участок.
    При навигации кареткой по листингу на соответствующий адрес переключается дизассемблер и дамп памяти.

    Внизу отображается графический дисплей из двух слоёв.
    Верхний слой - монохромная графика 128×128, которая строится непосредственно программным способом.
    Нижний слой - произвольное цветное изображение импровизированных ЖК-сегментов, представляющих собой готовые спрайты, которые неподвижны и программа может их только включать и выключать. В качестве демонстрационного ЖК-экрана была выбрана сцена из карманной игры Автослалом.

    Карта Портов Устройств Ввода-Вывода
    Данная система своим концептуальным дизайном планировалась максимально открытой.
    Как писалось выше с самого начала, система команд кодируется сквозным образом, где две тетрады байта команды представляют собой аббревиатуру команды.
    Таким образом, никакой особой карты УВВ не разрабатывалось, так как в качестве портовых служат регистры D₀…₉, где D₉ служит селектором микросхемы УВВ, а через D₀…₈ осуществляется уже непосредственный доступ к микросхеме УВВ:
    Код:
    ╔════╤════════╤════════════════════════════════════════════════════════════════╗
    ║ D9 │  ИМС   │ Описание доступа к ресурсам микросхемы через РОН процессора    ║
    ╠════╪════════╪════════════════════════════════════════════════════════════════╣
    ║0x53│ i8253  │ D0/D1/D2 - Каналы Счётчиков 0/1/2                              ║
    ║    │К580ВИ53│ D3 - Регистр Статуса Таймера                                   ║
    ╟────┼────────┼────────────────────────────────────────────────────────────────╢
    ║0x55│ i8255  │ D0/D1/D2 - Порты A/B/C ППА                                     ║
    ║    │К580ВИ55│ D3 - Регистр Статуса ППА                                       ║
    ╟────┼────────┼────────────────────────────────────────────────────────────────╢
    ║0x57│ i8257  │ D0/D2/D4/D6 - Каналы 0/1/2/3: ПДП Адрес                        ║
    ║    │        │ D1/D3/D5/D7 - Каналы 0/1/2/3: ПДП Счёт                         ║
    ║    │К580ВТ57│ D8 - Регистр Статуса ПДП                                       ║
    ╟────┼────────┼────────────────────────────────────────────────────────────────╢
    ║0x75│ i8275  │ D0 - Регистр Данных                                            ║
    ║    │К580ВГ75│ D1 - Регистр Статуса                                           ║
    ╟────┼────────┼────────────────────────────────────────────────────────────────╢
    ║0x79│ i8279  │ D0 - Регистр Данных                                            ║
    ║    │К580ВВ79│ D1 - Регистр Статуса                                           ║
    ╟────┼────────┼────────────────────────────────────────────────────────────────╢
    ║0x93│ FD1793 │ D0 - Регистр Команд / Регистр Статуса                          ║
    ║    │        │ D1 - Регистр Дорожки                                           ║
    ║    │        │ D2 - Регистр Сектора                                           ║
    ║    │1818ВГ93│ D3 - Регистр Данных                                            ║
    ╚════╧════════╧════════════════════════════════════════════════════════════════╝
    Как видите, для работы с ИМС i8257/К580ВТ57 достаточно в D₉ поместить номенклатурный индекс целевой ИМС BCD-кодом, а затем через регистры D₀…₈ уже программировать режим её работы.

    Демонстрационный Код
    На данный момент имеется начальная реализация эмуляции ИМС i8279/К580ВВ79 для считывания кода клавиши из соответствующего текстового поля.
    Для управления пикселями монохромного слоя служит виртуальное LCD-УВВ с кодом 0xCD в D₉, где в D₈ записывается целевая X:Y позиция знакоместа на экране, а D₀…₇ имитируют ч/б матричный принтер и управляют пикселями в вертикальной компоновке байтов на экране.
    Для управления спрайтовыми ЖК-сегментами служит виртуальное цветное УВВ с кодом 0xCB в D₉, где через D₀…₇ маскируются целые спрайты на самом экране и воспроизводится сцена игры «АвтоСлалом» в слегка зашумленном виде, так как имеется вариант имитации ЖК-экрана с помощью отображения кадра непосредственно из ПЗУ, куда прошивается сцена и отображается на бытовой ТВ.
    (Не всякое изображение подходит, так как был разработан специальный редактор для ручного индексирования всех элементов сцены в отдельный спрайт ЖК-сегмента, из-за чего на итоговом экране можно заметить артефакты небрежной работы мышкой.)

    ТВ-имитатор сегментного ЖК
    Можно взять любую графическую систему отображения (хоть от ZX-Spectrum) и пропустить все пиксели из ПЗУ через такой каскад:

    Скрытый текст

    Нажмите на изображение для увеличения. 

Название:	LCD-Spriter.jpg 
Просмотров:	52 
Размер:	18.6 Кб 
ID:	75614
    [свернуть]
    Но это - другая история разработки…
    Но на странице эмуляции рендер работает по принципу со схемы и можно изучить алгоритм упаковки изображения.

    Итог
    Таким образом, удалось более-менее разобраться с проблемой трансляции кода и его исполнения.
    А благодаря браузерному исполнению эмулятора можно ознакомиться с представляемой здесь архитектурой на любом интерактивном устройстве.

Страница 5 из 5 ПерваяПервая 12345

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

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

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

Похожие темы

  1. Ядро с 32 битами и виртуализацией
    от Bolt в разделе Несортированное железо
    Ответов: 132
    Последнее: 30.12.2021, 17:50
  2. x80: CISC - уже не i8080, ещё не i8086
    от Радио-86РК в разделе Разное
    Ответов: 41
    Последнее: 18.05.2020, 21:41
  3. RISC OS
    от Кирлиан в разделе Зарубежные компьютеры
    Ответов: 7
    Последнее: 07.08.2012, 01:28
  4. Ответов: 16
    Последнее: 02.08.2005, 12:20

Ваши права

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