расковырял я биос на куски(прога 150кб - вырезает все кусочки в формате lha). теперь вопрос - в какие адреса распаковываются эти кусочки? не очень хочется писать наугад, так как возможны перекрытия(с 0xe0000 например идет logo, и остаток памяти там меньше 128к, соотвественно сама прошивка не влазит). где можно почитать про сабж?
наверно я неточно выразился в биосе есть бутблок который инициализует память, и насколько архивов lha с прошивкой и кусочками. яхочу заменить самый главный кусок, чтоб впихнуть туда ось и минимальный setup. надо - знать каков будет порядок загрузки кусков, и куда они попадут, так как при их перекрытии есть риск что важная часть кода будет потерта(затирание - это единственная угроза, код я перекопирую куда захочу) и еще неплохо бы знать где в прошивке (orginial.tmp) точка входа.
сорри, уже отыскал инфу Порядок инициализации BIOS: 1) =main= init hardware (cpu-chipset) 2) init controller SDRAM 3) set 'enable RAM' 4) quick memory test 5) copy first segment FLASH to 'shadow' RAM E0000h-FFFFFh 6) copy second segment FLASH to 'shadow' RAM A0000h-DFFFFh 7) run main BIOS. (точно не помню, возможно пункты 6 7 переставлены) кусок в биосе будет один, и можно будет копировать с адреса CS*16+EIP-entrypoint_offset до CS*16+EIP-entrypoint_offset+131072 в любой нужный адрес. BIOS построен на технологии распаковщика и без RAM не может нечего сделать.
DRAM timing будет зависеть от чипсета. по определению. потому что чтоб выставить тайминг надо поправить регистры чипсета. этот кусок будет целиком зависеть от чипсета. грубо говоря - по мере поддержки чипсета ьудет пояляться поддержка мамок. Hyperthreading появится вместе с Symmetric multiprocessing. пока ессно не поддерживается изза scheduler.asm
итак, готовы основные сискаллы - для работы с процессами и для ввода/вывода. теперь надо еще дебуговую часть сделать. посоветуйте какие возможности надо вставить.
и если кто захочет потестить сие чудо - напишите чипсет и железо которое у вас стоит. пока что рамер ядра 23кб, так что дров можно напихать порядком.
с тестированием будут небольщие траблы, т.к после прошивки биос будет полностью несовместим со стандартым, и ессно ни одно из его прерываний работать не будет, потому предложение скорее к владельцам старых компов которые не жалко уделать ради науки. гыыы. пишите вот что. чипсет, надписи на камнях и возле разъемов PCI(те что огромные) колво кэша на мамке, и сколько оперативки размер флэшины(64/128/256/до хрена) или хотя бы надпись на ней. тип биоса, то что он пишет при запуске внизу экрана. какие фичи и разъемы есть на мамке(USB1/2 COM LPT IDE etc) проц(тип, то что возвращает CPUID, но чтоб не ниже 386). видео(шина(ISA\PCI\etc), тип, память) тип монитора, потому что изначально автоопределения не будет, и прога может задать неверную частоту. аудио, а какже без него(шина и тип, добавочные фичи вроде набортной памяти для SB16 vibra) сетевухи тоже давайте сюда, модемы пока поддерживаться не будут, т.к. в протоколах PPP и логиновом не шарю ваще, и исходники чужие мне смотреть лень. если кто возьмется подмочь - буду рат. протокол сетки IP, IPX буду делать только если кому нибудь будет надо. винты и сидюки можете не писать, они и так будут, благо под рукой есть туча сорцов дров. и самое главное!!!!! предложение нащот дебаговых syscalloв все еще актуально, т.к эта часть в ядре начисто отсутствует.
чуть не забыл - железо встроенное в мамку писать тоже. и в планировщике есть команда rdtsc. соотвецтвенно, на 486 и 386 надо поизвращаться будет малость.