User Tag List

Результаты опроса: Нужен ли FPU 8-мибитным машинам ?

Голосовавшие
38. Вы ещё не участвовали в этом опросе
  • Да нужен - must have

    15 39.47%
  • Не особо то и нужен, но пусть будет

    7 18.42%
  • Вообще то нужен, но никто ничё не напишет, поэтому скорее нет чем да.

    6 15.79%
  • Нет не нужен - must die

    10 26.32%
Показано с 1 по 10 из 31

Тема: FPU

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

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

    Регистрация
    18.04.2015
    Адрес
    г. Люберцы
    Сообщений
    342
    Спасибо Благодарностей отдано 
    103
    Спасибо Благодарностей получено 
    32
    Поблагодарили
    27 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    Exclamation

    Теоретически сделать такой сопроцессор нет проблем. Практический проблем куча. Главная: наперкуа? Вот один товарищ хотел как-то:https://github.com/cheveron/sebasic4...h-Co-processor Да воз ныне там...

    ---------

    Раз тут обсуждаются концепты, то можно рассмотреть такие варианты:

    0) Т.к. эмулятор бейсиковского калькулятора всё равно нужно сначала написать хотя бы в виде прототипа, то для начала стоит сделать как доработку какого-либо ZX эмулятора. Причем, для отладки очень удобно делать снапшот системной памяти и регистров Z80 как на входе по адресу 0x38, так и на всех возможных выходах из калькулятора. Там собираем кучу примеров для эмулятора калькулятора и долго и муторно добиваемся, что наша реализация на Си или asm другого процессора будет давать точно такой же результат (такую же разницу в снапшотах)..

    1) Замена Z80 своей реализацией на FPGA (пропускаем совсем дорого).

    2) Замена Z80 своей реализацией на каком-нибудь ARM микроконтроллере + CPLD для реализации интерфейса с остальной системой (PSoC 4 тут как бы должен хорошо подойти). На ARM крутиться эмулятор Z80, при попадании адрес 0x38 переключаемся встроенный в ARM программный эмулятор спектрумовской плавучки.

    3) Тот же ARM+CPLD устанавливаем между системой и реальным Z80, пока не дошли до выборки команды из 0x38 прозрачно работает только Z80, а иначе вместо кода, который считал бы Z80 из ПЗУ, ему подкидывает ARM несколько инструкций которые позволяют считать требуемый контекст Z80 (значения его регистров).
    Потом, пока ARM вычитывает калькуляторные инструкции и сам непосредственно работает с системой памятью, а в это время Z80 получает постоянно инструкцию перехода на и инструкцию назад и таким образом дожидается пока калькулятор в ARM отработает (ес-но Z80 при этом не гадит на системной шине). Результаты (значение), которые нужно прописать в регистр Z80, выполняются подсовыванием соответствующих инструкций в Z80 до того, как ему отправят RET, чтоб он вернулся на место где был вызов калькулятора после того как его снова подключат в систему.

    4) Вариант предыдущего пункта, но стоим не между процессором Z80 и системой, а сбоку, как ПЗУ (аля TR-DOS) или DMA устройство. Слушаем шину, встретили выборку инструкции по 38h, - начинаем пихать свои инструкции, а не то, что в ПЗУ. Опять же вычитываем контекст, а далее либо отправляем Z80 в короткий сон, а само через DMA получаем, всё что нам нужно, либо периодически отправляем нужные инструкции, что за нас Z80 что-то из памяти прочитал, либо записал. В пределе такой устройство вообще можно подключить вместо ПЗУ без дополнительных проводов (только оно не будет знать, что это именно началась выборка команды, а не простое чтение), кроме того не будет работать в системах, где у шина данных ПЗУ не подключена напрямую к процессору и нет возможности со стороны ПЗУ считать записи в ПЗУ... oops, не без дополнительных проводов не получиться - нужно понимать, что Z80 пишет в память...
    Последний раз редактировалось troosh; 17.09.2015 в 13:46.

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

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

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

Ваши права

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