Всем привет! Я начинающий ASM'ер и поставил себе задачу разобратса в железе, от А и до ЗЮ. Прошу у всех помощи! А имено. Разпределение портов ввода - вывода в x86 совместимых. Разпределение памти, и все о функция BIOS, как их дизасемлить и заменить своими. Буду очень благодарен за любую инфу!
Амбициозно, однако... И сколько лет ты себе на это выдал? Это включая embedded вещи такие как контроллеры памяти, flash, DMA, PCI? Если ты хочешь копать железо, то советую начать с литературы по базовой электронике и низко-уровневом embedded программировании. Потом купить платку с мелким PIC и помучать её. Ну а если ты хочешь про операционку, то тогда книжки про ядро Linux и NT/2000/XP.
Да имено контроллеры памяти, flash, DMA, PCI! А PIC и AVR уже узучен.... И другие микроконтролеры ТОЖЕ!!! Давай небудем тратить зря время! Есть инфа - выкладавай или давай адрес! P.S. .....только по теме!!!
Резковато звучит. Операционки для МК в глаза видели? Принципы те же, даже легче осваивать ПК-ное железо если даже на среднем уровне кристаллы юзать. И заглянуть в раздел статьи и документация на данном сайте? З.Ы. А рідну мову потрібно знати. (я про підпис на суржику) З.З.Ы Бред, тему в null (IMHO) 2 z_x_spectrum RTFM - под принца косишь?
От А до ЗЮ я новерно железо знаю. А вот что насчет оставшихся букв. В качестве справочного матерьяла могу посоветовать Энциклопедия Гука(есть версия карманная и полная). И interupt list Ральфа Брауна- не нравиться он мне почти непользуюсь. В качестве справки по прерыванием также соверую Phoenix BIOS Programmer's Guide v10.pdf А так берешь спецификацию на нужную железку и читаешь. Шина PCI , технология PnP (ряд спецификаций найдешь у Microsoft), VESA BIOS EXTENDER - VBE (VESA разработала набор стандартов связанных с видео), ACPI, APM контроллер прямого доступа к памяти для устройств шины ISA - DMA( 8237), таймер PIT(8254), контроллер прерываний PIC (8259A), контроллер клавиотуры 8042 (82C42), расширенный контроллер прерываний APIC (мануэлы на процессор, мульт процессорная спецификация - MP), так называемые часы реального времени RTC (82885) плюс CMOS видео адаптор VGA/EGA совместимые и прочии XGA, CGA, ATA/ATAPI - спецификация команд жесткого диска плюс еще ряд спецификаций для сидирома. спецификация контроллера жеских дисков - PCI IDE. контроллер жестких дисков ACHI (AHCI) контроллер мягхих(флоппи) дисков - FDC несколько спецификаций. Звук Suund Blaster, современный встроенный Codec AC97 Realteck Сетевые карты NE2000, Realtek RTL8139 и другии они все похожи. Плюс современные. И протоколы изучаем RFC. Мышка PS/2 оригинальная спецификация у IBM так что то что найдешь в сети. COM мышь ряд протоколов. порты COM верн их контроллеры(8250,8250A, 16450,16550, современные аналоги совместимы с 16550A), тоже порты LPT и их контроллеры/режимы передачи (ECP, EPP) BIOS (куча спецификаций ряд уже был перечислен: основная справка по прерываниям Phoenix BIOS Programmer's Guide v10.pdf, раширение для работы с дисками EDD, SMBios(DMI) и тд) шина USB (ряд спецификаций) Также есть такие вещи как SMBus(I2C), Super I/O. Это связанно с датчиками. Плюс еще кое какие системные вещи. Програмирование специфично. Модемы есть ряд спецификаций. Принтеры через чур разнообразны. PS. Вроди ничего не забыл.
Нормально конечно написал В пору ТС застрелиться... Ну может ещё USB под DOS - темы попадаются. А увидел - есть оказывается "шина USB (ряд спецификаций)" PATA/SATA - по хард дискам - так стали называть вроде.
ATA - Advanced Technology Attachment, продвинутая технология присоединения PATA - Parallel ATA (паралельный ATA) SATA - Serial ATA (последовательный АТА) AHCI- Advanced Host Controller Interface, расширенный интерфейс контроллера хоста, иногда встречается как ACHI PATA сейчас называется то, что раньше звалось IDE. Хотя IDE встречается чаще. IDE контроллер может работать в двух режимах Legacy (усторевший), Native (родной) SATA в трех Сompatibility (совместимость с IDE Legacy), SATA(Native по сути тот же самый Native IDE),AHCI (родной режим для SATA координально отличается от остальных режимов) Есть спецификация SATA, но там ничего полезного для програмиста не нашел. А вот AHCI стоит посмотреть.
Спасибо Pavia. Мне никак неудаетса найти оисание портов, железно привязаных к устройству (к примеру DMA). Или хотяби как дизасеблить прырывание биоса. Например Int 13.
Ральф Браунс, скачаешь часть D там описание портов. http://www.cs.cmu.edu/~ralf/files.html Вот описание конроллера DMA http://homepage0.icehard.net/files/hardware_specs/CONTROLLERS/dma8237.pdf А тут можешь почитать старую книжку http://homepage0.icehard.net/files/hardware_specs/IO-DOC/IO.PRT есть и новые книжки. А если хочешь настоящие описание, то это надо искать документацию на чипсет. Что касается иследования прерываний. Первый килобайт отведен под таблицу прерываний это масив из 256 элементов где каждый элемен есть указатель(4байта сегмен:смещение) на код прерывания. А дальше берешь отладчик и дизассемблируешь. Можно скопировать память с 0E0000h-0FFFFFh это код биоса и его загрузить в дизассемблер. Только это надо делать из доса, а то виндоус там подменяет на свои вызовы.
Да все интересное в чипсэте! До смоим познанием англ. трудновато будет! За линки спасибо. П.С. Тут нарыл книгу "Программирование дисковых подсистем" В. Кулаков - ЖЫР!
Shadovv13 DMA - странно это ж в каком веке Сейчас ДМА в том виде в котором описано в статьях ДОС осталось только для флопика. Самое интересное, что и флопики постепенно канут в лету - та же PCI может захватывать и управлять прямым доступом в память и передавать данные минуя процессор(ы), а уже есть PCI express (AGP тоже потиху в прошлом). Самое интересное, что нет ничего интересного в железе - есть интересное в технологии используемой железом для своей работы - но кто ж все детали выдаст. Есть современные технологии - их изучение - только реверсинг BIOS и драйверов. Так на всякий случай - "железный CPU" http://wasm.ru/forum/viewtopic.php?id=27377 или железо от Криса http://www.insidepro.com/kk/138/138r.shtml
А для IDE винтов DMA неиспользуетса!? .....та же PCI может захватывать и управлять прямым доступом в память и передавать данные минуя процессор... Ето как, сетевуха в слоте PCI дает запрос к к контролеру PCI, получить прямой доступ к памяти? Ну а какжэ DMA? P.S. Да, в одном ты прав на 100. Флопи, AGP, а вскоре IDE-ATA, да возможно и вовсе ISA-мост с своими устройствами ИЗЧЕЗНУТ
В стате http://sizov.boom.ru/int8259.htm дано описание контролера прырываний. Но только одной микросхемы на 8-м каналов. Но их там должно быть две. Вопрос в том, какие порты управления второй микросхемой.
В доке IO.PRT всё описано. Можно использовать её как отправную точку для начала ознакомления с низкоуровневым программированием.