Не, чуть не так.
Ядро занимает всё пространство 0000-FFFF за вычетом экрана. При создании нового процесса, ему выделяется очередная страница верхней памяти, которая подключается в C000 (заменяя собой страницу ядра), туда кладется бинарник процесса и запускается. Никаких проблем из-за того, что кусок ядра недоступен нет, потому что все вызовы ядра процесс выполняет через RST 30. Первое, что делает RST 30 - это возвращает в C000 страницу ядра. Потом он отрабатывает вызов, возвращает страницу процесса обратно и передает управление обратно процессу.
Common - это кусок памяти, общий для всех процессов и ядра. В z80pack это верхние 4 килобайта. Они не меняются при переключении банок, отсюда и название. У нас же наоборот, не меняются данные ниже C000, поэтому common нужно опускать туда. В своей ветке я это уже начал, но для полноценной отладки надо сначала научиться запускать процессы.
Нулевая. 0 - страница ядра, 5,2 - страницы нижней RAM. Для процессов остаются 1, 3, 4, 6, 7.2. Какая страница должна быть впечатана в окно 4 при инициализации ядра?
Да.3. Задача загрузчика - просто включить RAM в 0x0000 - 0xFFFF, поместить бинарь с адреса 0x0000 и сделать jp 0x0000 ?
Как-то можно передавать, но я это ещё не копал. Можно передать устройство загрузки, например, чтобы не вводить каждый раз его с клавы.Или через регистры какието параметры ядру передаются?
---------- Post added at 14:03 ---------- Previous post was at 13:54 ----------
Закоммитил файлик. Но от моего репозитория без моего хаканного эмулятора толку мало - там всё через этакий наколеночный DMA работает. Просто хочу сначала отладить переключение процессов, а загрузчиками и дровами заниматься потом.
Я могу создать ветку, но ты не сможешь в неё коммитить. Гитхаб не так работает. Тут все коммиты в чужие репозитории осуществляются как pull request'ы. Это когда форкаешь чужое репо, коммитишь в него изменения, а потом создаешь pull request - просьбу свои изменения включить в основной репозиторий. Можешь меня форкнуть, можешь сразу Кокса.Может создадим там же отдельную ветку для пентевы, а ты в мастер будешь сливать по своему усмотрению?
Я уже прикинул, что надо отделять конфиг от мэйкфайла. плюс скрипты и platform-zxpentevo.