А никто не думал о подключении сопроцессора х87 или подобного к спектруму?
Вид для печати
А никто не думал о подключении сопроцессора х87 или подобного к спектруму?
Причем, псевдотрехмерный DOOM написан без использования сопроцессора.
P.S. Спектруму реально может помочь, если к нему подключить GeForce GTX
Хочу напомнить, что в ZXMC2 для пробы введены порты
для быстрой операции умножения двух байт:
; порты сопроцессора:
; 0xE8EF - множимое (1)
; 0xE9EF - множитель (2)
; 0xEAEF,0xEBEF - результат (1)*(2)
Цитата:
Сообщение от caro
С прошивки версии 2.6 http://zx.pk.ru/showpost.php?p=118624&postcount=554Цитата:
Сообщение от Black_Cat
Нет в ZXMC1 этого нет, поскольку в ней нет этих портов.Цитата:
Сообщение от Black_Cat
Я же специально отметил, что это появилось в ZXMC2 (начиная с версии 2.6)
http://zx.pk.ru/showpost.php?p=118624&postcount=554
не, не пытался, была такая идея вроде, но в 90-х много всяких идей было, эта рассматривалась, но была отброшена вроде как по причине бессмысленности.. у Ивана Макарченко идея суперсопроцессора была получается реализована в Спринтере, но при таком Z80 просто превращается в очень сомнительный элемент системы, типа детсадовец при брате-боксере.. сейчас при наличии массы супердешевых супермикроконтроллеров сделать довесок к Z80 еще проще, но смысла нет имхо никакого, софта не будет под этоЦитата:
Raydac что-то говорил что думал, или даже пытался подключить. Спроси если интересно
а на какой частоте Z80 ATMega будет успевать и перемножать и всё остальное?
качал я когда то документацию на сопроцессор 387ой
сколь я помню он сидит на шине процесора основного и якобы ловит коды команд
оттрабатывая нужные
Нахрена Атмега? ПЗУ 64Кх16 и в ней поместятся все варианты перемножения любых двух восьмибитных чисел. Для умножения даже в два раза меньший нужен объём, ведь 2*3=3*2. А если добавить ещё один порт, то можно ещё и 64 вида операций вибирать - туда и сложение и деление и хоть тангенсы можно запихнуть . И всё на одной ПЗУ 64Мх16.
По моему 8 бит маловато. И если ориентироваться на 3Д, надо делать аппаратный умножитель матриц.
X` = X*k1 + Y*k2 + Z*k3 + k4
Y` = X*k5 + Y*k6 + Z*k7 + k8
Z` = X*k9 + Y*k10 + Z*k11 + k12
Причем k1-k12 будут для множества векторов идентичны.
В этому случае в сопроцессор мы загружаем адрес в памяти, где находится исходные вектора и куда сваливать результат.
caro, а изначально при включении множители в нуле? Их можно прочитать? Сохраняется ли состояние регистров множителей после чтения результата, т.е. можно один множитель использовать как константу? Состояние регистров множителей и результата меняется при аппаратном сбросе компа с клавиатуры, т.е. без сброса самой АТМеги?
Состояние произвольное, не определено.Цитата:
Сообщение от Black_Cat
Да, все регистры доступны для чтения. При записи в любой из регистров сомножителей, пересчитывается результат умножения.Цитата:
Сообщение от Black_Cat
Да, можно.Цитата:
Сообщение от Black_Cat
Нет, пока питание на Мегу подается, состояние регистров не меняется.Цитата:
Сообщение от Black_Cat
а в порты результата напрямую можно записать? :)
Да, можно. Результат перемножения будет испорчен.Цитата:
Сообщение от Black_Cat
При следующей записи в любой из сомножителей результат будет скорректирован.
У меня была идея при записи в регистры результата корректировать например второй сомножитель,
но пока это не сделано, тем более что у Меги нет аппаратного делителя.
Новую железку делать не нужно. Нужно экспериментировать с прошивкой NeoGS, она перезаливается на лету.