weiv, можно узнать, какая версия эмулятора на сегодня самая последняя и где её можно скачать ?
weiv, можно узнать, какая версия эмулятора на сегодня самая последняя и где её можно скачать ?
Новых версий не было с 2017го года. Скачать релиз эмулятора со всеми сопутствующими файлами можно здесь: http://www.emu-land.net/computers/zx.../emuls/windows.
Публичный апдейт 1.02 можно скачать здесь: https://drive.google.com/file/d/1fg4...ew?usp=sharing
Последний раз редактировалось Spectramine; 28.03.2021 в 02:59.
после 1.03b не было обновлений ?
Публичных не было.
А если не публичная, тогда как, куда и сколько будет стоить?
Пока, увы, никак, никуда и нисколько. Нет мотивации заниматься релизом.
Последний раз редактировалось Spectramine; 28.03.2021 в 12:13.
Понятно, что невозможно найти аргументов, которые бы убедили автора продолжить разработку этого эмулятора. А эмулятор шикарный -- он, единственный из всех, что я смог найти, загрузил эту игрушку (Alt+Q, F3). Сама игрушка довольно обычная, но вот загрузка её уникальна! Это такая загрузка, что дико жалеешь, что этого метода не было в стандартном ПЗУ Спектрума -- картинка загружается не до основного блока, а во время его, причем построчно. Получается, что дождавшись загрузки картинки, фактически сразу и начинаешь игру -- т.е. картина одновременно является и прогресс-баром загрузки! Шикарная технология и только Спектрамин смог загрузить этот файл -- ну разве это не повод хоть немножко продолжить развитие этого уникального продукта? Было бы классно! :-)
https://disk.yandex.ru/d/VgubumISzuHUfA
Spectramine(11.05.2022)
Misha Pertsovsky(14.05.2022)
Ты несомненно прав! И особенно замечательно, что это не помешало данному эмулю запустить загруженный кодовый блок, что часто очень полезно при разработке программ (хотя и не критично).
(Что касается игры, прикол в том, что этот tzx я качал с крупного сайта, в разных вариантах (от разных издателей) в форматах и tzx и tap.. И загрузка там была разной, но везде не было бейсик-загрузчика.. Было бы интересно поглядеть лицензионную кассету -- может и там нет бейсик-загрузчика, а в инструкции просто написаны соответствующие команды? Это было бы вдвойне необычно -- в т.ч. как своеобразная защита от копирования, в т.ч. даже напрямую с ленты на ленту! Может даже гениальная защита! Такая же уникальная, как и загрузка этой игры -- не удивился бы! :-) )
Такое впечатление, что все не читали "тайники" или "спектрум изнутри":
Код:Другим интересным способом способом запуска блоков машинного кода является считывание программы в область машинного стека. Этим способом можно запускать блоки машинного кода, загружая их просто через LOAD "" CODE. Этот метод показан схематично на рисунке 8. Машинный Стек ┌───────────┐ 65356 │ │ 65357 │ ... │ Per SP ─────> │ 1343 │ 65359 │ │ 65360 │ 2053 │ 65361 │ ╔═╧═══════╗ 65362 │ 7030 ║ 65535 ║ 65363 │ ║ ║ 65364 │ 4867 ║ ? ║ 65365 │ ║ ║ 65366 │ ? ║ ? ║ RAMTOR ─────> │ 62 ║ 62 ║ 65368 │ ║ LD IX ║ 65369 │ ║ ... ║ 65370 │ ║ LD DE ║ └─────────╢ ... ║ ╚═════════╝ Рис.8 Схема автозапуска блока кодов. Указатель стека (регистр SP) принимает показанное на рисунке 8 состояние в процессе выполнения процедуры 1366 (вызванную из БЕЙСИКа через LOAD "" CODE). Способ запуска программы весьма прост. Адрес считывания блока рассчитан так, что блок считывается на машинный стек именно с того места, в котором находится (записанный интерпретатором БЕЙСИКа) адрес возврата из инструкции LOAD "" CODE (он тогда равен значению системной переменной ERRSP-2) или прямо из процедуры LOAD-BYTES (равный ERRSP-6). Тогда два первых байта программы обозначают адрес ее запуска. Этот способ очень похож на предыдущий, за исключением того, что там подменялась процедура загрузки, а здесь - адрес считывания блока кодов, микропроцессор считывает содержимое стека и переходит по прочитанному адресу (который только что появился в памяти). По этому адресу в программе находится начало процедуры загрузки ее последующих блоков. Это видно на рисунке 8. Метод обхода такой защиты также весьма прост, достаточно заменить RAMTOR на соответственно низкое значение, а затем прочитать блок кодов, который благодаря этому не запуститься.Я специально выделил место про изменение RAMTOP на другое значение и код не запустится.Код:В этом разделе был описан способ запуска машинного кода путем считывания в область машинного стека. Чтобы такой блок запустить достаточно ввести инструкцию LOAD "" CODE, которая запустит его. Чтобы убедиться в этом на практике введите программу с листинга 5. Листинг 5. Пример автозапуска машинной программы. 10 CLEAR 65361: LET s=0 20 FOR n=65362 TO 65395: READ a: POKE n,a: LET s=s+a: NEXT n 30 IF s<>3437 THEN PRINT "OSIBKA V STROKE DATA": STOP 40 SAVE "beep" CODE 65362,34 50 DATA 88,255,3,19,0,62,221,229,6,8,197,17,30,0,33,112,5,205 60 DATA 181,3,33,0,8,43,124,181,32,251,193,16,235,221,225,201 Она запишет на ленте короткий блок машинного кода, который будет запускаться самостоятельно. После записи этого блока освободите память с помощью RANDOMIZE USR 0 или <RESET> (по возможности переставьте RAMTOR на нормальное значение с помощью CLEAR 65367) и загрузите его с помощью LOAD "" CODE. Цель этого блока проинформировать о том, что он запустился - он делает это несколькими звуковыми сигналами. Вы услышите их сразу после считывания программы, как только с рамки исчезнут красно-желтые полосы.
Но в "Halls Of The Things" применён ещё более железобетонный метод запуска — код грузится в область системных переменных, а конкретно в
ERR_SP 23613/14 IY+3 (#5C3D/3E)
Адрес, на который устанавливается указатель стека при запуске программы обработки ошибок. Изменив значение переменной, можно подключить собственные процедуры обработки ошибок (см. «Использование подпрограмм ПЗУ»).
Совершенно неудивительно что он автоматически запускается после загрузки. И заслуги эмулятора, что он это умеет, здесь нет.
В правильно заданном вопросе содержится половина ответа
Misha Pertsovsky(01.06.2022)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)