Лучше всего использовать "родную" разрядность.
Например 32 бита для x86 в режиме 386. Или 64 для современных.
У современных процессоров (x86/64) АЛУ обычных (не SSE) команд заточено под размер...
Тип: Сообщения; Пользователь: mmxdmv; Ключевые слова:
Лучше всего использовать "родную" разрядность.
Например 32 бита для x86 в режиме 386. Или 64 для современных.
У современных процессоров (x86/64) АЛУ обычных (не SSE) команд заточено под размер...
Небольшой пример приведу на счёт с параметром и без параметра. Есть такая вроде бы функция BIN. Но это на самом деле не функция, это другое представление числа. После него так же идёт пятибайтная...
Прошу прощение за своё косноязычие. Имелось в виду время создания спектрума.
Разумеется, начиная года с 83-84 правки в ПЗУ вносить уже было бессмысленно.
- - - Добавлено - - -
Ну не совсем...
Во. Правильно. Если строку бейсик-программы до ума довести, то можно было бы скармливать калькулятору практически напрямую. Правда калькулятор в обратной польской записи... но можно было придумать...
90% сообщений про спектрум - это троллинг. В смысле я тролль, но тут половина таких.
Про ошибку - возможно. Больше 20 лет не писал в ассемблере Z80, на бейсике и того больше.
На счёт идеальности...
А вот нифига.
Ошибки бывают двух видов - ошибка синтаксиса и ошибки выполнения.
Синтаксис прекрасно встроенный редактор правит, а вот ошибки выполнения вынужден и компилятор проверять.
Вернее даже...
Я вам верю что спектрум-бейсик это делает именно так.
Просто "определяет по одной таблице класс команд по типу и количеству операндов" - это звучит пугающе. А на самом-то деле раскидали по таблице...
Я знаю что ПЗУ спектрума не предназначено для пи-кода.
Просто почему вы так категоричны что бейсик ничего общего с пи-кодом не имеет?
Все команды - токенизированы в коды, все числа - переведены в...
Нет. Я имел в виду немного другое.
Интерпретатор тратит около 10 тыс. тактов просто на команду. Не на выражение, а на команду.
А вот если сделать "сложное выражение" и прогнать через компилятор, то...
Для изучения скоростных характеристик бейсика накидал простенькую программу:
1 pause 1: border 2: border 3: border 4: border 5: goto 1
Она предсказуемо полосатит бордюр и практически не дрожит....
Возможно и лучше. Только бяка в том что микродрайв - это ZX-Interface I, то есть эмулировать придётся не "проводочек" а целую плату размером со спектрум.
ВГ93 вернее какие-то их аналоги...
Это начало экранной области памяти, соответственно проверяй РУ6, особенно старший бит (который D7).
А это ни капельки не интересно: адресация РУ5 начинается с #8000, соответственно тест туда...
А может не разъём? Может модуль? В смысле сейчас цена модуля дешевле, чем цена разъёма.
Шаг выводов у них стандартный, цоколёвка правда бывает разной... но можно взять за основу которые подешевле...
Безусловно, сохранить прогресс в игре (в той же элите) не получится.
А вот для бейсика планируется функция сохранения (там разница-то с чтением небольшая, процедуры на 80% совпадают)
Во первых...
Да, спасибо, почитаем. В принципе микросхемы почти те же самые, только они объединены в одну "супермикросхему" - ардуино нано.
Только с тех времён микросхемы стали более доступными, да и мелкие...
Считаю с округлением :) И ошибся всего на один такт. Для любителя не видящего спектрум с прошлого века - неплохо.
Про контрольную сумму:
Её в любом случае считать. И лучше не простым XOR. Ну...
Да, идея "дай ышо" примерно такая.
кстати "дай ышо" можно через OUT (BC),C: OUT (BC),B делать (экономятся и байты и такты)
Ну просто не нравится мне кемпстон-порт.
Радикального ускорения он не...
И сравниваем что предложил krt17
59 тактов против 191. Разница в 3 раза.
Добиваем сюда синхронизацию. Добиваем сюда контрольную сумму. Учитываем задержки при чтении с флешки.
И получаем...
Тут у меня есть несколько возражений:
Первое - совместимость и наличие разъёмов.
У меня на двух спектрумах в детстве разъёмы Tape не совпадали: пришлось перепаивать чтобы грузится с одним шнурком...
Покурил.
Признаю ошибку, команда есть в наборе Z80 (но народ жалуется что на некоторых клонах некорректно работает).
Но на итог это не повлияет: команда выполняется ажно 18 тактов.
Типа 4 раза...
Обратка нужна для скорости.
Если Z80 будет считать синхронизацию, то цикл синхронизации должен быть БОЛЬШЕ (наверное раза в два или даже три) чем цикл чтения из порта.
Если же Z80 будет тупо...
До четырёх и пяти считать умею.
Но на самом деле это не ускорит в 4 раза:
- ардуинка не шибко быстрое устройство. Она должна ещё на флешку лазить за данными. В это время Z80 будет простаивать.
- у...
Про велосипед на адруинке завёл отдельную тему. Может умные люди присоветуют и доведём её до ума.
Думаю, если правильно реализовать, то такая фишка для бета-бейсика была бы идеальна.
Через кемпстон, к сожалению, нельзя:
- во первых некоторые клоны не имеют кемпстона.
- во вторых для синхронизации всё равно нужна обратка (в примере программы не показана)
- - - Добавлено - - -...
Можно было бы грузить около 15 килобайт, если бы:
1) команда IN F,(BC) устанавливала флаг не Z, но C
2) нужный бит порта попадал именно на нужный флаг
В своей программе можно использовать стек,...