weiv, можно узнать, какая версия эмулятора на сегодня самая последняя и где её можно скачать ?
Вид для печати
weiv, можно узнать, какая версия эмулятора на сегодня самая последняя и где её можно скачать ?
Новых версий не было с 2017го года. Скачать релиз эмулятора со всеми сопутствующими файлами можно здесь: http://www.emu-land.net/computers/zx.../emuls/windows.
Публичный апдейт 1.02 можно скачать здесь: https://drive.google.com/file/d/1fg4...ew?usp=sharing
после 1.03b не было обновлений ?
Публичных не было.
А если не публичная, тогда как, куда и сколько будет стоить?
Пока, увы, никак, никуда и нисколько. Нет мотивации заниматься релизом.
Понятно, что невозможно найти аргументов, которые бы убедили автора продолжить разработку этого эмулятора. А эмулятор шикарный -- он, единственный из всех, что я смог найти, загрузил эту игрушку (Alt+Q, F3). Сама игрушка довольно обычная, но вот загрузка её уникальна! Это такая загрузка, что дико жалеешь, что этого метода не было в стандартном ПЗУ Спектрума -- картинка загружается не до основного блока, а во время его, причем построчно. Получается, что дождавшись загрузки картинки, фактически сразу и начинаешь игру -- т.е. картина одновременно является и прогресс-баром загрузки! Шикарная технология и только Спектрамин смог загрузить этот файл -- ну разве это не повод хоть немножко продолжить развитие этого уникального продукта? Было бы классно! :-)
https://disk.yandex.ru/d/VgubumISzuHUfA
Ты несомненно прав! И особенно замечательно, что это не помешало данному эмулю запустить загруженный кодовый блок, что часто очень полезно при разработке программ (хотя и не критично).
(Что касается игры, прикол в том, что этот 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)
Адрес, на который устанавливается указатель стека при запуске программы обработки ошибок. Изменив значение переменной, можно подключить собственные процедуры обработки ошибок (см. «Использование подпрограмм ПЗУ»).
Совершенно неудивительно что он автоматически запускается после загрузки. И заслуги эмулятора, что он это умеет, здесь нет.
дело не в том, что читали или нет, или просто не помнят. Я, например, нашел у себя в архивах эту игру в виде сборника (хоть и фирменного) - там, в tzx у нее есть бейсик загрузчик, а дальше ровно такой же кодовый блок. поэтому удивился его отсутствию в приложенной версии.
удивлялся ровно до тех пор, пока не увидел официальную инструкцию к оригинальному изданию:
https://i.postimg.cc/YjC5mcB2/Halls-Of-The-Things-2.jpg
...and load with LOAD "" CODE
об этом я и говорил - прекрасно грузится и в других эмуляторах
Так если только код, зачем merge?
Можно так:
1) clear 24999: load "" code 25000
2) сохраняем кусок кода от 25000 до 65535
3) снова грузим тот же кусок кода, но чтобы начало загрузилось в ram, потом кусок в rom, и хвост - в экран
4) сохраняем хвост из экрана
5) творим что хотим с двумя полученными кусками
STS необходим небольшой кусочек в памяти (пара десятков байт вроде, тоже запускал сто лет назад), который переключит в нужную страницу и сделает переход в отладчик.
Если загружать всю память битком - на месте где лежит код для перехвата окажутся совсем другие байты.
Согласен. Но пока вроде никто не ругается. :)
- - - Добавлено - - -
В кассетные времена много слышал про него, но т.к. доступ к системным программам был весьма ограниченный, вживую пощупать не удалось.
А чем подмена куска будет принципиально отличаться от разрезания большого блока на две части?
Эмулятор полностью не работает
Wine 7.12 не удалось завести на Linux mint 19.3 x64
Обновил драйвер Нвидия до 510 и поставил новейшее ядро Jądro systemu Linux 5.17.11-xanmod1 x86_6
не помогло
user@PC1:/media/user/F/Games/Emuzwin/spektramin$ wine Spectramine
01a8:err:module:import_dll Library wd1793.dll (which is needed by L"F:\\Games\\Emuzwin\\spektramin\\Spectramine.exe" ) not found
01a8:err:module:import_dll Library fdc765.dll (which is needed by L"F:\\Games\\Emuzwin\\spektramin\\Spectramine.exe" ) not found
01a8:err:module:LdrInitializeThunk Importing dlls for L"F:\\Games\\Emuzwin\\spektramin\\Spectramine.e xe" failed, status c0000135
01a0:fixme:ver:GetCurrentPackageId (000000000068FDB0 0000000000000000): stub
user@PC1:/media/user/F/Games/Emuzwin/spektramin$
Откуда брать эти дллки неясно
не ясно какой именно качать и с какого сайта.
Я скачал с какого попало.
Никакой более новой публичной версии после 1.01 значит не было?
http://www.emu-land.net/computers/zx...owonly&id=4238
Spectramine v.1.01b.zip, только экзешники (846 KiB)
Установщик русской версии Спектрамин 1.0b (7.6 MiB)
Установщик английской версии Spectramine 1.0b (7.6 MiB)
Полный zip-архив с обеими версиями Spectramine 1.0b (8.1 MiB)
Облегченный zip-архив со Spectramine 1.0b (1.1 MiB)
Была пара апдейтов, 1.02 можно скачать, 1.03 похоже утерян.
Подружить его с геймпадом напрямую не получится, если что, только с помощью сторонних приложений, транслирующих кнопки геймпада в кнопки клавиатуры.
не утерян.
https://disk.yandex.ru/d/b7iLwSadH7754A
1.03b версия.
Новый апдейт Спектрамина (v.1.05b), с правильным снегом и т.п.: https://files.fm/u/r7cymnn9m
https://zx-pk.ru/threads/10817-zxm-videocard.html - сделай плиз эмуляцию вот этой штуки
Новый апдейт Спектрамина (v.1.06): https://files.fm/u/q5wjvqhtk
Изменения:
v.1.06b 07/11/2022
- Исправлены тайминги команд Z80 INIR/INDR
- добавлена эмуляция матричного эффекта клавиатуры и времени изменения её состояния
- окно эмулятора теперь всплывает после драг-н-дроп
- окно эмулятора теперь стабильно всплывает при старте
v.1.05b 21/10/2022
- Исправлена эмуляция эффекта снега
- Исправлен время INT Пентагона
- Исправлено поведение блочных команд Z80 в момент прерывания
- Исправлена команда Z80 HALT
- Добавлена эмуляция утечки DRAM
- Исправлено горячее переключение поздних таймингов и сдвига таймингов Пентагона
- Исправлена ULA+
- Исправлено время подтверждения прерывания для IM 0
- отключено ускорение пауз между загрузкой блоков ленты
Новая версия Спектрамина (v.2.01b Try) доступна для ранее делавших донаты и тесты на реале по моей просьбе по запросу на e-mail spectramine@tuta.io .
Spectramine, мой +2B всегда к твоим услугам :v2_dizzy_pirate: