PDA

Просмотр полной версии : CBSpeccy sources.... (for Amiga)



max_iwamoto
20.02.2007, 08:42
Enjoy!

Max

Vinnny
20.02.2007, 10:08
написал здесь www.amiga.org.ru/article.php?sid=7720 , ждём реакции.

Sergey
20.02.2007, 16:41
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, ъхтоя там было исправлено определение процессора.

Копать надо в том месте, где патчится ПЗУ.

Titus
21.02.2007, 02:49
В свое время я копался в CBSpeccy.
Сделано весьма оптимально - использует MMU, причем не дружественно с системой (задействованы адреса 0-й страницы для убыстрения доступа к памяти).
Кроме того, накосячили с кэшем, из-за чего паттерны эмуляции команд грузятся в одно и то же место, перегружая друг друга, понижая быстродействие эмуля в целом.
:v2_blush:

max_iwamoto
21.02.2007, 06:59
В свое время я копался в CBSpeccy.
Сделано весьма оптимально - использует MMU, причем не дружественно с системой (задействованы адреса 0-й страницы для убыстрения доступа к памяти).
Кроме того, накосячили с кэшем, из-за чего паттерны эмуляции команд грузятся в одно и то же место, перегружая друг друга, понижая быстродействие эмуля в целом.
:v2_blush:

С кэшум как раз все очень наоборот. Я не помню всех подробностей, но все команды идут с четных адресов, расположение кода эмуляции команд процессора с адресов кратных 256 и т.д.
Хотя затачивали под 68030, могли забыть подправить под 68040 (или наоборот). Так что в одном из вариантов доктор Титус прав. Но это все равно была уже оптимизация оптимизации. Сам код эмуляции был отлажен очень неплохо (по тактам), все команды протестированы + все недокументированные команды тоже включены.

Titus
21.02.2007, 08:30
С кэшум как раз все очень наоборот. Я не помню всех подробностей, но все команды идут с четных адресов, расположение кода эмуляции команд процессора с адресов кратных 256 и т.д.
Хотя затачивали под 68030, могли забыть подправить под 68040 (или наоборот). Так что в одном из вариантов доктор Титус прав. Но это все равно была уже оптимизация оптимизации. Сам код эмуляции был отлажен очень неплохо (по тактам), все команды протестированы + все недокументированные команды тоже включены.

Вот эта выровненность на 256 байт им и вредит. Кэш на 030, например, 256 байтный, и все команды лежащие по адресам, например, 0x0000, 0x0100, 0x0200 и т.д. лягут в одно и то же место кэша, перегружая тем самым друг друга. На 040 не особо лучше.
Недокументированные команды (флаги) тоже реализованны партиально.
Но вообще, ругаться на эмуль не хочу, т.к. сам им пользовался :v2_blush:

Sergey
21.02.2007, 12:03
Копать надо в том месте, где патчится ПЗУ.
Там ПЗУ сразу после загузки патчится. А, вообще, с какой целью?

max_iwamoto
22.02.2007, 01:23
Недокументированные команды (флаги) тоже реализованны партиально.

Wse komandy emulatsya cherez tablicy. Wse flagi 100% original Z80... Privedi primer? chto ne 100% emuliruet flagi?

Titus
22.02.2007, 03:21
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.

daniel
22.02.2007, 08:50
а вот интересно учтена ли эмуляция 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.

Crank79
23.02.2007, 17:30
если это запустить из 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?

Titus
23.02.2007, 18:18
мне хотелось бы увидеть новую рабучую версию эмулятора на winUAE

А зачем ехать в Киев через Магадан? CBSpeccy проект сам в себе, не эмулирующий полноценно спекки (оно от него не требовалось, требовоалось влезть в быстродействие 68030), и вряд ли кто-либо его будет дописывать.

А для работы на WinUAE нужно, как минимум, правильно эмулируемое MMU и не только...

goodboy
23.02.2007, 18:21
если это запустить из TR-DOS эмулятор CBSpeccy 0.25 зависнит

не удаётся скачать "это"

Crank79
24.02.2007, 08:29
у меня тоже из под Inernet Explorer сначала не получалось скачать. вылетело окошко об ошибке, я нажал зеленую кнопочку "Переход" и файл скачался. Попробуй несколько раз, этот файл там лежит.

Crank79
24.02.2007, 08:32
A esli podstawit' drugie roms?

не пробывал

