Где можно разместить буфер под данные если программа находится в ПЗУ?

Тема в разделе "WASM.ELECTRONICS", создана пользователем int21, 26 дек 2010.

  1. int21

    int21 New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2009
    Сообщения:
    7
    Здравствуйте.
    Требуется создать резидентную программу, которая будет находиться в ПЗУ материнской платы и вызываться горячей клавишей. Для работы ей необходим временный буфер под данные. Где можно разместить буфер, так чтоб не изменить данные основной программы? Программу планируется вызывать на этапе начальной загрузки и из под ДОС.
     
  2. KIV

    KIV Member

    Публикаций:
    0
    Регистрация:
    16 июл 2009
    Сообщения:
    231
    Очевидно, что где-то в оперативной памяти.
    Проблема лишь в том, что нельзя повредить данные загруженной ОС.
    Если на этапе начальной загрузки это не страшно (ОС нет - с памятью можно делать почти всё что угодно), то когда DOS уже загружен нужны дополнительные ухищрения.
     
  3. int21

    int21 New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2009
    Сообщения:
    7
    KIV
    Может есть место, которе не используется DOS/BIOS?
     
  4. int21

    int21 New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2009
    Сообщения:
    7
    Хотел использовать видеобуфер графического режима (с А000:0000), но запись туда почему-то невозможна
     
  5. KIV

    KIV Member

    Публикаций:
    0
    Регистрация:
    16 июл 2009
    Сообщения:
    231
    В видеобуфер лучше не писать:
    1) Он может использоваться другими приложениями по прямому назначению
    2) Чтение из него достаточно медленная операция. ОЗУ намного быстрее.
    Может быть уже после загрузки ОС (надо это только как-то определить) использовать её же функции для выделения себе кусочка памяти?
     
  6. int21

    int21 New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2009
    Сообщения:
    7
    KIV
    Программа должна работать как в ОС, так и до нее, BIOS Setup, loading MBR, loading boot sector, loading OS. ДОС можно обмануть, уменьшив значение в ячейке 0:413, а вот как быть с БИОС?
     
  7. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    int21
    Откушай от верхушки BaseMem сколько надо и используй под свои нужды.
     
  8. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    А что с ним быть?
     
  9. int21

    int21 New Member

    Публикаций:
    0
    Регистрация:
    31 дек 2009
    Сообщения:
    7
    Имеется в виду программа BIOS Setup. Она тоже использует ОЗУ. Нет гарантии, что размерстив свой буфер на верхушке BaseMem, не затеру каки-либо ее данные.