Chwe, скорость можно определять подсчётом количества тактов за инт. Пример - https://github.com/UzixLS/zx-midipla...src/device.asm
А зачем определять модель компьютера?
Chwe, скорость можно определять подсчётом количества тактов за инт. Пример - https://github.com/UzixLS/zx-midipla...src/device.asm
А зачем определять модель компьютера?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Спасибо за пример кода! Да, я об этом думал, но моих знаний пока не хватает, чтобы это всё на z88dk реализовать (да ещё и под esxdos).
Для использования API, существующего только в этой моделиТут история такая... Хотел готовый код показать, но что-то его пока не выложил... Попытаюсь объяснить словами.
Для вот того t2esx, работающего на Next, мой подельник сделал определение частоты. Там на том Next всё сложно для понимания [пользователя], как понял, в смысле в какой момент какая частота, так как оно программно переключается плюс то ли он чего не понял, то ли правда всё очень сложно. Ну, не суть важно, сделал он там и сделал. А так как чтение текущей частоты сделано через специальный регистр, который есть только на Next, то он там детектирование Next реализовал (я так понял, это тоже там просто как-то, то ли API есть, то ли какие-то дополнительные инструкции Z80N). По сути там код получился
пёсокот
Код:if (model_is_next()) { read_cpu_clock_from_NEXTREG(); }[свернуть]
А тут я почесал репу и подумал: «а полезная штука, может и на Sizif такое можно». То есть, вариант №1, кросс-платформенный -- считать такты. С ним у меня пока технические проблемы, как считать -- понятно, как встроить в существующий код -- непонятно. А вариант №2, платформо-зависимый -- как-то определить платформу и, если на ней есть API, дёрнуть этот API.
Но, опять же, если в Sizif программно частоту прочитать неоткуда, то и определять незачем. Откуда читать, я, как уже упоминал, не нашёл.
[offtop]
так ее не только прочитать программно можно, но и задать - так же программно.
есть программа, в чем похожая на t2esx (если я правильно понял суть) - в ней можно рулить скоростью проца
[/offtop]
а так - да, только считать такты, что б совсем платформонезависимо было - и сизиф, и некст, и тостер с divmmc.
Да, похоже верной дорогой идти надо будет. Только вот со счётом у меня не очень пока. Как в принципе считать (использовать IM 2) из программы на C (z88dk) я более или менее представляю в общих чертах, а вот будет ли оно в принципе работать для dot command... Ну, попробую, наверное
- - - Добавлено - - -
Спасибо, значит я ничего в коде не упустил. Это радуетСлучай у меня уж больно специфичный, я попробую такты посчитать, оно так и правда «правильнее» будет.
У сизифа таких API нет. Все доступные из ПО порты - широко употребимые и реализованы в различных машинах. Соответственно, для каждого функционала есть собственный метод детекции. Например, для ula+ - запись и считывание порта #ff3b, для расширенной памяти по стандарту профи - запись в порт #dffd и определение фактического переключения банка памяти в #c000, для текущей частоты CPU и таймингов - см. выше, и т.д.
Порты, позволяющие менять конфигурацию - скрыты и разблокируются только при активном пзу сизифа - внутри меню и при старте компа.
Какие-то ручки и крутилки можно вынести наружу, но, думаю, это должно быть обосновано и сделано в рамках какого-то устоявшегося стандарта.
Я много ранее пытался уговорить Uzix реализовать переключение частоты процессора без захода в меню, через кнопки F... на PS/2 клавиатуре. Не смог уговорить.
Это, правда, не совсем тот случай. Я думал о переключении в турбо в играх типа авиасимуляторов или той же Элиты, где надо лететь долго и можно было бы на ходу турбировать
процессор, чтобы ускорить процесс.
PRINT #1;AT 1,0;" CRACKED BY DJSINFINIT LIVES(Y/N)"
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)