Для 640 Кб на ЕС-1840 перемычки SA2 должны быть установлены так:
Код:
SA2
Pin1 ■ ● ● ● ● ● ● ●
| | |
● ● ● ● ● ● ● ●
Проверено на реальной ЕС-1840, БИОС версии 4.
Если не поленюсь - чуть позже напишу более подробное объяснение.
- - - Добавлено - - -
================================================== =============
Если посмотреть на БИОС 1840 Version 1, Version 2, Version 4 (Version 3 не имею), можно видеть:
Код:
in al, port_c
and al, 0Fh
inc al
mov ah, 80h ; 128 Decimal
mul ah
...
mov ds:memory_size, ax
То есть БИОС считывет значение из порта С микросхемы 8255, выделяет только 4 младших бита, увеличивает значение на единицу и умножает на 128 - это результирующий объем памяти в килобайтах.
При этом необходимо учитывать, что:
- Согласно схеме (см. внизу сообщения) переключатели разведены на контакты порта С "наоборот", то есть (при нумерации переключателей с нуля):
бит 0 микросхемы это переключатель SA2.7 (контакты 15-16 переключателя SA2)
бит 1 микросхемы это переключатель SA2.6 (контакты 13-14 переключателя SA2)
бит 2 микросхемы это переключатель SA2.5 (контакты 11-12 переключателя SA2)
бит 3 микросхемы это переключатель SA2.4 (контакты 09-10 переключателя SA2)
(Остальные, запаралеленные биты нас в разрезе данной темы не интересуют, но в нормальных условиях все они должны быть разомкнуты).
- С точки зрения микросхемы 8255 сигналы инвертированы, то есть наличие перемычки - это логический 0, отсутствие перемычки - логическая 1.
Таким образом:
1. Если установлены перемычки SA2.4 и SA2.5, то с учетом инверсии, обратного порядка битов и выделения только 4-х младших бит, из порта С микросхемы 8255 будет считано значение 0011b, то есть 3. После увеличения на 1 и умножения на 128 получится 512К.
2. Если установлены перемычки SA2.4, SA2.6 и SA2.7, то с учетом инверсии, обратного порядка битов и выделения только 4-х младших бит, из порта С микросхемы 8255 будет считано значение 0100b, то есть 4. После увеличения на 1 и умножения на 128 получится 640К.
Итого по перемычке SA2 для ЕС-1840:
Код:
■ ● ● ● ● ● ● ●
| | | | = 128K
● ● ● ● ● ● ● ●
■ ● ● ● ● ● ● ●
| | | = 256K
● ● ● ● ● ● ● ●
■ ● ● ● ● ● ● ●
| | | = 384K
● ● ● ● ● ● ● ●
■ ● ● ● ● ● ● ●
| | = 512K
● ● ● ● ● ● ● ●
■ ● ● ● ● ● ● ●
| | | = 640K
● ● ● ● ● ● ● ●
Остальные комбинации не имеют смысла (указывают на размер базовой памяти от 768К до 2048К,
что превышает допустимое для данного компьютера значение).
PS:
При наличии не урезанной до 128К, а полной платы ЕС1840.0006 (второй такой-же платы, как и основная для ЕС-1840, но с другими перемычками) можно достичь объема основной памяти в 704Кб (00000 - AFFFF, дальше видео память) и еще 192Кб как UMB (С0000-ЕFFFF).
Но для достижения 704Кб нужно финтить, перемычки увеличивают память с дискретностью 128К (512-640-768), а нам после 640К нужно увеличить только на 64К, перемычками этого не достичь. Это справедливо и для ЕС-1841, там хоть нет перемычек для памяти, но тестируются блоки по 128К.
Понятно, что нужный объем необходимо установить до загрузки DOS, чтобы она его увидела.
Я использовал два варианта - модифицированный boot сектор, который перед загрузкой DOS устанавливал объем памяти в 704К, и просто программу, которая тоже устанавливала объем памяти в 704К, а потом делала "теплый" рестарт ЕС-184х без тестирования памяти.
Для UMB памяти (C0000-EFFFF) у меня было два варианта драйверов - один для размещения там RAM диска, другой для помещения туда резидентных программ.
- - - Добавлено - - -
================================================== ===============
Сообщение от
dk_spb
В принципе да - с точки зрения БИОС описание перемычек соответствует.
SA2.3-SA2.0 объем ОЗУ (0000-128Kбайт, 0001-256Kбайт, 0010-384Kб, 0011-512Kбайт, 0100-640Кбайт)
Но физически они отсчитываются не с первого контакта (квадратного отверстия), а наоборот, с конца. Если смотреть на фото, то справа налево.
И указанное в цитате значение 0 соответствует наличию перемычки, а значение 1 - ее отсутствию.
Детали выше.