С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Ivagor
Объясни, а что при этом мы выиграем. Смысл такой тасовки страниц. И тогда мы все же ограничиваемся страницей в 16кб. Я вот пытаюсь прикинуть как это выглядеть будет, пока туплю.
На счет многозадачности. В приципе можно(теоретически) сделать ядро системы со стеком задач в одной непереключаемой странице, допустим c 4000h - по 7FFFh. И 16кб или 32 кб (переключаемые страницы) для приложений. Для примера разделить можно так 16кб сегмент кода и 16кб сегмент данных. В принципе если приложению мало 16кб или 32 кб, то оно может занять свободные страницы. И программы должны иметь один и тот же адрес стартовый допустим 8000h.
Ну и что, задаёшь в портах 4 подряд идущих страницы (например 4,5,6,7) и открываешь слот во всех 4 окнах - получишь 64Кб. В зависимости от A14,A15 выбирается определённый регистр РУ2, из которого считывается номер страницы. Интересно только, будет ли это всё работать, на выборку из РУ2 тоже время надо.
Все-таки фишка была в том, что можно от 1 до 4 страниц с шагом 1 и не обязательно подряд.
Точных данных о времени выборки РУ2 не нашел, но на векторе, как я понимаю, на выборку из РУ2 тратилось не более 166нс (на вывод каждого пиксела). Даже с учетом времени доступа основного SRAM и мелкой логики должно было бы хватить, на ПК8000 еще и тактовая частота меньше чем на векторе.
Судя по справочнику К155РУ2 она же SN7489 имеет время доступа 60нс.
Но для нас, если будет использоваться емкость 4x4(одна микросхема) или 4x8(две микросхемы) можно использовать К155ИР32(РП1)(SN74170) с временем доступа 23нс или К555ИР32(SN74LS170) - с временем доступа 42нс
Только что нашел в инете есть и 1533ИР32(SN74ALS170).
Так что ваша идея може и реализоваться
Добавлено через 5 часов 0 минут
Собственно вот результат моих потуг на тему квазидиска с идеей ivagor'a.
4 метра это конечно не хило, но как говорится рисуем по максимуму, а уж там можно будет и отрезать. Применил ИР32 как раз для этих целей.Страницы естественно 16 килобайтовые.
Смотрим высказываемся.
Последний раз редактировалось Mick; 13.10.2008 в 11:41.
Мне казалось, ivagor предлагал ввести порты 10h-13h для номеров страниц, а не только 11h с коммутацией из 10h. И непонятно, зачем нужен сигнал блокировки. Регистр порта 10h, как мне кажется, не нужен.
Добавлено через 11 минут
Можно ещё сделать так, что страницы 00-XX это ПЗУ, а XX-FF это ОЗУ. Тогда после сброса будет грузиться система из страницы ноль.
Последний раз редактировалось b2m; 12.10.2008 в 14:28. Причина: Добавлено сообщение
Сначала да, потом было еще такое предложение
чтобы сократить число портов.
Ты имеешь в виду, что КД и ROM-диск можно разнести просто по номерам страниц (если их будет не 16 а больше) или что?
Пока я писал, ты уже отредактировал, т.е. именно разнести КД и ROM-диск в разные страницы.
Т.е. предлагаешь задавать номер области (0-3) и номер страницы для этой области (0-63) через один порт?
Дешифрацию адреса порта можно тоже сделать с учётом на будущее: адресные линии микросхемы идут на A4-A2, разрешение /E3 это объединённые по ИЛИ A7-A5, а разрешение /E2 идёт на /IOWR. Тогда дешифратор можно использовать для записи портов в диапазоне 00h-1Fh, если нужно будет читать из портов - добавить аналогичную схему дешифрации чтения.
Добавлено через 1 минуту
Не, я предлагаю задавать номер области двумя младшими битами адреса порта.
Последний раз редактировалось b2m; 12.10.2008 в 15:06. Причина: Добавлено сообщение
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)