User Tag List

Показано с 1 по 7 из 7

Тема: О быстром доступе к верхней памяти

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    03.12.2005
    Адрес
    Серов
    Сообщений
    542
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    50
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию О быстром доступе к верхней памяти

    Вот настала пора расширить память моего Кворума-64 до 1 метра памяти, но вот вопрос, по какому стандарту? Что существует на сегодня для расширения до 1 метра:
    младшие 3 бита у всех машин по порту 7FFD, остальные:
    Profi 1024: D0-D2 порта DFFD
    ATM TURBO: D0-D2 порта FDFD
    KAY-1024: D7 порта 7FFD; D4,D7 порта 1FFD (ваще полный бардак)
    Pentagon 1024: D5-D7 порта 7FFD
    Если ошибаюсь, поправьте меня.

    А теперь о том, как это выглядит с точки зрения быстродействия драйвера, обслуживающего память. Пусть на входе в RG.A – номер банка, никакие регистры портить нельзя:
    Profi:
    PUSH AF
    PUSH BC
    PUSH DE
    LD BC,#7FFD
    LD E,A
    AND 7
    OR 16
    OUT (C),A
    LD A,E
    RRCA
    RRCA
    RRCA
    AND 7
    LD B,#DF
    OUT (C),A
    POP DE
    POP BC
    POP AF
    RET

    ATMTURBO: то же самое, только с портом FDFD.

    KAY:
    PUSH AF
    PUSH BC
    PUSH DE
    LD BC,#7FFD
    LD E,A
    AND 7
    BIT 3,E
    JR Z,M1
    OR 128
    M1 OR 16
    OUT (C),A
    LD B,#1F
    LD A,E
    BIT 5,A
    JR Z,M2
    OR 128
    M2 AND 144
    OUT (C),A
    POP DE
    POP BC
    POP AF
    RET

    Pentagon:
    PUSH AF
    PUSH BC
    PUSH DE
    LD BC,#7FFD
    LD E,A
    RLA
    RLA
    AND 224
    XOR E
    AND 224
    XOR E
    OUT (C),A
    POP DE
    POP BC
    POP AF
    RET

    А если использовать табличный метод, тогда:
    PUSH AF
    PUSH BC
    LD C,A
    LD B,TAB’
    LD A,(BC)
    LD BC,#7FFD
    OUT (C),A
    POP BC
    POP AF
    RET
    TAB 64 байта
    Плюс ко всему у Pentagon'a нельзя определить автоматически наличие верхней памяти из-за 5 бита порта 7FFD.

    Ну и как вам это нравится? Не один из способов расширения не обеспечивает главного – высокого быстродействия. А как следовало бы сделать по уму, чтобы обеспечить самое высокое быстродействие? Я думаю так:
    1) Первые три бита порта 7FFD должны дублироваться в дополнительном порту расширения (ДПР). Т.е. если мы даём команды LD BC,#7FFD, OUT (C),A, то изменяется и состояние первых трех битов ДПР. И наоборот, если даём команды LD BC,ДПР, OUT (C),A, то изменяется состояние битов порта 7FFD.
    2) Соответственно биты D3,D4,D5 ДПР отвечают за память свыше 128Кб. Биты D6 и D7 могут использоваться для расширения до 4 метров.
    3) Самый больной вопрос (уже слышу негативные оклики: “Опять новый стандарт выдумал!”, “У меня и так уже все адресные линии заняты!”, “Конфликтов со старыми портами не оберешься!”): По какому адресу цеплять ДПР?
    Чтобы избежать каких бы то ни было конфликтов с портом OUT(#FD),A и не ставить всякие кнопки ON/OFF можно ввести порт, который будет выбираться при A0=0 и, например, A5=0. Как правило, во всех мощных компах есть порт кемпстон джойстика. И обычно для определения порта используется мс ИД7, либо другая, у которой один из выходов и есть нужный нам порт. И заметьте – никаких конфликтов ни с внутренними устройствами, ни с внешними.

    А вот как будет выглядеть драйвер верхней памяти для данного расширения:

    OUT (222),A
    RET

    Чувствуете разницу?

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 6
    Последнее: 10.09.2013, 16:04
  2. Порты памяти - Scorpion и др.
    от ASMAN в разделе Программирование
    Ответов: 27
    Последнее: 18.06.2008, 12:20
  3. Расширение памяти
    от alexfreed в разделе Память
    Ответов: 7
    Последнее: 16.11.2005, 17:49
  4. Ответов: 76
    Последнее: 18.07.2005, 13:34
  5. Мег памяти на скорпе...
    от lvd в разделе Scorpion
    Ответов: 8
    Последнее: 04.06.2005, 12:06

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •