0000:0000

Тема в разделе "WASM.OS.DEVEL", создана пользователем simpleX, 6 сен 2008.

  1. simpleX

    simpleX New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2006
    Сообщения:
    26
    Адрес:
    Россия, г. Курск
    Как известно, после определения "железной" основы PC BIOS ищет загрузочное устройство и пытается загрузить самый первый сектор в память по адресу 0000:7C00.
    А почему именно по этому адресу? И что находится до него?
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Так договорились

    Таблица векторов прерываний с 0 по 256*4-1
    00000h-003FFh - таблица векторов прерываний
    00400h-00501h - переменные БИОС'а
     
  3. simpleX

    simpleX New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2006
    Сообщения:
    26
    Адрес:
    Россия, г. Курск
    Хмм, а остальные адреса?
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    000000h-09FFFFh – Base Memory базовая память
    В нее входит
    00000h-003FFh - таблица векторов прерываний
    00400h-00501h - переменные БИОС'а
    TOP_ Base_Memory минус 1Кб EBDA(Расширения область переменных БИОСа) может и отсутствовать. И адрес лучше проверить, а не рассчитывать по данной формуле. INT 15 AH=0C1h в ES будет сегмент. Если ошибка будет поднят CF.

    Остальное в базовой памяти свободно.

    Вообще БИОС может откусывать часть базовой памяти. Вирусы тоже могут откусивать часть базовой памяти.
    В старых компьютерах размер базовой памяти был меньше 640 кб размер проверяется по адресу
    413h-414h - Размер доступной памяти в килобайтах. Т.е Base Memory минус то что откушал БИОС, вирусы ОС, и прочие программы. Могли и не откушать.

    000000h-09FFFFh – Base Memory базовая память
    0A0000h-0BFFFFh – Video RAM, 128Кбайт видео память
    0C0000h-0DFFFFh – ROM/RAM память различных адаптеров
    0E0000h-0FFFFFh – System BIOS 128КБайт

    То что выше 1мб перечислять?
     
  5. simpleX

    simpleX New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2006
    Сообщения:
    26
    Адрес:
    Россия, г. Курск
    спасибо, достаточно
     
  6. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    simpleX
    Вероятнее всего, из-за ограниченного объёма ОЗУ первых ПК: загрузка по такому адресу ограничивает минимальный объём ОЗУ величиной 32 килобайта.

    Pavia
    В современных компьютерах часть адресов в верхней части 640 Кб занята расширенной областью данных БИОС, поэтому по-прежнему необходимо сначала определить объём памяти, а потом уже использовать, а не предполагать, что всего 640 Кб доступны. Иначе БИОСу кирдык наступит.
     
  7. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    +1

    +1. Содержимое слова по физическому адресу 413h возвращается после вызова функции BIOS - int 12h. Проверять нужно обязательно. BIOS в EBDA может хранить все что угодно.

    Pavia, а что там в ячейке 501h?
     
  8. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Phantom_84
    В PhoenixBIOS 4.0 Programmer’s Guide сказанно
    The BIOS Data Area is located from
    physical address 400h to 501h.

    500h 1 byte Print screen flag

    У Ральфа Брауна
    --------B-M00500000--------------------------
    MEM 0050h:0000h - PRINT-SCREEN STATUS
    Size: BYTE
    --------J-M00500001--------------------------
    MEM 0050h:0001h - NEC PC-9800 series - SCREEN MODE
    Size: BYTE
    Note: if bit 3 set, the screen is in high-resolution mode (start memory at
    segment E000h instead of A000h)

    Остальные чсейки по адрессам 504h-5FFh отводятся под переменные доса. Так что их можно использовать на свое усмотрение.


    Бутсектор майкрософт при загрузке копирует себя по адрессу 600h (вернее 60h:0h)
     
  9. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Я думаю, что "PRINT-SCREEN STATUS" - это DOS'овская переменная. Во многих описаниях говорится, что BDA занимает ровно 256 байт.