1

Тема: Вопросы по программированию Агата

Собственно несколько вопросов:

На реальном Агате 30 лет назад у меня не было доп. памяти и поэкспериментировать не получилось...

1. Как правильно программно определить наличие модуля доп. ОЗУ?
Я конечно знаю, как подключаются и отключаются банки памяти доп. ОЗУ. Я знаю о приоритете, если таких модулей несколько. Алгоритм в принципе прост, начать с 6-го слота, попытаться подключить банк модуля по какому-либо адресу, произвести операции чтения/записи/переключения банков и ежели результата нет, уменьшить слот и т.д.
Но тревожит вот вот что, а если там в слоте какое-то гипотетическое устройство? И мои операции записи по адресам CXYY, где X от 2 до 6, вызовут нештатное срабатывание этого устройства, тогда что?

Можно конечно сразу после старта пробежаться чтением по адресам СXky, от CX00 до CX7F, и если это доп. модуль, то по каждому адресу CXkz должно лежать значение kn, а по адресам СX(8+k)z, тоже kn т.е. k должно везде совпадать... Так что-ли?...

2. При подключении банка доп. модуля ОЗУ по адресам E000-FFFF меняется режим работы псевдо ПЗУ, в том числе и для адресов D000-DFFF где в тот момент подключен банк основного ОЗУ. При подключении банков доп. ОЗУ вне адресов D000-FFFF, режим работы псевдо ПЗУ не меняется... Конечно это не вопрос, можно произвести запись в регистр С080+XY, и все встанет на свои места, но так ли это на реальном железе?

3. Теоретически, к разным адресам можно подключать один и тот же банк ОЗУ. Хоть основного, хоть дополнительного. Грубо говоря, можно во всем пространстве адресов сделать подключенным один единственный банк памяти. Есть ли на это какие-либо реальные ограничения?

4. Как определить наличие контроллера дисковода 840кБ? Сравнивать что записано по адресам CX**? А прошивки контроллеров одинаковые были или различались? Аналогичный вопрос с контроллером принтера...

Извиняюсь, если где-то на сайте есть ответы на эти вопросы... информации очень много выложено, еще не успел все перечитать...

2

Re: Вопросы по программированию Агата

1) только озу реагирует на запись в регион сх00-схФФ, так что не перепутаешь.

2) да.

3) нет. А почему оно должно быть ? Так многие проги делают. Иногда для усложнения анализа, иногда еще зачем-то

4) прошивок есть две. Рекомендуется смотреть последние 4 байта - они у дисководов девятки как раз сигнатурные

3

Re: Вопросы по программированию Агата

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

В виде исходника или сборки

4

Re: Вопросы по программированию Агата

Voldemar0 пишет:

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

В виде исходника или сборки


Благодарю за ответы, так и сделаю, напишу тестовые программки...