Сообщение от
Denn
Верхних не хватает. DSDOS подсчитывает объём ОЗУ следующем образом:
Предварительно сохранив содержимое соотв. ячеек в буфере, записывает следующие данные:
1) 0000@15 = 0Fh
2) 0000@14 = 0Eh
3) 0000@13 = 0Dh
...
15) 0000@01 = 01h
16) 0000@00 = 00h
Далее идёт цикл проверки:
1) 0000@00 = 00h ?
2) 0000@01 = 01h ?
и т.д. пока не встретится несоответствие, в результате в переменной номера банка у нас оказывается фактическое кол-во живых банков ОЗУ.
Например, если у нас 256 Кб ОЗУ, то фактическая картина будет такая:
0000@00 = 00h
0000@01 = 01h
0000@02 = 02h
0000@03 = 03h
0000@04 = 00h
0000@05 = 01h
и т.д.
т.е. на 4-ом банке будет "затык", а дальше пойдёт информация с начала (из-за т.н. "заворачивания" номеров банков в случае схемы на РУ5-ых).