Прошу прощение за своё косноязычие. Имелось в виду время создания спектрума.
Разумеется, начиная года с 83-84 правки в ПЗУ вносить уже было бессмысленно.
- - - Добавлено - - -
Ну не совсем обычный. Пятибайтовый. "Обычный" - это 4 байта в одинарной точности и 8 байт - в двойной.
С FPU лучше не заморачиваться по другой причине. Спектрум - дитя своего времени. Сейчас он используется только для вау-эффекта: смотри какую демку я замутил - всего килобайт, а круче 50 мегабайтной игрульки у тебя на телефоне и даже без рекламы.
Поэтому если тебе нужны вычисления, то выбираешь по нарастающей - ардуину, STM, малинку, атом, i7, xeon; считаешь на видюхах, уходишь в распределённые вычисления и облака...
А к Z80 привязать сопроцессор с FPU - это дорого, несовместимо и непонятно зачем. Как к луку самонаводящиеся стрелы делать. Оно может будет прикольно, но пулемёт с несколькими ящиками патронов круче и дешевле.
Ну и на Z80 вычисления не ведутся, потому что нафиг не надо: даже в 3д играх легче заранее отабличить несколько синусов-косинусов и сделать поворот не на произвольный, а на фиксированный угол. В большинстве случаев поворот меньше чем на 1 градус не нужен, а таблицу синусов на 90 градусов составить - нефиг делать. Можно и косинусы по этой же таблице считать. Тоже самое и с корнями: проще ограничить мир определённой точностью и не нужны будут эти числодробилки.
Если ты всё же впаяешь в спектрум ту же малинку, которая будет считать плавучку...
То внезапно сразу ой. Придётся как-то передавать данные из Z80 в малинку и обратно.
Если повесишь на порты ввода-вывода, то простое умножение это десять байт в одну сторону и 5 байт в другую. Плюс квитирование, плюс коды операций. В не самом плохом случае тактов 30 на один байт получится - 400-500 тактов на операцию. Если хочешь быстрее - то нужна будет эмуляция: процессору скармливаешь команды NOP, а сам внешней схемой читаешь память и делаешь что надо. Но тут вылезают конфликты с ULA и прочая катавасия... Проще уж на одной малинке считать, без спектрума. И быстрее, и дешевле, и точнее, и нервов меньше потратишь.
- - - Добавлено - - -
Позор на мои седины. Писалось ночью и с радиоклавиатуры. Может сам промахнулся, а может и не пропечаталось.
Попрошу исправить обязательно.
По поводу других ошибок - тут даже не ошибки, а описки. Сделал масштаб 200% - может так разгляжу свои непотребности.
- - - Добавлено - - -
Под ускорением тут подразумевалось немного другое.
Вот смотрите: есть сама программа, полезный код. Например команды CLS: CIRCLE
Если заменить на машинный код CALL CSL: CALL CIRCLE - то получим ускорение на сколько там я тактов писал в начале? 10 тысяч?
Ну пусть я неправильно измерил и реально на две команды получим ускорение в 15 тысяч тактов.
А сколько выполняется CLS? Наверное все 200 тысяч, а для CIRCLE вообще миллионы тактов потребуются. Следовательно в этом конкретном случае 15 тысяч делим на миллионы - и получаем ускорение даже не на десятые доли процента...
Но вот для команд, которые "ничего не делают", такие как border, ink, paper, in, out, poke, peek, plot, point - вот на этих командах ускорение должно быть гигантским. Так что ускорение сильно зависит от структуры команд. Если изменится время исполнения команд BEEP и SAVE/LOAD - то это всё, тушите свет.
- - - Добавлено - - -
Букву Ё оставили для симметрии. Очень уж прекрасно она ложится в алфавит - 5 гласных обычных и 5 гласных - им в пару йотированных.
А вот про твёрдый знак солидарен. И не потому что его писать не умею, но потому что без него в алфавите 32 буквы получается - круглое число
- - - Добавлено - - -
Фиг знает. На самом деле грамотность надо пропагандировать хлеще здорового образа жизни.
И так страна деградирует. Тем более, на этом форуме школоты не бывает.
В общем, обещаю читать то что пишу, и дебильных вырвиглазных ошибок постараюсь больше не делать.






Ответить с цитированием