Цитата Сообщение от msd888 Посмотреть сообщение
ОК. Добавлю в конце тестовой программы вечный цикл с выводом шестнадцатеричных дампов любых на ваш выбор страниц памяти.
Так устроит?
Это был вопрос более не по программе теста, а скорее именно про то что ниже - по программированию порта, тест можно не усложнять.

Цитата Сообщение от msd888 Посмотреть сообщение

А по программе, команды следующие:

LD A,N ;номер страницы от 0 до 255
CPL ;инверсия
LD BC,порт ;порт диспетчера памяти (x7F7 или xEE7)
OUT (C)
1 Адреса #0000-#3FFF это #3 вместо "х" (00)
2 Адреса #4000-#7FFF это #7 вместо "х" (01)
3 Адреса #8000-#BFFF это #B вместо "х" (10)
4 Адреса #C000-#FFFF это #F вместо "х" (11)

Так, для включения страницы #4F по адресам #8000-#BFFF пишем:
LD A,#4F
CPL
LD BC,#B7F7
OUT (C)

А чтобы менеджер памяти заработал, перед этим включаем сигналы PEN (порт #77) для 1 Мб и/или PGSN (порт #BF) для 4 Мб
Этот алогоритм на каких клонах/версиях АТМ будет работать? Тех, на которых не будет - их много осталось в употреблении (возможно вопрос к Максагору)?

- - - Добавлено - - -

Цитата Сообщение от Максагор Посмотреть сообщение
Не стоит забывать упомянуть, что работа порта xEE7 зависит (должен зависеть, если схема разведена правильно) от бита D1 порта #BF. Если этот бит=0, то xEE7 ведет себя аналогично порту #xFF7, т.е. работает только с 1Мб ОЗУ, но зато и с ПЗУ тоже. А если бит=1, то ведет себя аналогично #x7F7, адресуя все 4Мб или 256 страниц ОЗУ only.

Что же касается работы с 1Мб ОЗУ через #xFF7, то надо не забывать перед командой CPL, что биты 6-7 там не адресуют страницы, а выбирают ОЗУ/ПЗУ и смешивание сигналов с портом #7FFD соответственно, так что там надо эти биты учитывать отдельно. Но да, для адресации 4Мб такой пример годится.
Как-то так.
Т.е. для универсальности про 4Мб лучше забыть и юзать 1Мб? Что интересного есть в ПЗУ чтобы понадобилось его включать (и использовать) из своей программы? П.п вывода на экран, доступа к HDD отдельно выведены и декларированы как точки входа в ПЗУ?

- - - Добавлено - - -

Цитата Сообщение от msd888 Посмотреть сообщение
Согласен с коментами, но вот только не FB порт, а BF порт бит 1 (PGSN ).
А вот речи про порт xFF7 я не вел - это пережитки АТМ 2! ))) Пользуемся портом x7F7!
{fаcepalm}
вот поэтому я прошу универсальную процедуру, которая на входе имеет два параметра - номер окна и номер требуемого туда сегмента. А в своих кишках она пуская прячет всю ту кашу что устроили в портах аппаратчики. И эту подпрограмму (универсальную! не завсящую от того с каким объемом памяти клон) занести в ПЗУ рядом с п/п вывода на экран, ввода с клавиатуры и доступа к HDD. И еще золотыми букавми выписать на сайте ATM в разделе "полезно знать" (и сделать это уже 15 лет назад).