Операционная система CP/M не предназначена для игр или демок. Она сама и приложения под нее работают на множестве компьютеров с очень сильно различающейся аппаратной частью. Такая беспрецедентная совместимость была достигнута с помощью слоя абстракции аппаратуры (Hardware Abstraction Layer). Ни сама BDOS CP/M, ни программы, работающие из-под нее, не могут рассчитывать на какие-либо аппаратные ресурсы компьютера, кроме тех, что доступны посредством обращения к BIOS. А через BIOS доступны очень немногие ресурсы: это вывод на экран текста (управляющие коды позволяют позиционировать курсор), вывод текста на принтер, ввод с клавиатуры символа (множественные нажатия клавиш не поддерживаются); доступ к диску. Больше нет абсолютно ничего! Нет ни магнитофона, ни графики, ни звука, ни прерываний, ничего!
И если программа под CP/M будет соблюдать эти ограничения, не пытаться пользоваться аппаратурой с помощью команд IN, OUT, не запрещать прерывания и т.д. - то она будет работать на всем этом многообразии компьютеров, которые имеют между собой общего только процессор Z80.
Не доступен из-под CP/M и Sinclair Basic по понятным причинам. Потому что нет его на большинстве компьютеров, на которых работает CP/M. К сожалению, несмотря на то, что Spectrum работает на процессоре Z80, без переделок или аппаратных расширений CP/M на нем запустить невозможно. Вызвано это тем, что по адресам 0000-3FFF находится ПЗУ, а для CP/M требуется чтобы по этим адресам было ОЗУ. Кроме того, экранная область по адресам 4000-5CFF также несовместима с CP/M. Если на Спектруме запускается CP/M - то при этом как правило включается второй экран, так что экранная область выносится из адресного пространства Z80.
Поэтому нет абсолютно никакого смысла писать под CP/M что дисковые, что ленточные загрузчики к любым программам. А те программы, которые работают из-под CP/M непосредственно, в загрузчиках не нуждаются - ОС их и сама неплохо запускает.





Ответить с цитированием