711 lines
42 KiB
Plaintext
711 lines
42 KiB
Plaintext
----------------------------------------------------------------------
|
||
UnrealSpeccy 0.37.7 by SMT and Others
|
||
----------------------------------------------------------------------
|
||
|
||
содержание
|
||
|
||
1. возможности
|
||
2. требования к системе
|
||
3. командная строка
|
||
4. управляющие клавиши эмулятора
|
||
5. несовместимость
|
||
6. приветы и благодарности
|
||
7. лицензия
|
||
|
||
|
||
----------------------------------------------------------------------
|
||
|
||
возможности
|
||
|
||
|
||
процессор
|
||
Z80: все (не)документированные команды и флаги
|
||
|
||
|
||
модели памяти
|
||
|
||
Pentagon 128/512/1024 с 64K ПЗУ
|
||
TS-Configuration
|
||
Scorpion 256/1024 с 64K ПЗУ
|
||
Scorpion ПрофПЗУ с поддержкой SMUC (128/256/512K)
|
||
KAY-256/1024 с 64K ПЗУ
|
||
ZX Evolution
|
||
Profi 1024 ОЗУ/ПЗУ с memory mapper'ом
|
||
ATM TURBO 1 v4.50 512/1024 ОЗУ, 64-1024K ПЗУ
|
||
ATM TURBO 2+ v7.10 128/512/1024 ОЗУ, 64-1024K ПЗУ
|
||
кэш 16/32K
|
||
CMOS/часы(RTC):
|
||
советская микросхема (512ВИ1, 64 байта, 1-й день - понедельник) или
|
||
микросхема из IBM PC (DALLAS, 256 байт, 1-й день - воскресенье)
|
||
часы и энергонезависимое ОЗУ (NVRAM) (24LC16) контроллера SMUC
|
||
|
||
звук
|
||
|
||
бипер и звук магнитофона
|
||
|
||
AY-3-8910/YM2149: точная эмуляция, включая цифровой звук
|
||
и нестандартные эффекты, но параллельные порты на R14/R15 не эмулируются
|
||
|
||
Turbo-AY (Turbo-Sound): 2 микросхемы AY(или YM) по схеме PoS или NedoPC
|
||
|
||
TurboSound FM: 2 микросхемы YM2203 (6 AY каналов + 6 FM каналов)
|
||
|
||
режим 'use digital samples' (отсутствующий на реальном Спектруме):
|
||
AY-музыка через цифровой плейер - играются три сэмпла
|
||
с громкостями и частотами из соответствующих регистров AY
|
||
|
||
режим 'pseudo-turbo': 2 запараллеленных микросхемы YM со сдвигом по фазе
|
||
|
||
два ковокса - Pentagon (порт #FB) и Scorpion (порт #DD)
|
||
|
||
SounDrive
|
||
|
||
запись звука в WAV или VTX (VTX - хороший формат для AY звука, гораздо
|
||
плотнее, чем PSG, но для него требуется lha.exe где-либо в %PATH%)
|
||
|
||
General Sound - плейер MOD и звуковых эффектов через библиотеку BASS.
|
||
Можно сохранить музыку, чтобы затем слушать её во внешнем плейере
|
||
|
||
низкоуровневая эмуляция General Sound (внутренний Z80 на 12MHz,
|
||
512Kb внутреннего ОЗУ, внутренние порты и ЦАПы)
|
||
|
||
BASS даёт более высокое качество и больше каналов, чем низкоуровневая
|
||
эмуляция. Низкоуровневая эмуляция нужна для программ, подменяющих
|
||
фирменный плейер и использующих Z80 для своих целей. На практике
|
||
BASS рекомендуется для игр, а низкоуровневая эмуляция - для продвинутых
|
||
музыкальных/звуковых редакторов (RIFF tracker)
|
||
|
||
графика
|
||
|
||
множество фильтров, от быстрого simple до билинейной
|
||
фильтрации, масштабирующей спектрумовское изображение до 512x384
|
||
с 64 цветами;
|
||
фильтр 'noflic' для программ, которые быстро переключают два экрана,
|
||
чтобы получить больше цветов;
|
||
несколько чанковых фильтров для демок XIX века
|
||
|
||
замечательный фильтр 'Anti-Text64'. Предназначен для чтения прессы.
|
||
На лету заменяет шрифты 4x8 на более приятные для глаз шрифты 8x8 и 8x16
|
||
|
||
настройки Pentagon и Scorpion для мультиколорных эффектов,
|
||
причём бордер обновляется с точностью до такта
|
||
|
||
для эмуляции скорпионовских бордерных эффектов имеется режим
|
||
обновления бордера раз в 4 такта
|
||
|
||
режим nopaper для отладки бордерных эффектов
|
||
|
||
flash-color (в каждом знакоместе при включенном бите FLASH можно выбрать
|
||
один из 128 цветов ink на чёрном фоне)
|
||
|
||
режимы высокого разрешения: Pentagon 512x192, Profi 512x240, ATM
|
||
(работают только с фильтром 'double')
|
||
|
||
цветные видеорежимы ATM-TURBO (только с фильтром 'double'):
|
||
текстовый 80x25, EGA 320x200, мультиколор 640x200.
|
||
Для смены шрифта текстового режима поместите SGEN.ROM в папку unreal.
|
||
Не включайте border=none в видеорежимах ATM
|
||
|
||
режим 384x304 компьютера Pentagon [см. ZX-Guide#2, AlCoNews#32]
|
||
|
||
режим "цвет на точку" компьютера Pentagon [см. Info Guide#8, #9]
|
||
|
||
аппаратный мультиколор
|
||
|
||
порт атрибутов #FF
|
||
|
||
|
||
настройка графики и звука горячими клавишами
|
||
|
||
параметры графики (число тактов в кадре и в строке) выбираются и
|
||
настраиваются клавишами grey+, grey-, grey* на цифровой клавиатуре
|
||
|
||
t-states/frame (число тактов в кадре) позволяет подобрать скорость
|
||
в слишком быстрых (или слишком медленных) играх
|
||
|
||
комбинации alt+grey*, grey-, grey+ выбирают звуковой сопроцессор (AY/YM)
|
||
и стереорежим (ABC/ACB), или же палитру
|
||
|
||
|
||
дисковый интерфейс Beta 128
|
||
|
||
все команды контроллера ВГ93 (WD1793), включая чтение/запись дорожки
|
||
|
||
перехват чтения/записи секторов - ускорение более чем в 256 раз
|
||
|
||
|
||
магнитофон
|
||
|
||
полная поддержка TAP и TZX
|
||
|
||
поддержка CSW
|
||
|
||
выбор файла (tape browser)
|
||
|
||
автозапуск ленты при обращении к стандартной процедуре чтения
|
||
|
||
быстрая загрузка: UnrealSpeccy может распознать логику загрузчика
|
||
и ускорить его путём пропуска циклов задержек и ожидания фронтов.
|
||
Разумеется, UnrealSpeccy при этом не сбивает тайминги,
|
||
так что для быстрой загрузки требуется включить max speed (NumLock).
|
||
Таким образом, любую 128K игру можно загрузить за 10-20 секунд.
|
||
Эта хитрость разработана независимо от RAMSOFT, но похоже, что
|
||
RS 0.90.38 работает аналогичным образом.
|
||
Для действительно быстрой загрузки включите видеофильтр 'normal'
|
||
|
||
|
||
IDE
|
||
|
||
UnrealSpeccy эмулирует IDE-интерфейсы компьютеров KAY, SCORPION и ATM-2
|
||
с двумя устройствами типа жёсткий диск/CD-ROM
|
||
|
||
вместо реальных жёстких дисков можно использовать файл-образы.
|
||
CD-ROM эмулируется через реальное устройство или через виртуальное,
|
||
работающее на уровне операционной системы
|
||
|
||
эмулируемые схемы:
|
||
Nemo - контроллер для шины ZX-BUS, производившийся Nemo и NedoPC
|
||
ATM - ATM TURBO 2+ v7.10
|
||
Nemo(A8) - изменение схемы Nemo: использует A8 вместо A0, чтобы
|
||
выбирать старший/младший байт 16-разрядного слова (можно
|
||
считать сектор двумя командами INIR:INIR)
|
||
SMUC - IDE-контроллер для компьютера ZS Scorpion
|
||
|
||
модем
|
||
|
||
Внутренний ISA-модем, настроенный на COM1 (порты 03F8-03FF,
|
||
транслируемые на спектрумовские порты #F8EF-#FFEF).
|
||
Прерывание от модема (NMI на Спектруме) не эмулируется.
|
||
Требуется установить драйвер модема в Windows.
|
||
Программа ping by Kamil Karimov проверена и работает
|
||
при пустой строке инициализации модема (modem initialization string)
|
||
|
||
|
||
устройства ввода
|
||
|
||
полностью настраиваемая клавиатура
|
||
вставка текста из буфера обмена через эмуляцию спектрумовской клавиатуры
|
||
AY-mouse (мышь от КОРВЕТа, подключённая к порту A звукового сопроцессора)
|
||
kempston mouse с настраиваемой скоростью и опцией обмена кнопок,
|
||
с поддержкой колеса (D7..D4 в порту кнопок либо как клавиши UP/DOWN)
|
||
kempston joystick на клавиатуре
|
||
kempston joystick на мыши (джойстик следует за курсором мыши)
|
||
колесо и кнопки мыши можно привязать к любым клавишам
|
||
клавиатуры Спектрума или кемпстон-джойстика
|
||
джойстик для PC можно привязать к любым клавишам
|
||
клавиатуры Спектрума или кемпстон-джойстика
|
||
режим залипших клавиш (sticky keys) [взято из ZX_Emul, см. его описание]
|
||
autofire (настраиваемая клавиша, настраиваемый период)
|
||
|
||
файлы
|
||
|
||
читаются:
|
||
|
||
SP, SNA и Z80 (все версии, 48k и 128k)
|
||
TAP, TZX, CSW
|
||
FDI, TRD, SCL, TD0, UDI
|
||
если образ диска не содержит boot.B,
|
||
можно его автоматически добавлять.
|
||
Можно использовать загрузку образов дисков для
|
||
каждого из дисководов при запуске эмулятора
|
||
формат HOBETA - файл добавляется на существующий диск;
|
||
если нет диска, создаётся пустой TR-DOS диск.
|
||
Удобно грузить из командной строки:
|
||
unreal.exe prog.$B prog.$C <- будут помещены на один диск
|
||
Можно грузить хобетные файлы через меню 'F3',
|
||
но только по одному файлу
|
||
|
||
записываются:
|
||
|
||
SNA 48k и 128k
|
||
TRD, FDI, UDI
|
||
TD0 (записывается без сжатия, поэтому записанный файл, скорее всего,
|
||
будет больше считанного)
|
||
SCR, BMP (скриншоты)
|
||
WAV, VTX
|
||
|
||
|
||
преобразование форматов:
|
||
|
||
эмулятор может открыть образ диска в одном из форматов
|
||
(TRD/TD0/FDI/SCL/UDI) и записать его в другом формате
|
||
|
||
|
||
индикаторы
|
||
|
||
1. громкость/состояние AY. Белый цвет - тон, жёлтый - шум,
|
||
зелёный - огибающая; также отображаются громкости YM2203 и GS
|
||
|
||
2. индикаторы performance. Один показывает, сколько тактов Z80
|
||
прошло между двумя прерываниями. При просмотре демонстраций можно
|
||
увидеть, сколько времени занимает тот или иной эффект. Второе число -
|
||
частота кадров PC - на нормальной скорости должно быть 50.
|
||
Если оно меньше, то ваш компьютер слишком медленный, и вы слышите
|
||
искажённый звук. Выберите более быстрый видеодрайвер и фильтр,
|
||
отключите какие-нибудь устройства, увеличьте skipframe или убавьте
|
||
t-states per int. При прогоне на max speed частота кадров показывает,
|
||
насколько ваш компьютер быстр. Например, 800 fps - это в 16 раз
|
||
быстрее, чем Spectrum, и средняя игра загрузится за 20 секунд.
|
||
|
||
3. индикатор input. Показывает, какие устройства ввода опрашиваются -
|
||
клавиатура, мышь, кемпстон-джойстик. Для клавиатуры показываются
|
||
опрашиваемые полуряды. Пример: я заметил, что в интро к KOL0BOK2
|
||
активны полуряды <B>-<SPACE> и A-G. <SPACE> - это выход, но почему
|
||
программа опрашивает <A>-<G>? Я нажал <A> и увидел, что теперь
|
||
программа опрашивает <Y>-<P>. После нажатия A+P программа опрашивает
|
||
<CAPS>-<V>. После нажатия A+P+X активным остаётся только полуряд
|
||
<B>-<SPACE>. Получается, что я нашёл cheat без залезания в код!
|
||
(Можно было поставить breakpoint на чтение порта #FE и анализировать
|
||
код в этом районе)
|
||
|
||
4. индикатор loading. При записи/чтении диска эмулятор показывает
|
||
синюю/красную дискету. При форматировании дорожки дискета жёлтая.
|
||
При загрузке с магнитофона эмулятор показывает кассету и прогресс
|
||
считывания текущего блока (или 'PS' - пауза в записи)
|
||
|
||
5. local time - часы для тех, что проводит всё своё время с
|
||
виртуальным Спектрумом
|
||
|
||
6. on-screen watches - показывает банки ОЗУ и ПЗУ, использованные
|
||
в последнем кадре; вычисляет выражения, определённые пользователем
|
||
|
||
7. можно использовать лампочки на AT клавиатуре в качестве индикаторов
|
||
громкости AY каналов
|
||
|
||
|
||
индикаторы необычно окрашиваются в режиме flash-color. Это не глюк
|
||
|
||
|
||
монитор-отладчик
|
||
|
||
программа, называемая в мире PC "дебаггером", в мире Spectrum часто
|
||
носит название "монитор"
|
||
|
||
поиск текста или кода.
|
||
Использует маску: совпадение, когда ((code & mask) == (pattern & mask))
|
||
|
||
неограниченное число точек останова (breakpoints)
|
||
|
||
остановы по условию (conditional breakpoints) любой сложности,
|
||
используют Си-подобный синтаксис (через них можно реализовать останов
|
||
по чтению или записи в порт определённого значения, по определённой
|
||
команде процессора и т.п.)
|
||
|
||
остановы по обращению к памяти (по чтению/записи/исполнению указанных
|
||
областей памяти)
|
||
|
||
встроенный ассемблер/дизассемблер Z80
|
||
|
||
сохранение-загрузка областей памяти
|
||
|
||
редактор образа диска (диск-доктор)
|
||
|
||
ripper's tool: для извлечения процедур с их данными. Показывает, какие
|
||
байты были считаны/записаны, и сохраняет всё адресное пространство
|
||
процессора, забивая неиспользованные адреса указанным байтом
|
||
(по умолчанию #CF)
|
||
|
||
горячие клавиши сохранения/восстановления положения курсора в окне
|
||
дизассемблера
|
||
|
||
горячие клавиши перехода по адресу, указанному в команде - в окно
|
||
дизассемблера или в окно дампа
|
||
|
||
on-screen watches: показывают области памяти, адресованные
|
||
регистровыми парами
|
||
|
||
|
||
графический интерфейс (GUI)
|
||
|
||
все настройки, имеющиеся в INI-файле, можно изменять в GUI
|
||
(но они не сохраняются, для постоянного изменения редактируйте INI-файл)
|
||
|
||
легко вводимые POKE, если вы не хотите использовать монитор или
|
||
шестнадцатеричную систему счисления. Разделители чисел - пробел,
|
||
запятая, двоеточие, точка с запятой - так что можно копировать POKE
|
||
прямо из коллекций cheat'ов
|
||
|
||
чтение из архивов. Поддержаны: CAB,ZIP,RAR.
|
||
Можете добавить свои архиваторы в INI файле
|
||
|
||
----------------------------------------------------------------------
|
||
|
||
требования к системе
|
||
|
||
Windows 95 и выше, либо NT (не проверялось).
|
||
Для работы с реальным HDD требуется Windows 2000/XP/2003.
|
||
|
||
|
||
для работы UnrealSpeccy требуется:
|
||
|
||
Pentium-166 CPU MMX для минимального функционирования
|
||
Celeron-266 CPU для режимов высокого разрешения
|
||
Profi/Pentagon/ATM/Anti-Text64
|
||
Celeron-400 CPU для низкоуровневой эмуляции GS
|
||
UnrealSpeccy занимает всего 12Mb ОЗУ, так что
|
||
если Windows запустился, то памяти хватает
|
||
видеокарта с 2D ускорителем, поддерживающая video overlays и
|
||
color keying for overlay modes
|
||
видеокарта с 3D ускорителем для hardware chunky bilinear filter
|
||
2 Mb видеопамяти в полноэкранном режиме (fullscreen)
|
||
4 Mb видеопамяти в оконном режиме (windowed)
|
||
16-битная звуковая карта [не обязательна, но рекомендуется]
|
||
|
||
|
||
Если вы имеете соответствующее железо, но эмулятор тормозит,
|
||
то попробуйте следующее:
|
||
|
||
0. установите свежий directX и свежие дрова видеокарты
|
||
1. увеличьте размер sound buffer (особенно для Win95) в INI-файле
|
||
2. выберите video filter='small', video driver='ddraw'
|
||
3. отключите vsync
|
||
4. установите 'ShareCPU=0' в INI-файле
|
||
5. отключите низкоуровневую эмуляцию General Sound
|
||
6. отключите YM2203
|
||
7. установите 'skipframe=4' в INI-файле
|
||
8. установите 'Frame=30000' в INI-файле
|
||
(если больше ничего не помогает)
|
||
9. отключите звук (без звука эмулятор работает значительно быстрее)
|
||
|
||
Это должно помочь
|
||
|
||
----------------------------------------------------------------------
|
||
|
||
параметры командной строки
|
||
|
||
можно запускать эмулятор, указав следующие параметры командной строки:
|
||
|
||
/i <файл> указать собственный файл конфигурации, по умолчанию:
|
||
имя_исполняемого_файла_эмулятора_без_расширения.ini
|
||
/l <файл> указать файл меток, по умолчанию: user.l
|
||
/b <файл> указать файл ловушек, по умолчанию: bpx.ini
|
||
|
||
кроме того после параметров можно указать список файлов, поддерживаемых
|
||
эмулятором форматов для загрузки.
|
||
|
||
----------------------------------------------------------------------
|
||
|
||
управляющие клавиши эмулятора
|
||
|
||
перечислены клавиши по умолчанию, их можно сменить в INI-файле
|
||
|
||
Ctrl-F1 монитор-отладчик
|
||
Shift-ESC для оконного режима: отдать мышь эмулятору или системе
|
||
Alt-F1 помощь по клавишам
|
||
F1 настройки/GUI
|
||
F2 записать снапшот/образ диска
|
||
Alt-F2 записать снапшот qsave1.sna
|
||
Ctrl-F2 записать снапшот qsave2.sna
|
||
Shift-F2 записать снапшот qsave3.sna
|
||
F3 загрузить снапшот/образ ленты/образ диска
|
||
Alt-F3 загрузить снапшот qsave1.sna
|
||
Ctrl-F3 загрузить снапшот qsave2.sna
|
||
Shift-F3 загрузить снапшот qsave3.sna
|
||
(SHIFT+)F4 выбрать видеодрайвер (фильтр)
|
||
Alt-F4 выход из эмулятора
|
||
F5 начать/закончить сохранение звука (WAV или VTX).
|
||
Можно использовать из монитора: установите точки останова на
|
||
начальных/конечных процедурах и записывайте;
|
||
при записи vtx убираются паузы в начале и конце
|
||
F6 ввести POKE (одно или много)
|
||
Alt-F6 поиск изменённых значений в памяти (для cheat'ов и т.п.)
|
||
F7 запустить/остановить ленту
|
||
Shift-F7 выбор файла на ленте (tape browser)
|
||
Alt-F8 записать скриншот
|
||
F9 сохранить все изменённые образы диска и содержимое CMOS-часов
|
||
Alt-Shift-F11 NMI
|
||
Alt-F11 NMI в кэш
|
||
Ctrl-F11 NMI в TR-DOS ("magic")
|
||
F12 сброс в режиме по умолчанию, указанном в INI
|
||
Ctrl-Shift-F12 сброс в 128 бейсик
|
||
Ctrl-F12 сброс в TR-DOS (128)
|
||
Shift-F12 сброс в 48 бейсик с открытой верхней памятью
|
||
Alt-Shift-F12 сброс в 48 бейсик в режиме 48k
|
||
Alt-F12 сброс в системную страницу ПЗУ
|
||
Ctrl-Alt-F12 сброс в кэш
|
||
pause/break пауза
|
||
grey/ индикаторы on/off
|
||
grey* выбор параметра для изменения: t-states/int (скорость), fix...
|
||
Alt+grey* выбор параметра для изменения: AY/палитра
|
||
grey+,grey- настройка выбранного параметра (с SHIFT'ом более тонкая)
|
||
NumLock максимальная скорость (max speed) on/off (в max speed нет звука)
|
||
Alt-NumLock autofire on/off
|
||
Alt-Ctrl-Z on/off контроллер клавиатуры XT(AT) компьютера ATM
|
||
Alt-Enter полноэкранный режим on/off
|
||
Alt-Shift-Ins вставить текст из буфера обмена через эмуляцию клавиатуры Спектрума
|
||
Alt-1 установить размер окна 1x в оконном режиме
|
||
Alt-2 установить размер окна 2x, полезно для режимов, использующих
|
||
графический ускоритель, таких как overlay и blitter
|
||
Alt-3 максимизировать окно
|
||
|
||
|
||
клавиши в мониторе-отладчике
|
||
|
||
(CTRL,SHIFT,ALT+)F1,F2,F3,F5,F11,F12 - см. выше
|
||
Ctrl-F1 выход из монитора в программу
|
||
F7 шаг (выполнить одну команду процессора)
|
||
F8 шаг без трассировки подпрограмм и циклов
|
||
F9 показать экран Спектрума
|
||
Shift-F9 показать неактивный экран 128k Спектрума
|
||
Alt-F9 показать экран до текущей отрисованной точки, с бордером,
|
||
мультиколорами и двухэкранными эффектами
|
||
F11 запустить программу с остановом в точке (SP)
|
||
TAB следующая панель
|
||
SHIFT-TAB предыдущая панель
|
||
Alt-D переключение текст/дамп
|
||
Alt-B изменить значение в порту 7FFD (выбор банка / экрана)
|
||
Alt-M изменить значение дополнительного порта памяти (#1FFD,#FDFD,#DFFD,...)
|
||
Alt-P ввести POKE (одно или много)
|
||
Alt-F6 поиск изменённых значений в памяти (для cheat'ов и т.п.)
|
||
Alt-R загрузить область памяти из файла
|
||
Alt-W записать область памяти в файл
|
||
Alt-F заполнить область памяти указанной последовательностью
|
||
(чтобы скопировать область памяти, запишите её, потом загрузите)
|
||
Alt-G состояние General Sound (двойной щелчок мышью - играть сэмпл)
|
||
Alt-T выдиралка процедур (ripper's tool)
|
||
Alt-O настройка on-screen watches
|
||
Alt-U дизассемблирование в файл
|
||
Alt-S переключение скриншот (отрисованный с мультиколорами и т.п.) /
|
||
дамп экрана (изображение экранной памяти) / watches
|
||
Alt-F отрендерить текущий кадр в видеобуфер без мультиколорных
|
||
эффектов и т.п.
|
||
Ctrl-U установить произвольный адрес для watch
|
||
Ctrl-L показ меток, видимых для Z80 в текущем состоянии диспетчера памяти
|
||
Ctrl-J переход по меткам
|
||
Alt-C менеджер точек останова (breakpoints)
|
||
Alt-Y переключить активный звуковой сопроцессор в режиме Turbo-Sound
|
||
|
||
|
||
менеджер точек останова оперирует тремя типами точек останова:
|
||
|
||
1. условные остановы (conditional breakpoints) и on-screen watches
|
||
используют Си-подобный синтаксис выражений.
|
||
|
||
операции (перечислены в порядке убывания приоритета):
|
||
() ! ~ M(x) -> * % / + - >> << > < == = <= >= != & ^ | && ||
|
||
операнды:
|
||
a,b,c,d,e,h,l,bc,de,hl - основной набор регистров
|
||
a',b',c',d',e',h',l',bc',de',hl' - альтернативный набор регистров
|
||
ix,iy,pc,sp,i,r - прочие регистры
|
||
FD - порт памяти #FD (также известен как #7FFD)
|
||
PG0, PG1, PG2, PG3 - регистры страниц для TS-conf для окон #0000, #4000, #8000, #C000
|
||
OUT - порт, использованный в команде OUT (или 0FFFFFFFF, если OUT не было)
|
||
IN - порт, использованный в команде IN (или 0FFFFFFFF, если IN не было)
|
||
VAL - значение, считанное/записанное в порт (имеет смысл, только
|
||
если OUT или IN != 0FFFFFFFF)
|
||
RD - адрес памяти из которого производилось чтение
|
||
WR - адрес памяти в который производилась запись
|
||
MDT - значение, считанное/записанное в память
|
||
|
||
числа - шестнадцатеричные, должны начинаться с цифры: DFFD - нельзя, 0DFFD - можно
|
||
коды символов - заключаются в апострофы ('A','B' и т.п.)
|
||
Все вычисления производятся в 32-битной беззнаковой целой арифметике.
|
||
Если вы плохо знакомы с Си, ставьте скобки, где возможно,
|
||
т.к. приоритет операций неинтуитивен, например:
|
||
out & 0FF == 0FE понимается как 'out & (0FF == 0FE)' <- всегда 0
|
||
|
||
M(x) - байт, считанный из адреса x (можно записать как x->0)
|
||
'=' - то же, что '==' (для паскалистов)
|
||
|
||
Примеры:
|
||
|
||
(out+1) | (in+1) - IN/OUT в любой порт
|
||
(in & 8001) == 0 - чтение клавиш от <B> до <SPACE>
|
||
!(out & 1) - любой вывод в порт #FE
|
||
(out & 0FF)==0BB && (val==0F3 || val==0F4) - сброс General Sound
|
||
(out & 0FF)==0FD && (val&7)==3 - установка 3-й банки памяти
|
||
(FD & 7) == 3 - то же самое
|
||
M(pc)==0CB && pc->1 >= 10 && pc->1 <= 17
|
||
- останавливается во время выполнения команды RL <reg>
|
||
|
||
Надеюсь, этих примеров достаточно для понимания идеи
|
||
|
||
Чтобы редактировать точку останова, щёлкните на ней мышью два раза
|
||
|
||
2. точки останова по адресам (также ставятся в окне дизассемблера кнопкой
|
||
"пробел"). В окне менеджера точек останова легко расставить точки
|
||
останова на большой диапазон памяти, например, 6000-FFFF
|
||
|
||
3. остановы по чтению/записи памяти. Похожи на остановы по адресам,
|
||
но имеют флаги "R" и "W", означающие останов по чтению/записи
|
||
указанных адресов памяти (можно установить оба флага)
|
||
|
||
|
||
монитор: окно регистров
|
||
|
||
стрелки выбор регистра
|
||
ENTER,0-F изменение значения регистра
|
||
Ctrl+A,F,B,D,H,S,P,X,Y,I,R,M,1,2
|
||
изменить A,F,BC,DE,HL,SP,PC,IX,IY,I,R,IM,IFF1,IFF2
|
||
Alt+S,Z,5,H,3,P,N,C
|
||
переключить соответствующий флаг
|
||
' перейти в панель дизассемблера к адресу под курсором
|
||
; перейти в панель дампа к адресу под курсором
|
||
|
||
|
||
монитор: панель дизассемблера (CPU window)
|
||
|
||
F4 выполнение программы до адреса под курсором
|
||
Alt-F7 поиск текста
|
||
Ctrl-F7 поиск кодов с учётом маски
|
||
HOME перейти на адрес PC
|
||
Ctrl-G перейти на указанный адрес
|
||
SPACE установить/снять точку останова под курсором
|
||
ENTER редактировать команду Z80, её код или текущий адрес
|
||
A-X ввести команду Z80
|
||
Z установить PC на адрес под курсором
|
||
Ctrl-1,.,Ctrl-8 запомнить адрес курсора в спецячейку 1..8
|
||
1-8 запомнить адрес курсора в спецстеке и перейти к адресу,
|
||
ранее запомненному в спецячейке 1..8
|
||
Backspace вернуть курсор по запомненному в спецстеке адресу
|
||
' запомнить адрес курсора в спецстеке и перейти в панели
|
||
дизассемблера к адресу, указанному в команде под курсором
|
||
; перейти из панели дизассемблера в панель дампа
|
||
к адресу, указанному в команде под курсором
|
||
Ctrl-A чтение меток из XAS или ALASM, используя 3 метода:
|
||
1. XAS7: ассемблер должен лежать в банке 6 (или #46 для Pentagon-512)
|
||
2. ALASM: версия 4.42-5.0x должна лежать в 128k памяти (банки 1-7)
|
||
3. ALASM+STS: STS должен лежать в банке 7 (или #47 для Pentagon-512)
|
||
|
||
|
||
монитор: окно дампа (memory window)
|
||
|
||
Alt-F7 поиск текста в памяти / дорожке диска
|
||
Ctrl-F7 поиск кодов с учётом маски в памяти / дорожке диска
|
||
стрелки,Home,End,PgUp,PgDn движение курсора
|
||
Ctrl-G перейти на указанный адрес
|
||
Ctrl-M включить редактирование памяти
|
||
Ctrl-V включить редактирование диска (физической дорожки)
|
||
Ctrl-O включить редактирование диска (логических секторов)
|
||
Ctrl-T выбор диска/дорожки/сектора при редактировании диска
|
||
Ctrl-TAB переход между дампом и текстом
|
||
Ctrl+S,P,B,D,H,X,Y перейти по адресу SP,PC,BC,DE,HL,IX,IY
|
||
прочие клавиши редактирование
|
||
|
||
монитор: панель дискового интерфейса Beta 128
|
||
|
||
здесь обычный набор индикаторов дискового контроллера
|
||
CD:1820
|
||
STAT:21
|
||
SECT:09
|
||
T:01/01
|
||
S:3C/00
|
||
|
||
первая строка - команда и регистр данных (1820 - переход к дорожке #20)
|
||
2-я - регистр состояния (status)
|
||
3-я - регистр сектора
|
||
4-я - реальное положение головки дисковода и содержимое регистра дорожки
|
||
5-я - системный регистр Beta disk и порт для чтения DRQ/INTRQ (порт #ff)
|
||
|
||
----------------------------------------------------------------------
|
||
|
||
несовместимость
|
||
|
||
|
||
некоторые программы, такие как Manic Miner и Lode Runner, требуют
|
||
старое 48K ПЗУ (1982.rom), некоторые другие требуют ПЗУ от
|
||
ZX Spectrum 128 (48for128.rom + 128tr!.rom)
|
||
|
||
некоторые TR-DOS программы (Unreal Megademo by KSA, Street Fighter)
|
||
работают только если перехват процедур TR-DOS (TR-DOS traps) выключен
|
||
и включены задержки (delays)
|
||
|
||
сервисное ПЗУ Profi работает только при включенных задержках TR-DOS
|
||
|
||
Bumpy не работает в конфигурации по умолчанию, т.к. пытается читать
|
||
кемпстон-джойстик через порт #FFDF - выключайте kempston mouse перед
|
||
запуском этой игры [bug found by Paul Pavlov]
|
||
|
||
sounddrv=wave не работает на CTSB128PCI (Creative Sound Blaster)
|
||
из-за глюка в драйверах этой звуковой карты. [bug found by Nuts]
|
||
|
||
некоторые адвентюры, созданные в ABS (ALIEN.SCL, LENIN.SCL) не работают на
|
||
TR-DOS 5.04TM, используйте версию 5.03 - самую совместимую [bug found by Paul Pavlov]
|
||
|
||
Vixen 1,2,3 - несовместимы с SounDrive [bug found by Paul Pavlov]
|
||
Fernandez - несовместимо с SounDrive [bug found by Shadow Maker]
|
||
|
||
port #FF иногда не отвечает при SkipFrame!=0
|
||
(то же самое при SkipFrameMaxSpeed!=0 в режиме max speed)
|
||
|
||
Кнопка 'MAGIC' на компьютере Scorpion генерирует NMI даже при PC < #4000,
|
||
но теневой монитор не рассчитан на это и может сглючить
|
||
|
||
CacheVox by AlCo требует включения TR-DOS задержек и [BETA128] IL=1
|
||
|
||
Если в эмуляторе после возвращения фокуса залипает клавиша, следует нажать
|
||
Scroll Lock, деактивировать мерцающую клавишу, потом снова нажать
|
||
Scroll Lock.
|
||
|
||
Если в эмуляторе после возвращения фокуса неадекватно работают управляющие
|
||
клавиши, следует нажать Enter, и работа клавиш исправится.
|
||
|
||
Если эмулятор виснет при работе с General Sound, попробуйте DSPrimary=0.
|
||
|
||
Если эмулятор вываливается при работе с General Sound, попробуйте GSType=Z80.
|
||
|
||
Если Kempston Joystick не работает, войдите в меню, нажмите там NumLock,
|
||
затем вернитесь из меню.
|
||
|
||
Если звук плохой, попробуйте в .ini DSPrimary=1 (эмулятор может при этом
|
||
неожиденно закрываться!) или SoundDrv=wave.
|
||
|
||
Скриншоты кладутся в каталог эмулятора.
|
||
Чтение-запись файла в отладчике - в текущем каталоге (который видно по F3).
|
||
|
||
Качайте sys.trd (для дисковода B:) с http://alonecoder.narod.ru/zx/SYS.rar
|
||
Качайте xBIOS для ATM Turbo2+ с http://atmturbo.nedopc.com/
|
||
Возьмите WNASPI32.DLL из Ahead Nero или с веб-сайта Ahead
|
||
|
||
BASS.DLL v2.3 взят с http://www.un4seen.com/
|
||
|
||
----------------------------------------------------------------------
|
||
|
||
приветы от SMT:
|
||
|
||
* dj.Z, IMP и MIC - мне очень нравится ваша музыка !
|
||
* Nik-O и Fatal Snipe - за верность AY сцене
|
||
* Hacker KAY - спасибо за самую точную информацию про AY/YM
|
||
* Paul Pavlov - собрал самый (сейчас уже не самый) большой TR-DOS архив
|
||
* Raul Gomez Sanchez (автор R80)
|
||
* Stalker - спасибо за STS
|
||
* Placebo, Extreme, Digital Reality, CBS - за качественные демки
|
||
* V_Soft (Roman Scherbakov) - за формат Vortex
|
||
* Sergey Bulba - за AY_Emul
|
||
* Alone Coder - you keep Spectrum alive
|
||
* Ian Luck - спасибо за BASS
|
||
* SirX - просто привет
|
||
* всем фанатам ZX Spectrum - Speccy is da best!
|
||
|
||
|
||
особая благодарность людям, заинтересованным в развитии UnrealSpeccy и
|
||
присылавшим информацию о железе и софте:
|
||
|
||
* Maxim Vasilyev - присылал много багрепортов
|
||
* Mac Buster - информация про дисковый интерфейс Beta 128
|
||
* Shiru Otaku - прислал GSPAK.ZIP
|
||
* Alexey Kravchenko - прислал скорпионовские тайминги
|
||
* Vitaliy Pigo - тестирование и замеры скорости
|
||
* Alex Baskakov - помог с форматом TD0
|
||
* Alone Coder - прислал много информации о пентагоновском железе
|
||
* Dexus - интегрировал поддержку YM2203
|
||
* Maksagor - информация про ATM
|
||
* многие другие, кто присылал письма с благодарностями/предложениями и т.п.
|
||
|
||
----------------------------------------------------------------------
|
||
|
||
лицензия
|
||
|
||
UnrealSpeccy распространяется совершенно свободно. Вы можете
|
||
использовать эмулятор и его исходники без всяких ограничений.
|
||
Вы можете использовать исходники UnrealSpeccy в своих эмуляторах.
|
||
Вы можете выпускать исправленные/новые версии UnrealSpeccy.
|
||
В этом случае вы не обязаны распространять исходный код (в отличие,
|
||
например, от требований GNU Public License).
|
||
Вы можете портировать эмулятор на любую другую платформу
|
||
(но здесь много специфических для MSVC конструкций языка,
|
||
поэтому сборка другим компилятором затруднительна)
|
||
|
||
|
||
|