BIOS Disassembling - Версия для печати +- DC-SWAT Forum (http://www.dc-swat.ru/forum) +-- Форум: Sega Dreamcast (/forum-2.html) +--- Форум: Hardware (/forum-9.html) +--- Тема: BIOS Disassembling (/thread-1752.html) |
RE: BIOS Disassembling - Rio - 24.02.2012 20:30 Ну а что там таки внутри, этого БИОСА? RE: BIOS Disassembling - cybdyn - 25.02.2012 01:38 вообщем, для тех кто знает что с этим делать и как воспользоваться... это вещь!... тем более я не хочу переписывать это изобретая велик.. ну и мне инетресно, как идёт загрузка .... я же собираюсь делать IPL буду надеятся, что это устранит всякие там неприятности с невозможностью гулькать на хакнутом биосе... ну и вообще будет всё под моим контролем... а то приходиться тут просить помощи.... хакнем биос, запустим винты хакнем дримшел, покажем всем - мы впереди)))) RE: BIOS Disassembling - SWAT - 25.02.2012 10:45 Нету другого. RE: BIOS Disassembling - cybdyn - 25.02.2012 11:02 а хакнутый переписан заново, или только область где шел сидит заменна другими данными? насколько то вэри-симпл, много чего не хватает? сам по себе дримшел - это екзешка как и игры (ну грузиться в туже бласть и т.д ) или гдето межДу , типа в памяти в порядка возрастания сидят так: KERNEL-SHELL-IPBIN-1ST_READ...HEAP,STACK ??? RE: BIOS Disassembling - SWAT - 25.02.2012 14:00 Я же все это уже говорил... RE: BIOS Disassembling - cybdyn - 25.02.2012 23:24 извини , можешь напомнить ещё раз, именно на те вопросы что задал? плиз? RE: BIOS Disassembling - SWAT - 26.02.2012 18:36 Нет, он вообще не переписан, просто внедрен кусок кода и сделан прыжок. В самописном много чего не хватает. Все программы и игры работают сами по себе и грузятся в один и тот же адрес, нет там никакого ядра. RE: BIOS Disassembling - cybdyn - 27.02.2012 01:19 под ядром я понимаю изначальную инициализацию , установку обработчиков, сисколов. и т.п всё что до копирвания шела в память и прыжка на него. т.к в шеле уже идёт по идее исполнение , под настроенную систему, хотя может у тебя все переинициализируется по новому. RE: BIOS Disassembling - SWAT - 27.02.2012 07:20 Нет, всякие настройки контроллеров памяти и т.п. делается в биосе. DS работает так же как игры. RE: BIOS Disassembling - developer - 20.03.2012 19:18 Чисто из любопытства посмотрел реализации этого simple bios'а http://cadcdev.svn.sourceforge.net/viewvc/cadcdev/navi/flash/bootstrap/boot.s?revision=327&view=markup, и появился вопрос: Непонятны телодвижения, чтобы записать значения по какому-то адресу PHP код: ... Нельзя ли было просто сделать типа PHP код: mov #0xff000010,r3 Не проще ли было сделать так, или я что-то не понимаю RE: BIOS Disassembling - cybdyn - 21.03.2012 01:51 да это меня тож смутило.. 1- могли писать на си без оптимизации.. и такое вполне можно прадставить... 2- автор кода, чтото упаминает про начало "Sentinel value so our first two bytes aren't the same as the real Sega ROM. This makes nvflash_detect work" мож это не про то 3- насколько я знаю - у SH4 команды 16 разрядные. так что не факт что в регистр можно сразу засунуть 32 разрадную константу в одну команду!!! т.к коду комады надо ведь тоже место в этих 16-ти битах, поэтому чтобы сформировать её надо пострадать, либо сохранить и загрузить, как это делается где-то в в дальнейшем ... RE: BIOS Disassembling - SWAT - 21.03.2012 09:35 1. Нет это не оптимизация, некоторые операции на Си написать нельзя, дрим будет ребутится, проверено. 2. Про начало он имеет ввиду операнд "nop", чтобы отличался биос от оригинала он его подставляет. 3. Так оно и есть. RE: BIOS Disassembling - developer - 21.03.2012 13:37 Цитата:... у SH4 команды 16 разрядные ...Теперь понял Цитата:...некоторые операции на Си написать нельзя, дрим будет ребутится, проверено.А АСМ код в Си коде? RE: BIOS Disassembling - Rio - 22.03.2012 00:18 Цитата:... у SH4 команды 16 разрядные ...Да все верно такой операнд просто бы в коде команды не поместился. Цитата:mov.l r0,@(16,r3) ! 0 -> MMUCR (0xff000010)Блин, чертовски сложный формат. Я так понимаю мы здесь в адрес, косвенно указываемый регистром r3 + 10h заносим значение регистра r0? Цитата:Нет, всякие настройки контроллеров памяти и т.п. делается в биосе. DS работает так же как игры.Разве не самой программой? RE: BIOS Disassembling - developer - 22.03.2012 00:55 В оригинальной документации говорится PHP код: MOV.L | Rm,@(disp,Rn) | Rm → (disp × 4 + Rn) По факту получается, да записали данные по адресу записанному в Rn + смещение disp. х 4 если судить по возможным типам команды (mov.b, mov.w, mov.l) говорит о разрядности disp: byte, word и наверное long, т.е байт, два байта и четыре байта. RE: BIOS Disassembling - cybdyn - 22.03.2012 01:00 он имел ввиду, самы низкий уровень всех настроек в биосе... но биос это тоже програма, только самая первая))) да в р0, только ещё младшую часть или что там MOV.L означает.... RE: BIOS Disassembling - Rio - 22.03.2012 01:14 Цитата:он имел ввиду, самы низкий уровень всех настроек в биосе... но биос это тоже програма, только самая первая)))Вижу ты шаришь. Объясни мне следующую вещь. При включении питания, биос устанавливает какие-то напряжения на пинах процессора, устанавливает какие-либо вектора первоначальной загрузки? Или процессор по молчанию после power-up устанавливает CS0# и читает команды из первой попавшейся под руку микросхемы? Цитата:если судить по возможным типам команды (mov.b, mov.w, mov.l) говорит о разрядности disp: byte, word и наверное long, т.е байт, два байта и четыре байта.Да, все верно, видимо все так и есть. Спасибо за разъяснения. RE: BIOS Disassembling - cybdyn - 22.03.2012 01:28 я только предположил, так как больше имел дело с MIPS (пс1, пс2) нуууу... вообще в самом-самом начале чё делает проц только разработчику известно, часто выполняется какаянить проверка , какогонить магического адреса. ...или что типа того ...или ничего не выполняется... ну, после всех неясностей, по идее проц стартует из вектора сброса, чем является адрес 0x0000000 или типа того, (в процах мипс это адрес 0xBFC00000) , а выставление этого на шине адреса, мультиплексирует -CS0 в ноль)) , ну или какойто другой прописаный аппаратно (в пс1 он называется почемуто -CS2), вообщем аппаратно выбор чипа биоса. так что никаких случайностей..всё чётко... RE: BIOS Disassembling - developer - 22.03.2012 01:42 Нене Я тут почитал, пипец просто. Оказывается х2, х4 - это множители для смещения. Т.е. само смещение представляется только одним байтом, что получается при использовании MOV.B Rm,@(disp,Rn) максимальный адрес можно представить как Rn + 255. В случае инструкций MOV.L и MOV.B - максимальное значение адреса становится 255 * 2 + Rn и 255 * 4 + Rn, соответственно. Капец, я б такие инструкции врядли юзал))). Странно все это, но может я неправильно понял. RE: BIOS Disassembling - Rio - 22.03.2012 01:52 Цитата:Капец, я б такие инструкции врядли юзал))). Странно все это, но может я неправильно понял.Полностью с тобой солидарен. Но, видать, у разработчиков RISC-процессоров, увы, есть свое, и явно превалирующее над нашим мнение на этот счет, так что мы, к сожалению, в проигрыше Конечно, существенное ограничение на функционал накладывает ограничение длины команды, равное 16 битам. Вот уж воистину, узкое пространство, где сильно не развернешься. А хочется ведь предоставить различные режимы адресации, сделать работу с процессором\микроконтроллером максимально удобной. Вот и извращаются, как могут. Цитата:так что никаких случайностей..всё чётко...Ну в-общем ясно, хотелось просто узнать от тебя именно, как разбирающегося во всем этом железячника, как конкретно в Дримкасте это все делается. Ну да ладно, видимо не судьба Общий принцип понятен, и на том спасибо, за разъяснения. |