Баг двадцатой ноги (память) ?

Тема в разделе "WASM.ELECTRONICS", создана пользователем Arisu, 30 май 2007.

  1. Arisu

    Arisu Алиса Селезнёва

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    89
    Короче услышал я тут что когда-то давно в лахматые годы для адрессации 1 мб было 20 (0-19) ног у памяти (рам). В последствии кол-во ног увеличилось. Но было время, когда добавили специально 20 ногу (20 от нуля) для адрессации ещё 640кб что ли. (над первым метром). И в последствии эту ногу юзать перестали, т.к. уже появилась 32-битная адрессация и ног вообще стало больше.
    эта 20 как бы осталась, но на ней всегда 0. (сейчас) Интел её оставил для совместимости. (оставил баг для совместимости )) лол)
    Но вот я слышал, что есть механизмы позволяющие поменять её состояние и использовать в своих целях. Что-то там было про шаманство чуть ли не про то что это как-то связано с клавиатурой или что-то в роде. Вобщем я плохо понял, сейчас капаю Гука в поисках зацепок.

    Может кто использовал это??
     
  2. BLiTZ

    BLiTZ Member

    Публикаций:
    0
    Регистрация:
    4 июл 2006
    Сообщения:
    54
    Гугли по "A20 gate" ... Найдется всё ...
     
  3. Arisu

    Arisu Алиса Селезнёва

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    89
    ну вот нашел что бит есть один в порту контроллера клавы. который:
    0 - A20 обнулён
    1 - управляется выводом процессора.

    и что же это такое ?? "вывод процессора" ? 8)))
     
  4. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    64Кб дополнительных. Исходники himem.sys для доса - должны помочь.
     
  5. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Arisu
    Все не так. Ног было 20 - один 1Мегабайт адресатного пространства. Но адресация у нас сегмент+смещение
    Максимальный адрес выходит 0FFFFh*10h+0FFFFh=10FFEFh отсюда Видно что максимальный адрес превышает 1МБ на 64КБ-16Байт. Так вот когда память увеличилась число линий возросло, и получилась возможность адресовать к дополнительным 64КБ. Но были старые программы которые были сделанные под старые компьютеры в которых 1МБ.
    И у них адрес 0FFFFh*10h+0FFFFh=0FFEFh Интел ввила A20 gate которая позволяла разблокировать ноги от A20 и более. Тем самым получила совместимость с обоями архитектурами.

    Это значит что если бит A20 gate равен 0, то все начиная с A20 линии принудительно выставляются в 0
    Если бит A20 gate равен 1, то тот какой сигнал на выводе(ноге/ проводе) установлен такой адрес и будет.