Sergey
24.02.2007, 17:45
A esli podstawit' drugie roms?
По поводу других ромок я рано обрадовался:
через ПЗУ "NeOS" у меня успешно стартовал ТРДОС-128 и Протрэкер, который бутом был прописан. Однако когда я попробовал запустить игру "Run away2", эмуль повис намертво на стадии начала перерисовки
заставки ТРДОС.
"Inferno Guide-6" запустился нормально, но после окончания интро повис.
Что делать?
Что интересно, на 030 всё идет без проблем.

И ещё:
1. из под ОС 3.9 не запускается вообще. :(
2. портится содержимое диска "B".

goodboy
24.02.2007, 18:25
диск В портится если подставлять TAP/TZX, образ ленты ставится на образ диска.

goodboy
25.02.2007, 00:00
сли это запустить из 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 портит диск Б - это нормально. Это было сделано временно, а потом так и не убрали и не выпустили новую версию.

Crank79
25.02.2007, 14:11
проверил v0.25b аксель Blizzard 1230-IV, ничего с амигой не случилось :v2_tong2:

странно, с таким же акселем запускал - амига зависала, в систему по F10 выйти не получалось, приходилось ребутить систему.

max_iwamoto
25.02.2007, 23:52
странно, с таким же акселем запускал - амига зависала, в систему по F10 выйти не получалось, приходилось ребутить систему.

Значит дело не CBSpeccy!

Titus
25.02.2007, 23:53
Кстати, из-за своего весьма вольного обращения с системой, CBSpeccy достаточно глючная вещь. Неоднократно наблюдал слетание PFS при использовании эмуля :-)

goodboy
26.02.2007, 10:20
у меня частенько обнулялись часы, кажется тоже из-за эмуля.

Crank79
26.02.2007, 13:28
вот комплект эмулятора которым я пользовался
http://crank79.narod.ru/CBSpeccy025_Crank79.zip

goodboy
26.02.2007, 17:57
проверил, вроде всё нормально, может дело в проге NewMode, сейчас у меня моник VGA, экран в эмуле DBLPAL:LowRes

самый простой вариант проверить на пустой системе, без всяких довесков

acidrain
27.02.2007, 00:19
странно, с таким же акселем запускал - амига зависала, в систему по F10 выйти не получалось, приходилось ребутить систему.
Вот именно - странно, что она не запускалась. у меня на 030 работала замечательно. Помоему даже на 603е с 040 на борту пользовался без проблем...

Crank79
27.02.2007, 11:06
эмулятор работал, но иногда зависал, этим архивом я пользовался и эмулятор естесстно работал.

были случаи - выбираю FRZ, затем очень быстро нажимаю Start, файл полностью еще не успел скачаться, а эмулятор уже стартовал )), в итоге вижу грустную картину - черный экран с дискеткой в углу. в систему вернуться нельзя, нужно ребутить

acidrain
27.02.2007, 15:10
нужно ребутить
А комбинацию кнопок попробуй - RA-M и не надо ребутить. Помоему даже в этом емуле кнопари эти работают. просто надо знать чуть больше об амиге ;)))

Titus
27.02.2007, 16:39
А комбинацию кнопок попробуй - RA-M и не надо ребутить. Помоему даже в этом емуле кнопари эти работают. просто надо знать чуть больше об амиге ;)))

Если эмуль отключает систему полностью, то НИКАКИЕ системные кнопки работать не будут

Sergey
03.03.2008, 13:41
Ну что, кто-нибудь уже пофиксил эмуль по 060? Или хотя бы знает как это сделать?

Vinnny
03.03.2008, 15:34
Ну что, кто-нибудь уже пофиксил эмуль по 060? Или хотя бы знает как это сделать?

думаю нет. ибо не слышно ни от кого.

Sergey
04.03.2008, 19:17
Кто-нибудь может объяснить толком, почему не работтает на 060?
На 040 и 060 одинаковые MMU (почти), только на 060 трансляционные таблицы не должны находится в COPYBACK-памяти. У меня же по дефолту вся память COPYBACK и при этом трансляция работает(!). значит, не из-за этого.
Никак не "въеду", как в эмуле трансляционные таблицы генерятся/изменяются: он оперирует с адресами, кратными 16К, а 060/040 MMU понимает только 4 и 8К.

Sergey
06.03.2008, 11:06
Это просто «абзац»: стояли у меня muTools, причём вполне безобидно. Их автор чуть ли не божился, что с его и только с его 68060.library на 060-амигах заработает VMM. – Взял поставил, блин. После очередного безуспешного запуска почти все программы стали вылетать по suspend/reboot. Я посмотрел регистры:
SRP и URP установлены, но TC=0(!), т.е. трансляция адресов запрещена. Хотя раньше, при нормально работающей системе, TC был 0x8000. Интересно, вот что у меня в системе изменилось, что перестало включать E-флаг в TC?!