Я кое-что поправил, теперь вроде постабильнее.
Я кое-что поправил, теперь вроде постабильнее.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
На данный момент используются первые три окна по 16Кб, последнее фиксировано (не считая, что через него производится доступ к экрану). К сожалению, общую область F000-F2FF, которая теоретически тоже должна переключаться, приходится постоянно (вместе со стеком в адресах EB00-EFFF) перекидывать в область задачи B800-BFFF и обратно. Аналогично мы делали и для ZX.
Основные проблемы:
- в окно C000-FFFF нельзя включить произвольную 16Кб страницу
- ядро вместе с данными примерно 44Кб (плюс 2Кб общая область), пока помещается в три страницы, но на область кучи остаётся очень мало места (хотя я не знаю, используется ли она сейчас)
Что можно сделать. Можно было бы перенести общую область в первое окно 0000-3FFF, тогда не надо было бы копировать её туда-обратно при переключении процессов, но тогда придётся располагать ядро с адреса 4000, т.е. ему достанется максимум 48Кб. Хватит ли?
Алан вроде бы предусмотрел расположение ядра в разных страницах (есть модифицированный линковщик и обработчик собранного модуля, который делит код на страницы), но я пока не смотрел, как там всё делается.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)