Просмотр полной версии : CBSpeccy sources.... (for Amiga)
max_iwamoto
20.02.2007, 08:42
Enjoy!
Max
написал здесь www.amiga.org.ru/article.php?sid=7720 , ждём реакции.
Enjoy!
Max
Горячий привет из славного города Самары!
Х.з. когда ещё такая возможность появится, поэтому спрошу сейчас:
У меня А1200 с Апполо 060, версия CBSpeccy 0.25b.
Эмулятор при наличии стандартных ПЗУ виснет сразу, но если поставить другие прошивки Бэйсик-128 (NeOS, Gluk), то всё нормально работает. Хотелось бы знать, где копать.
А выкладываемая версия как на 060 работает?
max_iwamoto
20.02.2007, 21:14
Горячий привет из славного города Самары!
Х.з. когда ещё такая возможность появится, поэтому спрошу сейчас:
У меня А1200 с Апполо 060, версия CBSpeccy 0.25b.
Эмулятор при наличии стандартных ПЗУ виснет сразу, но если поставить другие прошивки Бэйсик-128 (NeOS, Gluk), то всё нормально работает. Хотелось бы знать, где копать.
А выкладываемая версия как на 060 работает?
Я не думаю, что выкладываемая версия сильно отличается от .25, ъхтоя там было исправлено определение процессора.
Копать надо в том месте, где патчится ПЗУ.
В свое время я копался в CBSpeccy.
Сделано весьма оптимально - использует MMU, причем не дружественно с системой (задействованы адреса 0-й страницы для убыстрения доступа к памяти).
Кроме того, накосячили с кэшем, из-за чего паттерны эмуляции команд грузятся в одно и то же место, перегружая друг друга, понижая быстродействие эмуля в целом.
:v2_blush:
max_iwamoto
21.02.2007, 06:59
В свое время я копался в CBSpeccy.
Сделано весьма оптимально - использует MMU, причем не дружественно с системой (задействованы адреса 0-й страницы для убыстрения доступа к памяти).
Кроме того, накосячили с кэшем, из-за чего паттерны эмуляции команд грузятся в одно и то же место, перегружая друг друга, понижая быстродействие эмуля в целом.
:v2_blush:
С кэшум как раз все очень наоборот. Я не помню всех подробностей, но все команды идут с четных адресов, расположение кода эмуляции команд процессора с адресов кратных 256 и т.д.
Хотя затачивали под 68030, могли забыть подправить под 68040 (или наоборот). Так что в одном из вариантов доктор Титус прав. Но это все равно была уже оптимизация оптимизации. Сам код эмуляции был отлажен очень неплохо (по тактам), все команды протестированы + все недокументированные команды тоже включены.
С кэшум как раз все очень наоборот. Я не помню всех подробностей, но все команды идут с четных адресов, расположение кода эмуляции команд процессора с адресов кратных 256 и т.д.
Хотя затачивали под 68030, могли забыть подправить под 68040 (или наоборот). Так что в одном из вариантов доктор Титус прав. Но это все равно была уже оптимизация оптимизации. Сам код эмуляции был отлажен очень неплохо (по тактам), все команды протестированы + все недокументированные команды тоже включены.
Вот эта выровненность на 256 байт им и вредит. Кэш на 030, например, 256 байтный, и все команды лежащие по адресам, например, 0x0000, 0x0100, 0x0200 и т.д. лягут в одно и то же место кэша, перегружая тем самым друг друга. На 040 не особо лучше.
Недокументированные команды (флаги) тоже реализованны партиально.
Но вообще, ругаться на эмуль не хочу, т.к. сам им пользовался :v2_blush:
Копать надо в том месте, где патчится ПЗУ.
Там ПЗУ сразу после загузки патчится. А, вообще, с какой целью?
max_iwamoto
22.02.2007, 01:23
Недокументированные команды (флаги) тоже реализованны партиально.
Wse komandy emulatsya cherez tablicy. Wse flagi 100% original Z80... Privedi primer? chto ne 100% emuliruet flagi?
Wse komandy emulatsya cherez tablicy. Wse flagi 100% original Z80... Privedi primer? chto ne 100% emuliruet flagi?
Ну, не говоря уже о MEMPTR, помню на вскидку, что у add hl,dd не все флаги эмулировались (или это была adc, уже не помню)
max_iwamoto
22.02.2007, 07:02
Ну, не говоря уже о MEMPTR, помню на вскидку, что у add hl,dd не все флаги эмулировались (или это была adc, уже не помню)
Da, moget byt' ty i praw. add ili adc (a moget i obe) zanimali mnogo taktow i tablica ne wlazila. No eto wsego 1-2 komandy. Nado posmotret'. Mne samomu stalo interesno.
а вот интересно учтена ли эмуляция LD A,R
иногда эта команда неверно устанавливает бит P/V, и, во-вторых, — что это происходит в момент прихода прерывания, а не когда угодно...
подробности в статье Рощина:
http://ivr.webzone.ru/articles/ldar_new/index.htm
max_iwamoto
22.02.2007, 19:02
а вот интересно учтена ли эмуляция LD A,R
LD A,R 100%. Ya wcera smotrel sources. Tam na protiv kagdoj komandy stoit ++ ili +N. Ya ne pomnu chto eto oznachaet, no pomoemu ++ ya pomechal 100% emulayacii komandy i wseh flagow.
если это запустить из TR-DOS эмулятор CBSpeccy 0.25 зависнит :v2_cry:
http://crank79.narod.ru/A1200_reboot.zip
мне хотелось бы увидеть новую рабучую версию эмулятора на winUAE
max_iwamoto
23.02.2007, 17:55
если это запустить из TR-DOS эмулятор CBSpeccy 0.25 зависнит
A esli podstawit' drugie roms?
мне хотелось бы увидеть новую рабучую версию эмулятора на winUAE
А зачем ехать в Киев через Магадан? CBSpeccy проект сам в себе, не эмулирующий полноценно спекки (оно от него не требовалось, требовоалось влезть в быстродействие 68030), и вряд ли кто-либо его будет дописывать.
А для работы на WinUAE нужно, как минимум, правильно эмулируемое MMU и не только...
если это запустить из TR-DOS эмулятор CBSpeccy 0.25 зависнит
не удаётся скачать "это"
у меня тоже из под Inernet Explorer сначала не получалось скачать. вылетело окошко об ошибке, я нажал зеленую кнопочку "Переход" и файл скачался. Попробуй несколько раз, этот файл там лежит.
A esli podstawit' drugie roms?
не пробывал
A esli podstawit' drugie roms?
По поводу других ромок я рано обрадовался:
через ПЗУ "NeOS" у меня успешно стартовал ТРДОС-128 и Протрэкер, который бутом был прописан. Однако когда я попробовал запустить игру "Run away2", эмуль повис намертво на стадии начала перерисовки
заставки ТРДОС.
"Inferno Guide-6" запустился нормально, но после окончания интро повис.
Что делать?
Что интересно, на 030 всё идет без проблем.
И ещё:
1. из под ОС 3.9 не запускается вообще. :(
2. портится содержимое диска "B".
диск В портится если подставлять TAP/TZX, образ ленты ставится на образ диска.
сли это запустить из TR-DOS эмулятор CBSpeccy 0.25 зависнит
проверил v0.25b аксель Blizzard 1230-IV, ничего с амигой не случилось :v2_tong2:
max_iwamoto
25.02.2007, 04:41
И ещё:
1. из под ОС 3.9 не запускается вообще.
2. портится содержимое диска "B".
Я не знаю про ОС3.9, но то что TZX портит диск Б - это нормально. Это было сделано временно, а потом так и не убрали и не выпустили новую версию.
проверил v0.25b аксель Blizzard 1230-IV, ничего с амигой не случилось :v2_tong2:
странно, с таким же акселем запускал - амига зависала, в систему по F10 выйти не получалось, приходилось ребутить систему.
max_iwamoto
25.02.2007, 23:52
странно, с таким же акселем запускал - амига зависала, в систему по F10 выйти не получалось, приходилось ребутить систему.
Значит дело не CBSpeccy!
Кстати, из-за своего весьма вольного обращения с системой, CBSpeccy достаточно глючная вещь. Неоднократно наблюдал слетание PFS при использовании эмуля :-)
у меня частенько обнулялись часы, кажется тоже из-за эмуля.
вот комплект эмулятора которым я пользовался
http://crank79.narod.ru/CBSpeccy025_Crank79.zip
проверил, вроде всё нормально, может дело в проге NewMode, сейчас у меня моник VGA, экран в эмуле DBLPAL:LowRes
самый простой вариант проверить на пустой системе, без всяких довесков
acidrain
27.02.2007, 00:19
странно, с таким же акселем запускал - амига зависала, в систему по F10 выйти не получалось, приходилось ребутить систему.
Вот именно - странно, что она не запускалась. у меня на 030 работала замечательно. Помоему даже на 603е с 040 на борту пользовался без проблем...
эмулятор работал, но иногда зависал, этим архивом я пользовался и эмулятор естесстно работал.
были случаи - выбираю FRZ, затем очень быстро нажимаю Start, файл полностью еще не успел скачаться, а эмулятор уже стартовал )), в итоге вижу грустную картину - черный экран с дискеткой в углу. в систему вернуться нельзя, нужно ребутить
acidrain
27.02.2007, 15:10
нужно ребутить
А комбинацию кнопок попробуй - RA-M и не надо ребутить. Помоему даже в этом емуле кнопари эти работают. просто надо знать чуть больше об амиге ;)))
А комбинацию кнопок попробуй - RA-M и не надо ребутить. Помоему даже в этом емуле кнопари эти работают. просто надо знать чуть больше об амиге ;)))
Если эмуль отключает систему полностью, то НИКАКИЕ системные кнопки работать не будут
Ну что, кто-нибудь уже пофиксил эмуль по 060? Или хотя бы знает как это сделать?
Ну что, кто-нибудь уже пофиксил эмуль по 060? Или хотя бы знает как это сделать?
думаю нет. ибо не слышно ни от кого.
Кто-нибудь может объяснить толком, почему не работтает на 060?
На 040 и 060 одинаковые MMU (почти), только на 060 трансляционные таблицы не должны находится в COPYBACK-памяти. У меня же по дефолту вся память COPYBACK и при этом трансляция работает(!). значит, не из-за этого.
Никак не "въеду", как в эмуле трансляционные таблицы генерятся/изменяются: он оперирует с адресами, кратными 16К, а 060/040 MMU понимает только 4 и 8К.
Это просто «абзац»: стояли у меня muTools, причём вполне безобидно. Их автор чуть ли не божился, что с его и только с его 68060.library на 060-амигах заработает VMM. – Взял поставил, блин. После очередного безуспешного запуска почти все программы стали вылетать по suspend/reboot. Я посмотрел регистры:
SRP и URP установлены, но TC=0(!), т.е. трансляция адресов запрещена. Хотя раньше, при нормально работающей системе, TC был 0x8000. Интересно, вот что у меня в системе изменилось, что перестало включать E-флаг в TC?!
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot