1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Снова про MBR: загрузка с USB/CD

Тема в разделе "WASM.NT.KERNEL", создана пользователем SunGod, 20 сен 2009.

  1. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Видимо, для скорости. Я загрузчик для флоппика писал очень давно, поэтому тестовые выкладки уже не вспомню. Сейчас туда если и вношу изменения, то только "косметические", поэтому код подмены таблицы параметров дискеты остается неизменным. В принципе можно и потестить на чтении всего объема флоппика (возможно, многократном).
    Не, ну про флоппики я уже говорил. Если у них BIOS может грузиться только с A, а там что-то застряло, пусть снимают крышку и меняют местами флопповоды на шлейфе. Если BIOS имеет опцию swap floppies, то тогда по идее установка этой опции должна приводить к тому, что физический A (fd0) будет иметь номер 1, а физический B (fd1) - 0. Хотя если в принципе есть возможность грузиться сначала с 1, а потом с 0, то наверняка в каком-нибудь кривом BIOS это реализовано именно так. Собственно поэтому я использую dl и для флоппиков.
     
  2. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Я грузил свой код на множестве компов с множества различных носителей, причем за исключением случая использования сторонней MBR номер загрузочного девайса берется исключительно от BIOS. Если бы "большинство даже новых биосов в dl оставляли всякую фигню", то практически в этом же большинстве случаев у меня бы возникали проблемы с загрузкой, чего не происходит. Как ты это можешь объяснить?
     
  3. Govnodozer

    Govnodozer New Member

    Публикаций:
    0
    Регистрация:
    14 окт 2009
    Сообщения:
    11
    Пардон, что пропал.... По порядку:
    Попробую, только можно поподробнее, что за BPB и PT? =)

    Пробовал уже. Та же лажа.

    Не, то я недосказал просто. Для флопов юзал 0x2h, и работало. А для флэшки не работает.

    Повторюсь, в dl у меня после загрузки содержится 0x80 (флэшка прописана как First Boot Device), так что мой БИОС, похоже, в dl кладёт всё правильно.
     
  4. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Здесь я имел в виду "грузиться с девайса 1 вместо 0".

    BPB - BIOS Parameter Block - фрагмент структуры данных, расположенной в загрузочном секторе тома для файловых систем FAT/NTFS. PT - Partition Table - структура данных, расположенная в конце MBR разбитых (имеющих возможность разбиения) на разделы носителей. У меня есть подозрение, что некоторые BIOS устанавливают логическую геометрию флешек, опираясь на значения соответствующих полей названных структур. А именно для USB-ZIP - BPB, для USB-HDD - PT. Геометрия для USB-FDD скорее всего устанавливается равной 2x80x18 вне зависимости от значений полей BPB.
     
  5. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    Встречался с авардовскими биосам, которые сами устанавливали номер диска в BPB после загрузки в оперативку (флешка была отфторматированна без MBR), причем даже не проверяя формат фс - тупо записывали туда, где он должен находиться для FAT16 o0
    А вообще тоже считаю, что лучше юзать dl
    По поводу MBR - встречал компы, которые сами разбирают MBR и грузят сразу BR логического диска, не передавая управление главному загрузчику..
     
  6. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.552
    Адрес:
    Russia
    первая ссылка перевалочная для
    а там настоящий клад для начинающих разрабатывать софт под усбдевайсы