User Tag List

Показано с 1 по 10 из 292

Тема: Компьютер для CP/M. Формулировка ТЗ.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Xrust
    если и подключать дополнительно банки, то только страницами по 64 кб
    Речь идёт о выборе наиболее удобного аппаратного диспетчера памяти.

    В чистом виде цельнобанковая коммутация по 64 кб невозможна, даже если для переключения использовать команду OUT. Потому что тогда нет никакого способа как программе или данным попасть из основной банки в дополнительные. Коммутацию можно делать только если дополнительные банки имеют хоть немного ПЗУ или некоммутируемый фрагмент ОЗУ (или хотя-бы имитацию некоммутируемости участка ОЗУ, путём загрузки в банки одинаковых кодов).

    Чтобы всё-же получить диспетчер с коммутацией в 64К, необходимо разбить 64К на несколько коммутируемых окон, что позволяет одновременно включить в адресное пространство фрагмент основной банки памяти и фрагмент дополнительной банки. После загрузки в дополнительные банки подпрограммы для коммутации (для имитации некоммутируемого участа) в дальнейшем можно коммутировать ОЗУ уже не в окне, а целыми банками по 64К. Кстати, первый в СССР диспетчер памяти был применён в ИРИШЕ (1984) и он был именно такого типа. В нём коммутировалось всё адресное пространство в 64К, но оно было разбито на 4 независимо коммутируемых окна по 16К, что позволяет осуществить начальную произвольную загрузку доп.банок, и после загрузки в доп.банку небольшого куска кода (программы коммутации) можно использовать и цельнобанковую коммутацию по 64К.

    Таким образом без некоммутируемого ПЗУ (или имитацией этого в ОЗУ) невозможно переключать банки целиком. В то же время наличие некоммутируемого фрагмента ОЗУ, как это сделано в ОРИОНЕ, совершенно не является обязательным, хотя и упрощает жизнь программисту (освобождает от необходимости переставлять стек при включении очередной банки). Исходя из этого, а также установившихся в бытовых ЭВМ стандартов на входы в ПЗУ и по принципу, что "чем проще, тем лучше", самой удобной будет коммутация с окном в 62 кб, оставляя окно F800...FFFF некоммутируемым в виде ПЗУ. Особенно это справедливо, если доп.банки используются только как VDISK, а не как полноценное ОЗУ для хранения программ или данных.

    Что касается того, чтобы установить границу окна коммутации на уровне C400, CC00 или D000 (т.е на уровне BDOS CP/M), чтобы при переключениях памяти сам код CP/M не изменялся, отчего вызов функций CP/M был бы возможен из любой банки, то это также совершенно не требуется. Во-первых, уровень BDOS в разных версиях ДОС меняется, а во-вторых, даже если это и требуется, то легко скопировать в доп.банки весь код CP/M BDOS+BIOS, с'имитировав тем самым некоммутируемость.

    Ещё одной идеей для коммутируемости может быть некоммутируемость ZERO-page CP/M, т.е 256 байт ОЗУ 0000...00FF. Это позволяет получить, как максимально высокий TPA до FF00 (перегрузив исполняемый код CP/M 2.2 в доп.банки), так и позволяет использовать в каждой банке максимум, а именно - 63.75 килобайт памяти.
    Последний раз редактировалось barsik; 08.07.2017 в 12:00.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Посоветуйте компьютер для сборки!
    от Demige в разделе Для начинающих
    Ответов: 16
    Последнее: 17.02.2012, 18:07
  2. Куплю FDD для Atari XL/XE или в комплекте компьютер+дисковод
    от Нrundel в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 22.01.2007, 13:06
  3. Лучший компьютер.
    от Shiru в разделе Зарубежные компьютеры
    Ответов: 12
    Последнее: 22.05.2005, 14:01

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •