КП/М

Прекращенное семейство компьютерных операционных систем

Операционная система
КП/М
Скриншот CP/M-86
РазработчикDigital Research, Inc. , Гэри Килдалл
Написано вPL/M , язык ассемблера
Рабочее состояниеИсторический
Исходная модельПервоначально закрытый исходный код , теперь открытый исходный код [1]
Первоначальный выпуск1974 ; 50 лет назад ( 1974 )
Последний релиз3.1 / 1983 ; 41 год назад [2] ( 1983 )
Доступно вАнглийский
Метод обновленияПереустановка
Менеджер пакетовНикто
ПлатформыIntel 8080 , Intel 8085 , Zilog Z80 , Zilog Z8000 , Intel 8086 , Motorola 68000
Тип ядраМонолитное ядро
Под влияниемРТ-11 , ОС/8

Пользовательский интерфейс по умолчанию
Интерфейс командной строки (CCP.COM)
ЛицензияПервоначально проприетарная , теперь похожа на BSD
ПреемникМП/М , КП/М-86
Официальный сайтЦифровые исследования CP/M страница

CP/M [ 3] изначально обозначала Control Program/Monitor [4] , а позднее Control Program for Microcomputers [5] [6] [7] — массовая операционная система, созданная в 1974 году для микрокомпьютеров на базе Intel 8080/85 Гэри Килдаллом из Digital Research, Inc. CP /M — дисковая операционная система [8] , ее цель — организация файлов на магнитном носителе, а также загрузка и запуск программ, хранящихся на диске. Первоначально ограничивавшаяся однозадачностью на 8-разрядных процессорах и не более чем 64 килобайтами памяти, более поздние версии CP/M добавили многопользовательские вариации и были перенесены на 16-разрядные процессоры .

Сочетание компьютеров с шиной CP/M и S-100 стало ранним стандартом в индустрии микрокомпьютеров. Эта компьютерная платформа широко использовалась в бизнесе с конца 1970-х и до середины 1980-х годов. [9] CP/M увеличила размер рынка как аппаратного, так и программного обеспечения, значительно сократив объем программирования, необходимого для переноса приложения на компьютер нового производителя. [10] [11] Важным фактором инноваций в области программного обеспечения стало появление (сравнительно) недорогих микрокомпьютеров, работающих под управлением CP/M, поскольку независимые программисты и хакеры покупали их и делились своими творениями в группах пользователей . [12] CP/M в конечном итоге была вытеснена DOS после появления IBM PC в 1981 году .

История

Реклама CP/M в номере журнала InfoWorld от 29 ноября 1982 г.

Ранняя история

Гэри Килдалл изначально разработал CP/M в 1974 году [5] [6] как операционную систему для работы на системе разработки Intel Intellec-8 , оснащенной 8-дюймовым дисководом Shugart Associates , подключенным через специальный контроллер гибких дисков . [13] Она была написана на собственном языке PL/M Килдалла ( язык программирования для микрокомпьютеров ). [14] Различные аспекты CP/M находились под влиянием операционной системы TOPS-10 мэйнфрейм-компьютера DECsystem-10 , который Килдалл использовал в качестве среды разработки. [15] [16] [17] Одним из первых внешних лицензиатов CP/M была компания Gnat Computers , один из первых разработчиков микрокомпьютеров из Сан-Диего, Калифорния . В 1977 году компания получила лицензию на использование CP/M 1.0 для любого микрокомпьютера по их желанию за 90 долларов. В течение года спрос на CP/M был настолько высок, что Digital Research удалось увеличить стоимость лицензии до десятков тысяч долларов. [18]

Под руководством Килдалла, разработка CP/M 2.0 в основном была выполнена Джоном Пирсом в 1978 году. Кэтрин Стратински , подруга Килдалла из Военно-морской аспирантуры (NPS), стала четвертым сотрудником Digital Research Inc. в начале 1979 года. Она начала с отладки CP/M 2.0, а позже стала влиятельным ключевым разработчиком CP/M 2.2 и CP/M Plus. Другими ранними разработчиками базы CP/M были Роберт «Боб» Сильберштейн и Дэвид «Дэйв» К. Браун. [19] [20]

Первоначально CP/M расшифровывалось как «Control Program/Monitor» [3] , что подразумевает резидентный монитор — примитивного предшественника операционной системы. Однако во время преобразования CP/M в коммерческий продукт, документы о регистрации товарного знака, поданные в ноябре 1977 года, дали продукту название «Control Program for Microcomputers» [6] . Название CP/M следует преобладающей схеме наименования того времени, как в языке PL/M Килдалла и PL/P ( язык программирования для Prime ) Prime Computer, оба предполагают PL/I IBM ; и операционную систему CP/CMS IBM , которую Килдалл использовал во время работы в NPS. Это переименование CP/M было частью более масштабных усилий Килдалла и его жены с деловым партнером Дороти Макьюэн [4] по преобразованию личного проекта Килдалла CP/M и контрактного компилятора PL/M с Intel в коммерческое предприятие. Килдаллы намеревались сделать бренд Digital Research и его продуктовые линейки синонимами «микрокомпьютера» в сознании потребителя, подобно тому, чего IBM и Microsoft вместе успешно добились, сделав « персональный компьютер » синонимом своих продуктовых предложений. Intergalactic Digital Research, Inc. позже была переименована через регистрацию изменения названия корпорации в Digital Research, Inc. [4]

Первоначальный успех

Карта Apple CP/M с руководством

К сентябрю 1981 года компания Digital Research продала более260 000 лицензий CP/M; InfoWorld заявил, что фактический рынок, вероятно, был больше из-за сублицензий. Многие разные компании производили компьютеры на базе CP/M для многих разных рынков; журнал заявил, что «CP/M уверенно движется к тому, чтобы утвердиться в качестве операционной системы для малых компьютеров». [21] Компании решили поддержать CP/M из-за ее большой библиотеки программного обеспечения. Xerox 820 работал под управлением операционной системы, потому что «там, где есть буквально тысячи программ, написанных для нее, было бы неразумно не воспользоваться ею», - заявила Xerox. [22] (Xerox включила руководство Howard W. Sams CP/M в качестве компенсации за документацию Digital Research, которую InfoWorld описала как ужасную, [23] неполную, непонятную и плохо индексированную. [24] ) К 1984 году Колумбийский университет использовал тот же исходный код для сборки двоичных файлов Kermit для более чем дюжины различных систем CP/M, плюс две общие версии. [25] Операционная система была описана как « программная шина », [26] [27] позволяющая нескольким программам взаимодействовать с различным оборудованием стандартизированным образом. [28] Программы, написанные для CP/M, обычно были переносимыми между различными машинами, обычно требуя только спецификации управляющих последовательностей для управления экраном и принтером. Эта переносимость сделала CP/M популярной, и для CP/M было написано гораздо больше программного обеспечения, чем для операционных систем, которые работали только на одной марке оборудования. Одним из ограничений переносимости было то, что некоторые программы использовали расширенный набор инструкций процессора Z80 и не работали на процессорах 8080 или 8085. Другим были графические процедуры, особенно в играх и графических программах, которые, как правило, были машинно-специфичными, поскольку использовали прямой доступ к оборудованию для скорости, минуя ОС и BIOS (это также было распространенной проблемой на ранних машинах DOS). [ необходима цитата ]

Билл Гейтс утверждал, что Apple II с Z-80 SoftCard была единственной самой популярной аппаратной платформой CP/M. [29] Многие различные марки машин работали под управлением этой операционной системы, некоторые известные примеры: Altair 8800 , IMSAI 8080 , Osborne 1 и Kaypro luggables , а также компьютеры MSX . Самой продаваемой системой с поддержкой CP/M всех времен, вероятно, была Amstrad PCW . В Великобритании CP/M также была доступна на образовательных компьютерах Research Machines (исходный код CP/M был опубликован в качестве образовательного ресурса) и для BBC Micro , когда она была оснащена сопроцессором Z80. Кроме того, она была доступна для серии Amstrad CPC , Commodore 128 , TRS-80 и более поздних моделей ZX Spectrum . CP/M 3 также использовался в NIAT — специальном карманном компьютере, разработанном для внутреннего использования  AC Nielsen и оснащенном SSD- памятью объемом 1 МБ .

Многопользовательский

В 1979 году была выпущена многопользовательская совместимая производная CP/M. MP/M позволяла нескольким пользователям подключаться к одному компьютеру, используя несколько терминалов для предоставления каждому пользователю экрана и клавиатуры. Более поздние версии работали на 16-битных процессорах.

CP/M Плюс

Системное руководство CP/M Plus (CP/M 3)

Последней 8-битной версией CP/M была версия 3, часто называемая CP/M Plus, выпущенная в 1983 году. [19] Ее BDOS была разработана Дэвидом К. Брауном. [19] Она включала управление переключением банков памяти MP/M в однопользовательской однозадачной операционной системе, совместимой с приложениями CP/M 2.2. Таким образом, CP/M 3 могла использовать более 64 КБ памяти на процессоре 8080 или Z80. Система могла быть настроена для поддержки отметки даты файлов. [19] Программное обеспечение для распространения операционной системы также включало перемещаемый ассемблер и компоновщик. [2] CP/M 3 была доступна для последнего поколения 8-битных компьютеров, в частности, Amstrad PCW, Amstrad CPC , ZX Spectrum +3 , Commodore 128 , машин MSX и Radio Shack TRS-80 Model 4. [ 30]

16-битные версии

Дистрибутив на дискете DEC PRO-CP/M-80 для сопроцессора Z80-A в серии DEC Professional 3xx

Существовали также версии CP/M для некоторых 16-разрядных процессоров.

Первой версией в 16-битном семействе была CP/M-86 для Intel 8086 в ноябре 1981 года. [31] Кэтрин Стратински была руководителем проекта для развивающейся линейки операционных систем CP/M-86. [19] [20] В этот момент оригинальная 8-битная CP/M стала известна под ретронимом CP/M-80, чтобы избежать путаницы. [31]

Ожидалось, что CP/M-86 станет стандартной операционной системой для новых IBM PC , но DRI и IBM не смогли договориться об условиях разработки и лицензирования. Вместо этого IBM обратилась к Microsoft, и Microsoft поставила PC DOS на основе 86-DOS . Хотя CP/M-86 стала опцией для IBM PC после того, как DRI пригрозила судебным иском, она так и не обогнала систему Microsoft. Большинство клиентов оттолкнула значительно более высокая цена, которую IBM взимала за CP/M-86 по сравнению с PC DOS ( 240 и 40 долларов США соответственно). [32]

Когда Digital Equipment Corporation (DEC) выпустила Rainbow 100 , чтобы конкурировать с IBM, она поставлялась с CP/M-80, использующим чип Z80, CP/M-86 или MS-DOS, использующим микропроцессор 8088, или CP/M-86/80, использующим оба. Процессоры Z80 и 8088 работали одновременно. [33] [34] Преимуществом Rainbow было то, что он мог продолжать запускать 8-битное программное обеспечение CP/M, сохраняя, возможно, значительные инвестиции пользователя при переходе в 16-битный мир MS-DOS. [33] Похожая двухпроцессорная адаптация для CompuPro System 816  [sr] была названа CP/M 8-16 . Адаптация CP/M-86 для Zenith Z-100 на базе 8085/8088 также поддерживала запуск программ для обоих своих процессоров.

Вскоре после CP/M-86 появилась еще одна 16-битная версия CP/M — CP/M-68K для Motorola 68000. Первоначальная версия CP/M-68K в 1982 году была написана на языке Pascal/MT+68k , но позже была перенесена на C. CP/M-68K, уже работающая на системах Motorola EXORmacs , изначально предназначалась для использования в компьютере Atari ST , но Atari решила использовать более новую дисковую операционную систему под названием GEMDOS . CP/M-68K также использовалась на компьютерах SORD M68 и M68MX. [35]

В 1982 году также был порт с CP/M-68K на 16-битный Zilog Z8000 для Olivetti M20 , написанный на языке C , названный CP/M-8000 . [36] [37]

Эти 16-битные версии CP/M требовали перекомпиляции прикладных программ для новых процессоров. Некоторые программы, написанные на языке ассемблера, могли быть автоматически транслированы для нового процессора. Одним из инструментов для этого был XLT86 от Digital Research , который транслировал исходный код .ASM для процессора Intel 8080 в исходный код .A86 для Intel 8086. Транслятор также оптимизировал вывод для размера кода и заботился о соглашениях о вызовах, так что программы CP/M-80 и MP/M-80 могли быть автоматически портированы на платформы CP/M-86 и MP/M-86 . Сам XLT86 был написан на PL/I-80 и был доступен для платформ CP/M-80, а также для VAX/VMS . [38]

Смещение по MS-DOS

Многие ожидали, что CP/M станет стандартной операционной системой для 16-разрядных компьютеров. [39] В 1980 году IBM обратилась к Digital Research по предложению Билла Гейтса [40] с просьбой лицензировать будущую версию CP/M для своего нового продукта — персонального компьютера IBM. После неудачной попытки получить подписанное соглашение о неразглашении переговоры провалились, и IBM вместо этого заключила контракт с Microsoft на поставку операционной системы. [41] Полученный в результате продукт, MS-DOS , вскоре начал продаваться лучше, чем CP/M.

Многие из основных концепций и механизмов ранних версий MS-DOS напоминали таковые из CP/M. Внутренние элементы, такие как структуры данных для обработки файлов, были идентичны, и обе ссылались на дисководы с буквой ( A:, B:, и т. д.). Главным новшеством MS-DOS была файловая система FAT . Это сходство упростило перенос популярного программного обеспечения CP/M, такого как WordStar и dBase . Однако концепция CP/M об отдельных пользовательских областях для файлов на одном диске так и не была перенесена в MS-DOS. Поскольку MS-DOS имела доступ к большему объему памяти (так как немногие IBM PC продавались с объемом памяти менее 64 КБ, в то время как CP/M при необходимости могла работать с 16 КБ), в оболочку командной строки было встроено больше команд , что сделало MS-DOS несколько более быстрой и простой в использовании на компьютерах на основе гибких дисков.

Хотя одним из первых периферийных устройств для IBM PC была карта расширения типа SoftCard, которая позволяла запускать 8-битное программное обеспечение CP/M, [42] InfoWorld заявил в 1984 году, что попытки представить CP/M на домашнем рынке были в значительной степени безуспешными, и большая часть программного обеспечения CP/M была слишком дорогой для домашних пользователей. [43] В 1986 году журнал заявил, что Kaypro прекратила производство 8-битных моделей на базе CP/M, чтобы сосредоточиться на продажах совместимых с MS-DOS систем, намного позже того, как большинство других поставщиков прекратили производство нового оборудования и программного обеспечения для CP/M. [44] CP/M быстро потеряла долю рынка, поскольку рынок микрокомпьютеров перешел на IBM-совместимую платформу, и она так и не вернула себе былую популярность. Журнал Byte , в то время один из ведущих отраслевых журналов для микрокомпьютеров, по сути, прекратил освещать продукты CP/M в течение нескольких лет после появления IBM PC. Например, в 1983 году еще встречались некоторые объявления о платах S-100 и статьи о программном обеспечении CP/M, но к 1987 году их в журнале уже не было.

Более поздние версии CP/M-86 добились значительных успехов в производительности и удобстве использования и стали совместимы с MS-DOS. Чтобы отразить эту совместимость, название было изменено, и CP/M-86 стал DOS Plus , который в свою очередь стал DR-DOS .

ЗКПР

ZCPR [45] (замена процессора команд Z80) была представлена ​​2 февраля 1982 года как замена стандартного процессора команд консоли Digital Research (CCP) и изначально была написана группой компьютерных любителей, которые называли себя «Группа CCP». Это были Фрэнк Ванчо, Кит Петерсен (архивариус Simtel в то время), Рон Фаулер, Чарли Стром, Боб Матиас и Ричард Конн. Ричард был, по сути, движущей силой этой группы (все они поддерживали связь по электронной почте).

ZCPR1 был выпущен на диске, выпущенном SIG/M (Special Interest Group/Microcomputers), частью Клуба компьютерных любителей Нью-Джерси .

ZCPR2 был выпущен 14 февраля 1983 года. Он был выпущен в виде набора из десяти дисков от SIG/M. ZCPR2 был обновлен до версии 2.3, а также был выпущен в коде 8080, что позволило использовать ZCPR2 в системах 8080 и 8085.

ZCPR3 [46] был выпущен 14 июля 1984 года в виде набора из девяти дисков от SIG/M. Код для ZCPR3 также мог быть скомпилирован (с урезанными функциями) для 8080 и мог работать на системах, не имеющих необходимого микропроцессора Z80 . Функции ZCPR начиная с версии 3 включали оболочки, псевдонимы, перенаправление ввода-вывода, управление потоком, именованные каталоги, пути поиска, пользовательские меню, пароли и онлайн-справку. В январе 1987 года Ричард Конн прекратил разработку ZCPR, и Echelon попросил Джея Сейджа (у которого уже был частный улучшенный ZCPR 3.1) продолжить работу над ним. Таким образом, был разработан и выпущен ZCPR 3.3. ZCPR 3.3 больше не поддерживал серию микропроцессоров 8080 и добавил большинство функций любого обновления в линейке ZCPR. ZCPR 3.3 также включал полный набор утилит со значительно расширенными возможностями. Несмотря на горячую поддержку со стороны пользователей CP/M того времени, одного ZCPR было недостаточно, чтобы замедлить упадок CP/M.

Модель оборудования

Компьютер Sanco 8001, работающий под управлением CP/M 2.2 (1982)
Картридж CP/M для Commodore 64

Минимальная 8-битная система CP/M будет содержать следующие компоненты:

  • Компьютерный терминал, использующий набор символов ASCII
  • Микропроцессор Intel 8080 (а позднее 8085) или Zilog Z80
    • Процессоры NEC V20 и V30 поддерживают режим эмуляции 8080, который может запускать 8-битный CP/M на компьютере PC-DOS/MS-DOS, оборудованном таким образом, хотя любой клон ПК может запустить CP/M-86. [47] [48]
  • Не менее 16 килобайт оперативной памяти , начиная с адреса 0
  • Средство для загрузки первого сектора дискеты
  • По крайней мере один дисковод

Единственной аппаратной системой, которую CP/M, продаваемая Digital Research, поддерживала, была Intel 8080 Development System. Производители систем, совместимых с CP/M, настраивали части операционной системы для собственной комбинации установленной памяти, дисководов и консольных устройств. CP/M также работала на системах на базе процессора Zilog Z80, поскольку Z80 был совместим с кодом 8080. В то время как распределенное ядро ​​CP/M Digital Research (BDOS, CCP, основные переходные команды) не использовало никаких инструкций, специфичных для Z80, многие системы на базе Z80 использовали код Z80 в системном BIOS, и многие приложения были предназначены для машин CP/M на базе Z80.

Digital Research впоследствии объединилась с Zilog и American Microsystems для создания Personal CP/M, версии операционной системы на основе ПЗУ, нацеленной на недорогие системы, которые потенциально могли бы быть оснащены без дисководов. [49] Впервые представленная в Sharp MZ-800, кассетной системе с дополнительными дисководами, [50] Personal CP/M была описана как «переписанная для использования преимуществ улучшенного набора инструкций Z-80» в отличие от сохранения портативности с 8080. American Microsystems анонсировала совместимый с Z80 микропроцессор S83, имеющий 8 КБ встроенного ПЗУ для операционной системы и BIOS, а также комплексную логику для взаимодействия с 64-килобитными динамическими устройствами RAM. [51] Цена за единицу S83 была указана в размере 32 долл. США при партии в 1000 единиц. [52]

На большинстве машин начальная загрузка представляла собой минимальный загрузчик в ПЗУ в сочетании с некоторыми средствами минимального переключения банков или средствами внедрения кода на шину (поскольку 8080 для запуска требуется загрузочный код по адресу 0, в то время как CP/M требуется ОЗУ); на других машинах эту начальную загрузку приходилось вводить в память с помощью элементов управления на передней панели каждый раз при запуске системы.

CP/M использовала 7-битный набор ASCII. Остальные 128 символов, которые стали возможны благодаря 8-битному байту, не были стандартизированы. Например, один Kaypro использовал их для греческих символов, а машины Osborne использовали 8-й битовый набор для обозначения подчеркнутого символа. WordStar использовал 8-й бит как маркер конца слова. Международные системы CP/M чаще всего использовали стандарт ISO 646 для локализованных наборов символов, заменяя определенные символы ASCII локализованными символами, а не добавляя их за пределы 7-битной границы.

Компоненты

В 8-битных версиях во время работы операционная система CP/M, загруженная в память, имела три компонента: [3]

  • Базовая система ввода-вывода (BIOS),
  • Базовая дисковая операционная система (BDOS),
  • Процессор консольных команд (CCP).

BIOS и BDOS были резидентными в памяти, в то время как CCP был резидентным в памяти, если только не был перезаписан приложением, в этом случае он автоматически перезагружался после завершения работы приложения. Также предоставлялся ряд временных команд для стандартных утилит. Временные команды находились в файлах с расширением .COM на диске.

BIOS напрямую управлял аппаратными компонентами, отличными от ЦП и основной памяти. Он содержал такие функции, как ввод и вывод символов, а также чтение и запись секторов диска. BDOS реализовал файловую систему CP/M и некоторые абстракции ввода/вывода (например, перенаправление) поверх BIOS. CCP принимал пользовательские команды и либо выполнял их напрямую (внутренние команды, такие как DIR для отображения каталога или ERA для удаления файла), либо загружал и запускал исполняемый файл с указанным именем (временные команды, такие как PIP.COM для копирования файлов или STAT.COM для отображения различной файловой и системной информации). Сторонние приложения для CP/M также по сути были временными командами.

Команды BDOS, CCP и стандартные переходные команды были одинаковыми во всех установках конкретной версии CP/M, но часть BIOS всегда адаптировалась к конкретному оборудованию.

Например, добавление памяти к компьютеру означало, что систему CP/M приходилось переустанавливать, чтобы временные программы могли использовать дополнительное пространство памяти. Служебная программа (MOVCPM) была предоставлена ​​с системным дистрибутивом, который позволял перемещать объектный код в разные области памяти. Служебная программа корректировала адреса в инструкциях абсолютного перехода и вызова подпрограмм на новые адреса, требуемые новым расположением операционной системы в памяти процессора. Эту новую исправленную версию затем можно было сохранить на новом диске, что позволяло прикладным программам получать доступ к дополнительной памяти, доступной путем перемещения компонентов системы. После установки операционная система (BIOS, BDOS и CCP) хранилась в зарезервированных областях в начале любого диска, который использовался для загрузки системы. При запуске загрузчик (обычно содержащийся в микросхеме прошивки ROM) загружал операционную систему с диска в приводе A:.

По современным стандартам CP/M был примитивен из-за экстремальных ограничений на размер программы. В версии 1.0 не было возможности обнаружить измененный диск. Если пользователь менял диски, не перечитав вручную каталог диска, система записывала данные на новый диск, используя информацию каталога старого диска, разрушая данные, хранящиеся на диске. Начиная с версии 1.1 или 1.2, смена диска и попытка записи на него до того, как его каталог был прочитан, приводила к появлению фатальной ошибки. Это позволяло избежать перезаписи диска, но требовало перезагрузки и потери данных, которые должны были храниться на диске.

Большая часть сложности в CP/M была изолирована в BDOS и в меньшей степени в CCP и переходных командах. Это означало, что при переносе ограниченного количества простых процедур в BIOS на определенную аппаратную платформу вся ОС работала. Это значительно сокращало время разработки, необходимое для поддержки новых машин, и было одной из главных причин широкого использования CP/M. Сегодня этот вид абстракции является общим для большинства ОС ( уровень абстракции оборудования ), но во времена рождения CP/M ОС обычно предназначались для работы только на одной машинной платформе, и многослойные конструкции считались ненужными.

Процессор консольных команд

Снимок экрана, показывающий список каталогов CP/M 3.0 с использованием DIRкоманды на домашнем компьютере Commodore 128

Процессор команд консоли, или CCP, принимал ввод с клавиатуры и передавал результаты на терминал. Сам CP/M работал либо с терминалом печати, либо с видеотерминалом. Все команды CP/M должны были вводиться в командной строке . Консоль чаще всего отображала A>приглашение, чтобы указать текущий дисковод по умолчанию. При использовании с видеотерминалом за этим обычно следовал мигающий курсор , предоставленный терминалом. CCP ожидал ввода от пользователя. Внутренняя команда CCP в форме буквы диска с последующим двоеточием могла использоваться для выбора диска по умолчанию. Например, ввод B:и нажатие клавиши Enter в командной строке изменят дисковод по умолчанию на B, а командная строка затем станет B>указывать на это изменение.

Интерфейс командной строки CP/M был создан по образцу операционных систем Digital Equipment , таких как RT-11 для PDP-11 и OS/8 для PDP-8 . [ требуется цитата ] Команды имели форму ключевого слова, за которым следовал список параметров, разделенных пробелами или специальными символами. Подобно встроенной оболочке Unix , если внутренняя команда была распознана, она выполнялась самой CCP. В противном случае она пыталась найти исполняемый файл на текущем зарегистрированном диске и (в более поздних версиях) в области пользователя, загружать его и передавать ему любые дополнительные параметры из командной строки. Они назывались «временными» программами. По завершении BDOS перезагружала CCP, если она была перезаписана прикладными программами — это позволяло временным программам иметь большее пространство памяти.

Сами команды иногда могли быть неясными. Например, команда для дублирования файлов называлась PIP(Peripheral-Interchange-Program), по названию старой утилиты DEC, использовавшейся для этой цели. Формат параметров, передаваемых программе, не был стандартизирован, поэтому не было единого символа опции, который отличал бы опции от имен файлов. Разные программы могли использовать и использовали разные символы.

Процессор команд консоли CP/M включает DIR , ERA , REN , SAVE, TYPE и USER в качестве встроенных команд. [53] К временным командам в CP/M относятся ASM , DDT , DUMP, ED, LOAD, MOVCPM  [pl] , PIP , STAT, SUBMIT и SYSGEN. [53]

CP/M Plus (CP/M версии 3) включает DIR (отображение списка файлов из каталога, за исключением отмеченных атрибутом SYS), DIRSYS / DIRS (список файлов, отмеченных атрибутом SYS в каталоге), ERASE / ERA (удаление файла), RENAME / REN (переименование файла), TYPE / TYP (отображение содержимого файла символов ASCII) и USER / USE (изменение номера пользователя) в качестве встроенных команд: [54] CP/M 3 позволяет пользователю сокращать встроенные команды. [55] К временным командам в CP/M 3 относятся COPYSYS, DATE , DEVICE, DUMP, ED, GET, HELP , HEXCOM, INITDIR, LINK, MAC, PIP, PUT, RMAC, SET, SETDEF, SHOW, SID, SUBMIT и XREF. [55]

Базовая дисковая операционная система

Базовая дисковая операционная система [14] [13] или BDOS [14] [13] обеспечивала доступ к таким операциям, как открытие файла, вывод на консоль или печать. Прикладные программы загружали регистры процессора с кодом функции для операции и адресами для параметров или буферов памяти и вызывали фиксированный адрес в памяти. Поскольку адрес был тем же самым независимо от объема памяти в системе, прикладные программы работали одинаково для любого типа или конфигурации оборудования.

Базовая система ввода-вывода

Реклама CP/M в выпуске журнала InfoWorld от 11 декабря 1978 г.

Базовая система ввода-вывода, или BIOS, [14] [13] обеспечивала функции самого низкого уровня, необходимые операционной системе.

Они включали чтение или запись отдельных символов на системную консоль и чтение или запись сектора данных с диска. BDOS обрабатывала часть буферизации данных с дискеты, но до CP/M 3.0 она предполагала фиксированный размер сектора диска в 128 байт, как это использовалось на 8-дюймовых дискетах одинарной плотности . Поскольку большинство форматов дисков 5,25 дюйма использовали более крупные сектора, блокировка и деблокировка, а также управление областью буфера диска обрабатывались специфичным для модели кодом в BIOS.

Настройка была необходима, поскольку выбор оборудования не ограничивался совместимостью с каким-либо одним популярным стандартом. Например, некоторые производители использовали отдельный компьютерный терминал, в то время как другие проектировали встроенную интегрированную систему видеодисплея. Последовательные порты для принтеров и модемов могли использовать различные типы микросхем UART , а адреса портов не были фиксированными. Некоторые машины использовали отображенный в память ввод-вывод вместо адресного пространства ввода-вывода 8080. Все эти вариации в оборудовании были скрыты от других модулей системы с помощью BIOS, который использовал стандартные точки входа для служб, необходимых для работы CP/M, таких как символьный ввод-вывод или доступ к блоку диска. Поскольку поддержка последовательной связи с модемом была очень рудиментарной в BIOS или могла вообще отсутствовать, для программ CP/M, которые использовали модемы, было обычной практикой иметь установленную пользователем накладку, содержащую весь код, необходимый для доступа к последовательному порту конкретной машины.

Приложения

Распределение 5+14 -дюймовые дискеты и упаковка для последней версии (версии 4) текстового процессора WordStar, выпущенной для 8-битной CP/M

WordStar, один из первых широко используемых текстовых процессоров , и dBase , ранняя и популярная программа для работы с базами данных для микрокомпьютеров, были изначально написаны для CP/M. Два ранних аутлайнера , KAMAS (Knowledge and Mind Amplification System) и его урезанный преемник Out-Think (без средств программирования и переоборудованный для совместимости с 8080/V20) также были написаны для CP/M, хотя позже переписаны для MS-DOS. Turbo Pascal , предок Borland Delphi , и Multiplan , предок Microsoft Excel , также дебютировали на CP/M до того, как стали доступны версии для MS-DOS. VisiCalc , первая в мире программа для работы с электронными таблицами, была доступна для CP/M. Другая компания, Sorcim , создала свою электронную таблицу SuperCalc для CP/M, которая впоследствии стала лидером рынка и фактическим стандартом для CP/M. Supercalc стал конкурентом на рынке электронных таблиц в мире MS-DOS. AutoCAD , приложение САПР от Autodesk, дебютировало на CP/M. Было доступно множество компиляторов и интерпретаторов для популярных языков программирования того времени (таких как BASIC , Turbo Pascal от Borland , FORTRAN и даже PL/I [56] ), среди них несколько самых ранних продуктов Microsoft .

Программное обеспечение CP/M часто поставлялось с установщиками , которые адаптировали его для самых разных компьютеров. [57] Исходный код программ BASIC был легкодоступен, и большинство форм защиты от копирования были неэффективны в операционной системе. [58] Владелец Kaypro II, например, получал программное обеспечение в формате Xerox 820, затем копировал его и запускал с дисков формата Kaypro. [59]

Отсутствие стандартизированной графической поддержки ограничивало видеоигры , но были портированы различные персонажные и текстовые игры , такие как Telengard , [60] Gorillas , [61] Hamurabi , Lunar Lander , а также ранняя интерактивная фантастика , включая серию Zork и Colossal Cave Adventure . Специалист по текстовым приключениям Infocom был одним из немногих издателей, которые последовательно выпускали свои игры в формате CP/M. Lifeboat Associates начала собирать и распространять написанное пользователями «бесплатное» программное обеспечение. Одним из первых был XMODEM , который обеспечивал надежную передачу файлов через модем и телефонную линию. Другой программой, родной для CP/M, был процессор контуров KAMAS. [ необходима цитата ]

Зона временной программы

Память чтения/записи между адресом 0100 в шестнадцатеричном формате и самым низким адресом BDOS была областью переходных программ (TPA), доступной для прикладных программ CP/M. Хотя все процессоры Z80 и 8080 могли адресовать 64 килобайта памяти, объем, доступный для прикладных программ, мог варьироваться в зависимости от конструкции конкретного компьютера. Некоторые компьютеры использовали большие части адресного пространства для таких вещей, как ПЗУ BIOS или память видеодисплея. В результате некоторые системы имели больше доступной памяти TPA, чем другие. Переключение банков было распространенной техникой, которая позволяла системам иметь большую TPA, переключая при этом пространство ПЗУ или видеопамяти по мере необходимости. CP/M 3.0 также позволял частям BDOS находиться в памяти с переключением банков.

Отладка приложения

CP/M поставлялся с динамическим отладочным инструментом, прозванным DDT (в честь инсектицида, т.е. средства от ошибок ), который позволял исследовать и манипулировать модулями памяти и программ, а также выполнять программу по одному шагу за раз. [62] [63] [64]

Программы для резидентов

Первоначально CP/M не поддерживал эквивалент программ terminate and stay resident (TSR), как в DOS. Программисты могли писать программное обеспечение, которое могло перехватывать определенные вызовы операционной системы и расширять или изменять их функциональность. Используя эту возможность, программисты разрабатывали и продавали вспомогательные настольные программы, такие как SmartKey , утилита клавиатуры для назначения любой строки байтов любой клавише. [65] Однако CP/M 3 добавила поддержку динамически загружаемых расширений Resident System Extensions (RSX). [54] [19] Так называемый файл команд null мог использоваться, чтобы позволить CCP загружать RSX без переходной программы. [54] [19] Подобные решения, такие как RSM (для Resident System Modules ), также были модернизированы для систем CP/M 2.2 третьими сторонами. [66] [67] [68]

Установка программного обеспечения

Хотя CP/M предоставляла некоторую аппаратную абстракцию для стандартизации интерфейса для дискового ввода-вывода или консольного ввода-вывода, прикладные программы по-прежнему обычно требовали установки для использования всех функций такого оборудования, как принтеры и терминалы. Часто они контролировались escape-последовательностями , которые приходилось изменять для разных устройств. Например, escape-последовательность для выбора жирного шрифта на принтере различалась у разных производителей, а иногда и у разных моделей в пределах диапазона производителя. Эта процедура не определялась операционной системой; пользователь обычно запускал программу установки, которая либо позволяла выбирать из ряда устройств, либо позволяла поэлементно редактировать escape-последовательности, необходимые для доступа к функции. Это приходилось повторять для каждой прикладной программы, поскольку для этих устройств не было централизованной службы операционной системы.

Коды инициализации для каждой модели принтера должны были быть записаны в приложение. Чтобы использовать такую ​​программу, как Wordstar, с более чем одним принтером (например, быстрым матричным принтером или более медленным, но презентационного качества принтером daisy wheel ), нужно было подготовить отдельную версию Wordstar и загрузить версию Wordstar, соответствующую выбранному принтеру (и выйти и перезагрузить для смены принтеров).

Форматы дисков

Формат IBM System/34 и IBM 3740 с одинарной плотностью и односторонней записью — это стандартный формат 8-дюймовых дискет CP/M . Стандартного формата 5,25-дюймовых дисков CP/M не существует, Kaypro, Morrow Designs , Osborne и другие используют свои собственные. [69] [23] [70] Некоторые форматы были популярнее других. Большая часть программного обеспечения была доступна в формате Xerox 820, и другие компьютеры, такие как Kaypro II, были совместимы с ним, [59] [71] но InfoWorld подсчитал в сентябре 1981 года, что «около двух десятков форматов были достаточно популярны, чтобы создатели программного обеспечения должны были рассмотреть их, чтобы охватить максимально широкий рынок». [21] JRT Pascal , например, предоставлял версии на 5,25-дюймовых дисках для North Star , Osborne, Apple, Heath hard sector и soft sector и Superbrain , а также одну 8-дюймовую версию. [72] Ellis Computing также предложила свое программное обеспечение для обоих форматов Heath и 16 других 5,25-дюймовых форматов, включая две различные модификации TRS-80 CP/M. [73]

Использовались различные форматы в зависимости от характеристик конкретных систем и, в некоторой степени, от выбора разработчиков. CP/M поддерживала опции для управления размером зарезервированных и каталоговых областей на диске, а также сопоставление между логическими секторами диска (как их видят программы CP/M) и физическими секторами, как они выделены на диске. Существовало много способов настройки этих параметров для каждой системы [74], но после того, как они были установлены, не существовало стандартизированного способа для системы загружать параметры с диска, отформатированного в другой системе.

Степень переносимости между различными машинами CP/M зависела от типа используемого дисковода и контроллера, поскольку в эпоху CP/M существовало множество различных типов дискет как в 8-дюймовом, так и в 5,25-дюймовом формате. Диски могли быть с жесткими или мягкими секторами, одинарной или двойной плотности, односторонними или двухсторонними, 35-дорожечными, 40-дорожечными, 77-дорожечными или 80-дорожечными, а также расположение секторов, размер и чередование также могли сильно различаться. Хотя программы-трансляторы могли позволить пользователю читать типы дисков с разных машин, тип дисковода и контроллер также были факторами. К 1982 году односторонние 40-дорожечные 5,25-дюймовые диски с мягкими секторами стали самым популярным форматом для распространения программного обеспечения CP/M, поскольку они использовались наиболее распространенными машинами потребительского уровня того времени, такими как Apple II, TRS-80, Osborne 1, Kaypro II и IBM PC. Программа-транслятор позволяла пользователю читать любые диски на его машине, которые имели схожий формат — например, Kaypro II мог читать диски TRS-80 , Osborne , IBM PC и Epson . Другие типы дисков, такие как 80-дорожечные или жестко секторные, были совершенно нечитаемы. Первая половина двухсторонних дисков (например, Epson QX-10) могла быть прочитана, поскольку CP/M обращался к дорожкам диска последовательно, причем дорожка 0 была первой (самой внешней) дорожкой стороны 1, а дорожка 79 (на 40-дорожечном диске) была последней (самой внутренней) дорожкой стороны 2. Пользователи Apple II не могли использовать ничего, кроме формата GCR от Apple, и поэтому должны были получить программное обеспечение CP/M на дисках формата Apple или же передавать его по последовательному каналу.

Фрагментированный рынок CP/M, требующий от дистрибьюторов либо иметь на складе несколько форматов дисков, либо инвестировать в многоформатное копировальное оборудование по сравнению с более стандартизированными форматами дисков IBM PC , стал фактором, способствовавшим быстрому устареванию CP/M после 1981 года.

Одной из последних заметных машин с поддержкой CP/M был Commodore 128 , появившийся в 1985 году, который имел поддержку Z80 для CP/M в дополнение к своему собственному режиму с использованием процессора на основе 6502. Для использования CP/M требовался дисковод 1571 или 1581 , который мог читать диски формата MFM с программным сектором и 40 дорожками .

Первый компьютер, использовавший 3,5-дюймовый дисковод, Sony SMC-70 , [75] работал под управлением CP/M 2.2. Commodore 128, ноутбук Bondwell-2 , Micromint/Ciarcia SB-180, [76] MSX и TRS-80 Model 4 (работающий под управлением Montezuma CP/M 2.2) также поддерживали использование CP/M с 3,5-дюймовыми дискетами. CP/AM, версия CP/M от Applied Engineering для Apple II, также поддерживала 3,5-дюймовые диски (а также RAM-диски на картах RAM, совместимых с картой расширения памяти Apple II). [77] Amstrad PCW сначала работал под управлением CP/M с использованием 3-дюймовых дисководов, а затем перешел на 3,5-дюймовые.

Файловая система

Имена файлов указывались как строка длиной до восьми символов, за которой следовала точка, а затем расширение имени файла длиной до трех символов ( формат имени файла "8.3" ). Расширение обычно определяло тип файла. Например, .COMуказывало на исполняемый файл программы, а .TXTуказывало на файл, содержащий текст ASCII . Символы в именах файлов, введенных в командной строке, преобразовывались в верхний регистр, но это не было принудительно выполнено операционной системой. Программы ( ярким примером является MBASIC ) могли создавать имена файлов, содержащие строчные буквы, на которые затем нельзя было легко ссылаться в командной строке.

Каждый дисковод идентифицировался буквой диска , например, диск Aи диск B. Для ссылки на файл на определенном диске буква диска была добавлена ​​к имени файла и разделена двоеточием, например, A:FILE.TXT. Без префикса буквы диска доступ осуществлялся к файлам на текущем диске по умолчанию. [78]

Размер файла указывался как количество 128-байтовых записей (непосредственно соответствующих секторам диска на 8-дюймовых дисках), занимаемых файлом на диске. Не существовало общепринятого способа указания точных побайтовых размеров файлов. Текущий размер файла поддерживался в блоке управления файлами (FCB) операционной системы. Поскольку многие прикладные программы (например, текстовые редакторы ) предпочитают работать с файлами как с последовательностями символов, а не как с последовательностями записей, по соглашению текстовые файлы завершались символом control-Z (ASCII SUB , шестнадцатеричное 1A). Таким образом, определение конца текстового файла включало проверку последней записи файла для нахождения завершающего control-Z. Это также означало, что вставка символа control-Z в середину файла обычно имела эффект усечения текстового содержимого файла.

С появлением более крупных сменных и фиксированных дисковых накопителей стали применяться формулы разблокировки дисков, что привело к увеличению количества дисковых блоков на логический блок размещения файлов. Хотя это позволяло использовать файлы большего размера, это также означало, что минимальный размер файла, который мог быть выделен, увеличивался с 1  КБ (на накопителях с одинарной плотностью) до 2 КБ (на накопителях с двойной плотностью) и так далее, вплоть до 32 КБ для файла, содержащего только один байт. Это приводило к неэффективному использованию дискового пространства, если на диске находилось большое количество небольших файлов.

Метки времени изменения файла не поддерживались в версиях до CP/M 2.2, но были дополнительной функцией в MP/M и CP/M 3.0. [19]

В файловой структуре CP/M 2.2 не было подкаталогов , но было предусмотрено 16 пронумерованных пользовательских областей для организации файлов на диске. Чтобы сменить пользователя, нужно было просто ввести «Пользователь X» в командной строке, где X — номер пользователя. Безопасность отсутствовала и считалась ненужной на персональном компьютере. Концепция пользовательской области заключалась в том, чтобы сделать однопользовательскую версию CP/M в некоторой степени совместимой с многопользовательскими системами MP/M. Распространенным исправлением для CP/M и производных операционных систем было сделать одну пользовательскую область доступной пользователю независимо от текущей установленной пользовательской области. Команда USER позволяла изменять пользовательскую область на любую область от 0 до 15. Пользователь 0 был по умолчанию. Если кто-то менял пользователя на другого, например, USER 1, то материал, сохраненный на диске для этого пользователя, был доступен только USER 1; USER 2 не мог его видеть или получать к нему доступ. Однако файлы, сохраненные в области USER 0, были доступны всем остальным пользователям; их местоположение было указано с помощью предварительного пути , поскольку файлы USER 0 были видны только тому, кто вошел в систему как USER 0. Функция области пользователя, возможно, была малополезна на небольших дискетах, но она была полезна для организации файлов на машинах с жесткими дисками . Целью этой функции было облегчить использование одного и того же компьютера для разных задач. Например, секретарь мог выполнять ввод данных , затем, после переключения областей USER, другой сотрудник мог использовать машину для выставления счетов без смешивания их файлов.

Графика

Текстовый вывод MBASIC отображался на монохромном мониторе, типичном для того времени

Хотя графически-способные системы S-100 существовали с момента коммерциализации шины S-100 , CP/M не предоставляла стандартизированной графической поддержки до 1982 года с GSX (Graphics System Extension). Из-за небольшого объема доступной памяти графика никогда не была распространенной функцией, связанной с 8-битными операционными системами CP/M. Большинство систем могли отображать только элементарные графики ASCII в текстовом режиме или с использованием пользовательского набора символов . Некоторые компьютеры в линейке Kaypro и TRS-80 Model 4 имели видеооборудование, поддерживающее блочные графические символы, и они были доступны программистам ассемблера и программистам BASIC с помощью CHR$команды. Model 4 могла отображать графику 640 на 240 пикселей с дополнительной платой высокого разрешения.

Производные

SCP- производная CP/M, работающая на восточногерманском роботроне PC 1715
CP/J версии 2.21, работающая на Elwro 804 Junior

Официально

Некоторые компании сделали официальные усовершенствования CP/M на основе исходного кода Digital Research. Примером может служить IMDOS для компьютера IMSAI 8080, созданного IMS Associates, Inc. , клона знаменитого Altair 8800 .

Совместимый

Другие CP/M-совместимые ОС были разработаны независимо и не использовали код Digital Research. Некоторые современные примеры:

  • Cromemco CDOS от Cromemco
  • MSX-DOS для компьютеров линейки MSX совместима с CP/M и может запускать программы CP/M.
  • Epson QX-10 поставляется с выбором CP/M или совместимым TPM-II или TPM-III.
  • Британский самолет SAM Coupé , совместимый с ZX Spectrum, имел опциональную совместимую с CP/M-2.2 операционную систему под названием Pro-DOS.
  • Компьютеры Amstrad/Schneider серии CPC 6xx (дисковые) и серии PCW поставлялись в комплекте с пакетом дисков CP/M.
  • Husky (компьютер) использовал загрузчик программ, управляемый через меню на основе ПЗУ, называемый DEMOS, который мог запускать множество приложений CP/M.
  • ZSDOS — это замена BDOS для CP/M-80 2.2, написанная Гарольдом Ф. Бауэром и Кэмероном У. Котриллом.
  • CPMish — это новая операционная система, совместимая с FOSS CP/M 2.2, которая изначально не содержала кода DR. Она включает ZSDOS в качестве BDOS и ZCPR (см. ранее ) в качестве командного процессора. Поскольку Брайан Спаркс, президент владельцев DR Lineo, дал разрешение в 2022 году на изменение и распространение кода CP/M, разработчик Дэвид Гивен обновляет CPMish некоторыми частями оригинального DR CP/M.
  • LokiOS — это совместимая с CP/M 2.2 ОС. Версия 0.9 была публично выпущена в 2023 году Дэвидом Китсоном как самостоятельно написанная операционная система, предназначенная для проекта Open Spectrum и включающая исходный код для BIOS , BDOS и интерфейса командной строки , а также других вспомогательных приложений и драйверов. Дистрибутив также включает оригинальный исходный код DR и утилиту, позволяющую пользователям производить горячую замену компонентов ОС (например, BDOS, CCP) на лету.

Улучшения

Некоторые операционные системы, совместимые с CP/M, расширили базовую функциональность настолько, что она значительно превзошла оригинал, например, многопроцессорная TurboDOS .

Восточный блок

Ряд производных CP/M-80 существовал в бывшем Восточном блоке под различными названиями, включая SCP ( Single User Control Program  [de] ), SCP/M, CP/A, [79] CP/J, CP/KC, CP/KSOB, CP/L, CP/Z, MICRODOS, BCU880, ZOAZ, OS/M, TOS/M, ZSDOS, M/OS, COS-PSA, DOS-PSA, CSOC, CSOS, CZ-CPM, DAC, HC и другие. [80] [81] Также существовали производные CP/M-86 под названиями SCP1700 , CP/K и K8918-OS . [81] Они были произведены восточногерманской компанией VEB Robotron и другими. [81] [80] [79]

Наследие

Ряд поведений, демонстрируемых Microsoft Windows, являются результатом обратной совместимости с MS-DOS, которая, в свою очередь, пыталась обеспечить некоторую обратную совместимость с CP/M. Буква диска и соглашения об именах файлов 8.3 в MS-DOS (и ранних версиях Windows) изначально были заимствованы из CP/M. [82] Подстановочные знаки соответствия , используемые Windows (? и *), основаны на символах CP/M, [83] как и зарезервированные имена файлов, используемые для перенаправления вывода на принтер («PRN:») и консоль («CON:»). Имена дисков A и B использовались для обозначения двух дисководов, которые обычно использовались системами CP/M; когда появились жесткие диски, они были обозначены как C, что сохранилось в MS-DOS как C:\>командная строка. [84] Управляющий символ^Z , обозначающий конец некоторых текстовых файлов, также можно отнести к CP/M. [85] Различные команды в DOS были смоделированы по образцу команд CP/M; Некоторые из них даже имели одинаковое имя, например DIR, REN/RENAME или TYPE (и ERA/ERASE в DR-DOS). Расширения файлов, такие как .TXTили , .COMпо-прежнему используются для идентификации типов файлов во многих операционных системах.

В 1997 и 1998 годах Caldera выпустила несколько двоичных файлов и исходного кода CP/M 2.2 под открытой лицензией , также разрешив распространение и модификацию дополнительных собранных файлов Digital Research, относящихся к семействам CP/M и MP/M, через «Неофициальный веб-сайт CP/M» Тима Олмстеда с 1997 года. [86] [87] [88] После смерти Олмстеда 12 сентября 2001 года [89] лицензия на распространение была обновлена ​​и расширена Lineo , который тем временем стал владельцем этих активов Digital Research 19 октября 2001 года. [90] [91] [1] [92] В октябре 2014 года, чтобы отметить 40-ю годовщину первой презентации CP/M, Музей компьютерной истории выпустил ранние версии исходного кода CP/M. [93]

По состоянию на 2018 год [обновлять]существует ряд активных людей и групп, занимающихся винтажными, любительскими и ретро-компьютерами , а также несколько небольших коммерческих предприятий, которые все еще разрабатывают и поддерживают компьютерные платформы, использующие CP/M (в основном 2.2) в качестве основной операционной системы.

Смотрите также

Ссылки

  1. ^ ab Gasperson, Tina (2001-11-26). "Коллекция CP/M снова в сети с лицензией Open Source - Прогулка по переулку памяти". The Register . Архивировано из оригинала 2017-09-01.
  2. ^ ab Mann, Stephen (1983-08-15). "CP/M Plus, третья, обновленная версия CP/M". InfoWorld . Том 5, № 33. стр. 49. ISSN  0199-6649.
  3. ^ abc Сандберг-Димент, Эрик (1983-05-03). "Персональные компьютеры: операционная система в середине" . The New York Times . Архивировано из оригинала 2019-12-23 . Получено 2019-11-15 .
  4. ^ abc Маркофф, Джон (1994-07-13). "Гэри Килдалл, 52, решающий игрок в разработке компьютеров, умирает" . The New York Times . Архивировано из оригинала 2017-10-03 . Получено 2019-11-18 .
  5. ^ ab Shustek, Len (2016-08-02). "In His Own Words: Gary Kildall". Замечательные люди . Музей компьютерной истории . Архивировано из оригинала 2016-12-17.
  6. ^ abc Kildall, Gary Arlen (2016-08-02) [1993]. Kildall, Scott ; Kildall, Kristin (ред.). Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry (рукопись, часть 1). Kildall Family. Архивировано из оригинала 2016-11-17 . Получено 2016-11-17 .
  7. ^ Ньютон, Гарри (2000). Телекоммуникационный словарь Ньютона . Нью-Йорк, Нью-Йорк, США: CMP Books . стр. 228. ISBN 1-57820-053-9.
  8. ^ Дамке, Марк (1983-07-01). "CP/M Plus: новая дисковая операционная система быстрее и эффективнее, чем CP/M". Журнал BYTE . Том 8, № 7. стр. 360.
  9. ^ "Compupro 8/16". old-computers.com . Архивировано из оригинала 2016-01-03 . Получено 2022-04-21 .
  10. Коул, Мэгги (25.05.1981). «Гэри Килдалл и история успеха цифровых исследований». InfoWorld . Том 3, № 10. Пало-Альто, Калифорния, США. С. 52–53. ISSN  0199-6649. Архивировано из оригинала 01.07.2024 . Получено 25.09.2020 .
  11. ^ Фрейбергер, Пол (1982-07-05). "История микрокомпьютеров, часть 3: генезис программного обеспечения". InfoWorld . Том 4, № 26. Пало-Альто, Калифорния, США. стр. 41. ISSN  0199-6649. Архивировано из оригинала 01.07.2024 . Получено 25.09.2020 .
  12. ^ Уэйт, Митчелл; Лафоре, Роберт В.; Вольпе, Джерри (1982). Официальная книга для Commodore 128. HW Sams. стр. 110. ISBN 978-0-67222456-0.
  13. ^ abcd Kildall, Gary Arlen (январь 1980 г.). «История CP/M, эволюция отрасли: точка зрения одного человека». Журнал доктора Добба . Том 5, № 1, № 41. стр. 6–7. Архивировано из оригинала 24.11.2016 . Получено 03.06.2013 .
  14. ^ abcd Килдалл, Гэри Арлен (июнь 1975 г.), CP/M 1.1 или 1.2 BIOS и BDOS для Lawrence Livermore Laboratories
  15. ^ Джонсон, Герберт Р. (2009-01-04). "CP/M and Digital Research Inc. (DRI) History". www.retrotechnology.com . Архивировано из оригинала 20-08-2008 . Получено 28-01-2009 .
  16. Уоррен, Джим (апрель 1976 г.). «Первое слово об операционной системе для дискет». Журнал доктора Добба . Том 1, № 4. Менло-Парк, Калифорния, США. стр. 5.Подзаголовок: Командный язык и возможности, аналогичные DECSYSTEM-10.
  17. ^ Digital Research (1978). CP/M . Пасифик-Гроув, Калифорния, США: Digital Research . OCLC  221485970.
  18. ^ Фрейбергер, Пол ; Майкл Суэйн (2000). Пожар в долине: Создание персонального компьютера. McGraw-Hill. стр. 175. ISBN 0071358927– через Интернет-архив.
  19. ^ abcdefgh Браун, Дэвид К.; Стратински, Кэтрин ; Уортон, Джон Харрисон (1983-05-14). "Повышение производительности операционной системы. Хеширование, кэширование и блокировка памяти — вот лишь некоторые из методов, используемых для повышения производительности в последней версии CP/M". Проектирование систем/Программное обеспечение. Проектирование компьютеров — Журнал компьютерных систем . Том 22, № 6. Литтлтон, Массачусетс, США: PennWell Publications / PennWell Publishing Company . С. 193–194, 196, 198, 200, 202, 204. ISSN  0010-4566. OCLC  1564597. КОДЕН  CMPDA. ark:/13960/t3hz07m4t . Получено 14 августа 2021 г.(7 страниц)
  20. ^ ab "Кэтрин Бетти Стратински". Monterey Herald (некролог). 2010-06-19. Архивировано из оригинала 2021-08-14 . Получено 2021-08-10 – через Legacy.com .
  21. ^ ab Hogan, Thom (1981-09-14). «Состояние микрокомпьютеров / Некоторые лошади, бегущие ноздря в ноздрю». стр. 10–12. Архивировано из оригинала 2024-06-24 . Получено 2019-04-08 .
  22. Wise, Deborah (1982-05-10). «Производители мэйнфреймов привлекают сторонних поставщиков микропрограммного обеспечения». InfoWorld . Том 4, № 18. С. 21–22. Архивировано из оригинала 18.03.2015 . Получено 25.01.2015 .
  23. ^ ab Meyer, Edwin W. (1982-06-14). "Xerox 820, система Xerox, работающая на CP/M". InfoWorld . Том 4, № 23. С. 101–104. Архивировано из оригинала 01.07.2024 . Получено 30.03.2019 .
  24. ^ Хоган, Том (1981-03-03). "Microsoft's Z80 SoftCard". InfoWorld . 3 (4). Popular Computing: 20–21. ISSN  0199-6649.
  25. ^ da Cruz, Frank (1984-04-27). "Новый выпуск KERMIT для CP/M-80". Info-Kermit Digest (список рассылки). Kermit Project, Columbia University. Архивировано из оригинала 2021-04-17 . Получено 2016-02-23 .[1]
  26. ^ Кларк, А.; Итон, Дж. М.; Дэвид, Д. Поуис Либбе (1983-10-26). CP/M — программная шина: спутник программиста. Sigma Press. ISBN 978-0905104188.
  27. ^ Джонсон, Герберт Р. (2014-07-30). "CP/M and Digital Research Inc. (DRI) History". Архивировано из оригинала 2021-06-29 . Получено 2021-06-29 .
  28. ^ Свейн, Майкл (1997-04-01). "Гэри Килдалл и коллегиальное предпринимательство". Журнал доктора Добба . Архивировано из оригинала 24-01-2007 . Получено 20-11-2006 .
  29. ^ Баннелл, Дэвид (февраль 1982 г.). «Человек за машиной? / Эксклюзивное интервью с гуру программного обеспечения Биллом Гейтсом». PC Magazine . Том 1, № 1. стр. 16–23 [20]. Архивировано из оригинала 2013-05-09 . Получено 2012-02-17 .
  30. ^ "Radio Shack Computer Catalog RSC-12 page 28". www.radioshackcomputercatalogs.com . Tandy/Radio Shack. Архивировано из оригинала 2016-10-13 . Получено 2016-07-06 .
  31. ^ ab "Digital Research Has CP/M-86 for IBM Displaywriter" (PDF) . Digital Research News - for Digital Research Users Everywhere . 1 (1). Пасифик-Гроув, Калифорния, США: Digital Research, Inc. : 2, 5, 7. Ноябрь 1981 г. Четвертый квартал. Архивировано (PDF) из оригинала 2021-04-17 . Получено 2020-01-18 .
  32. ^ Махер, Джимми (2017-07-31). «Полная история IBM PC, часть вторая: Империя DOS наносит удар». Ars Technica . стр. 3. Архивировано из оригинала 2019-07-08 . Получено 2019-09-08 .
  33. ^ ab Kildall, Gary Arlen (1982-09-16). "Запуск 8-битного программного обеспечения на двухпроцессорных компьютерах" (PDF) . Electronic Design : 157. Архивировано (PDF) из оригинала 2017-08-19 . Получено 2017-08-19 .
  34. ^ Снайдер, Джон Дж. (июнь 1983 г.). «DEC на каждом столе?». BYTE . Том 8, № 6. С. 104–106. Архивировано из оригинала 2015-01-02 . Получено 2015-02-05 .
  35. ^ "M 68 / M 68 MX". Архивировано из оригинала 2016-03-06 . Получено 2012-09-17 .
  36. ^ Томас, Ребекка А.; Йейтс, Джин Л. (1981-05-11). «Книги, платы и программное обеспечение для новых 16-разрядных процессоров». InfoWorld — газета для сообщества микрокомпьютеров . Том 3, № 9. Popular Computing, Inc., стр. 42–43. ISSN  0199-6649 . Получено 24.01.2020 .
  37. ^ Олмстед, Тим; Чаудри, Габриэль "Габи". "Исходный код цифрового исследования". Архивировано из оригинала 2016-02-05.
  38. ^ Digital Research (1981): XLT86 - Транслятор языка ассемблера 8080 в 8086 - Руководство пользователя. Архивировано 18 ноября 2016 г. в Wayback Machine Digital Research Inc, Пасифик-Гроув.
  39. ^ Пурнель, Джерри (март 1984 г.). «Новые машины, сети и разное программное обеспечение». BYTE . Том 9, № 3. стр. 46. Архивировано из оригинала 2015-02-02 . Получено 2013-10-22 .
  40. ^ Айзексон, Уолтер (2014). Новаторы: как группа изобретателей, хакеров, гениев и гиков создала цифровую революцию . Simon & Schuster . стр. 358. ISBN 978-1-47670869-0.
  41. ^ Беллис, Мэри. "Изобретатели современной компьютерной серии - История операционных систем MS-DOS, Microsoft, Тим Патерсон и Гэри Килдалл". Архивировано из оригинала 2012-04-27 . Получено 2010-09-09 .
  42. ^ Magid, Lawrence J. (февраль 1982). "Baby Blue". PC Magazine . Vol. 1, no. 1. p. 49. Архивировано из оригинала 2015-03-18 . Получено 2015-01-04 .
  43. Мейс, Скотт (11.06.1984). «CP/M ускользает от внутреннего рынка». InfoWorld . Том 6, № 24. стр. 46. Архивировано из оригинала 20.09.2021 . Получено 20.09.2021 .
  44. ^ Грот, Нэнси (1986-02-10). «Kaypro отступает на CP/M». InfoWorld . Том 8, № 6. стр. 6. Архивировано из оригинала 2022-03-20 . Получено 29-10-2021 .
  45. ^ "ZCPR - oldcomputers.ddns.org" .
  46. ^ "The Wonderful World of ZCPR3". 1987-11-30. Архивировано из оригинала 2019-12-23 . Получено 2019-11-18 .
  47. ^ "Эмуляторы CP/M для DOS". www.retroarchive.org/cpm . Luis Basto. Архивировано из оригинала 2016-07-09 . Получено 2016-07-06 .
  48. Дэвис, Рэнди (декабрь 1985 г. – январь 1986 г.). Написано в Гринвилле, Техас, США. «Новые микропроцессоры NEC — 8080, 8086 или 8088?» (PDF) . Micro Cornucopia . № 27. Бенд, Орегон, США: Micro Cornucopia Inc. стр. 4–7. ISSN  0747-587X. Архивировано (PDF) из оригинала 11.02.2020 . Получено 11.02.2020 .
  49. ^ "Плагин CP/M на подходе". Personal Computer News . 1984-01-14. стр. 7. Получено 2022-10-03 .
  50. Хетерингтон, Тони (февраль 1985 г.). «Sharp MZ-800». Personal Computer World . стр. 144–146, 149–150 . Получено 03.10.2022 .
  51. ^ Коулз, Рэй (июнь 1984 г.). "Дешевле, проще CP/M" (PDF) . Practical Computing . стр. 43 . Получено 2022-10-03 .
  52. ^ "AMI выпускает спецификации микрочипа CP/M". Microsystems . Июнь 1984. С. 12. Получено 25.03.2023 .
  53. ^ ab "CP/M Operating System Manual" (PDF) . Архивировано (PDF) из оригинала 2019-12-14 . Получено 2019-02-23 .
  54. ^ abc CP/M Plus (CP/M Version 3) Operating System Programmers Guide (PDF) (2-е изд.). Digital Research . Апрель 1983 [Январь 1983]. Архивировано (PDF) из оригинала 2016-11-25 . Получено 2016-11-25 .
  55. ^ ab CP/M Plus (CP/M Version 3) Operating System User's Guide (PDF) . Digital Research. 1983. Архивировано (PDF) из оригинала 2019-11-26 . Получено 2020-05-09 .
  56. ^ "PL/I Language Programmer's Guide" (PDF) . Digital Research . Архивировано (PDF) из оригинала 2019-09-25 . Получено 2019-11-18 .
  57. Мейс, Скотт (09.01.1984). «Производители клонов ПК IBM избегают полной совместимости». InfoWorld . Том 6, № 2 и 3. С. 79–81. Архивировано из оригинала 16.03.2015 . Получено 04.02.2015 .
  58. ^ Пурнель, Джерри (июнь 1983 г.). «Zenith Z-100, Epson QX-10, лицензирование программного обеспечения и проблема пиратства программного обеспечения». BYTE . Том 8, № 6. стр. 411. Архивировано из оригинала 09.06.2014 . Получено 20.10.2013 .
  59. ^ ab Derfler, Frank J. (1982-10-18). "Kaypro II — недорогой, 26-фунтовый портативный микро". InfoWorld . стр. 59. Архивировано из оригинала 2014-01-01 . Получено 2013-10-22 .
  60. ^ Loguidice, Bill (28.07.2012). "Подробнее об играх Avalon Hill Computer Games на платформах Heath/Zenith". Armchair Arcade . Архивировано из оригинала 23.07.2015 . Получено 22.07.2015 .
  61. ^ Sblendorio, Francesco (2015-12-01). "Гориллы для CP/M". GitHub . Архивировано из оригинала 2016-02-05 . Получено 2015-07-22 .
  62. ^ "Раздел 4 - CP/M Dynamic Debugging Tool". CP/M 2.2 . Архивировано из оригинала 2015-06-17 . Получено 2014-08-29 .
  63. ^ CP/M Dynamic Debugging Tool (DDT) - Руководство пользователя (PDF) . Digital Research . 1978 [1976]. Архивировано (PDF) из оригинала 2014-10-28 . Получено 2014-08-29 .
  64. ^ Шаэль (2010-06-26) [2009-12-09]. "DDT Utility". Архивировано из оригинала 2015-12-08 . Получено 2014-08-29 .
  65. ^ Брэнд, Стюарт (1984). Каталог программного обеспечения Whole Earth. Quantum Press/Doubleday. ISBN 978-0-38519166-1. Архивировано из оригинала 2015-07-04.
  66. ^ Либер, Экхард; фон Массенбах, Томас (1987). «CP/M 2 lernt dazu. Modulare Systemerweiterungen auch für das 'alte' CP/M». c't - журнал für Computertechnik (часть 1) (на немецком языке). Том. 1987, нет. 1. Хайзе Верлаг . стр. 124–135.
  67. ^ Либер, Экхард; фон Массенбах, Томас (1987). «CP/M 2 lernt dazu. Modulare Systemerweiterungen auch für das 'alte' CP/M». c't - журнал für Computertechnik (часть 2) (на немецком языке). Том. 1987, нет. 2. Хайзе Верлаг . стр. 78–85.
  68. ^ Хак, Алекс (2016-10-09). "RSM für CP/M 2.2". Homecompuer DDR (на немецком языке). Архивировано из оригинала 2016-11-25 . Получено 2016-11-25 .
  69. ^ Пурнель, Джерри (апрель 1982 г.). «Осборн 1, новые друзья Зика и пересмотр орфографии». BYTE . Том 7, № 4. стр. 212. Получено 24.05.2021 .
  70. ^ Уэйт, Митчелл ; Лафоре, Роберт В .; Вольпе, Джерри (1985). «Режим CP/M». Официальная книга для персонального компьютера Commodore 128. Howard W. Sams & Co. стр. 98. ISBN 0-672-22456-9.
  71. Fager, Roger; Bohr, John (сентябрь 1983 г.). "The Kaypro II". BYTE . Vol. 8, no. 9. p. 212. Архивировано из оригинала 2014-03-02 . Получено 2013-10-20 .
  72. ^ "Сейчас: полный CP/M Pascal всего за $29.95!". BYTE (реклама). Том 7, № 12. Декабрь 1982 г. стр. 11. Архивировано из оригинала 21.07.2016 . Получено 01.10.2016 .
  73. ^ "Ellis Computing". BYTE (реклама). Том 8, № 12. Декабрь 1983 г. стр. 69.
  74. ^ Джонсон-Лэрд, Энди (1983). "3". Справочник программиста CP/M . Беркли, Калифорния, США: Osborne/McGraw-Hill. ISBN 0-88134-103-7.
  75. ^ "Old-computers.com: The Museum". Архивировано из оригинала 2013-07-03 . Получено 2017-10-06 .
  76. ^ Ciarcia, Steve (сентябрь 1985 г.). "Build the SB-180" (PDF) . Журнал BYTE . CMP Media . стр. 100. Архивировано (PDF) из оригинала 29.11.2019 . Получено 18.06.2019 .
  77. ^ Руководство пользователя CP/AM 5.1. Прикладная инженерия. стр. 1. Получено 2020-05-22 .
  78. ^ "CP/M Builtin Commands". discordia.org.uk . Архивировано из оригинала 2008-04-12 . Получено 2009-01-28 .
  79. ^ ab Pohlers, Volker (2019-04-30). "CP/A". Homecomputer DDR (на немецком языке). Архивировано из оригинала 2020-02-21 . Получено 2020-02-21 .
  80. ^ аб Курт, Рюдигер; Гросс, Мартин; Голод, Генри (3 января 2019 г.). «Бетрибссистема». www.robotrontechnik.de (на немецком языке). Архивировано из оригинала 27 апреля 2019 г. Проверено 27 апреля 2019 г.
  81. ^ abc Курт, Рюдигер; Гросс, Мартин; Голод, Генри (3 января 2019 г.). «Бетрибссистема SCP». www.robotrontechnik.de (на немецком языке). Архивировано из оригинала 27 апреля 2019 г. Проверено 27 апреля 2019 г.
  82. ^ Чен, Рэймонд . "Почему MS-DOS использует имена файлов формата 8.3 вместо, скажем, 11.2 или 16.16?". The Old New Thing . Архивировано из оригинала 2011-09-22 . Получено 2010-12-17 .
  83. ^ Чен, Рэймонд . «Как работали подстановочные знаки в MS-DOS?». The Old New Thing . Архивировано из оригинала 2011-05-08 . Получено 2010-12-17 .
  84. ^ Чен, Рэймонд . "Что за дела с этими зарезервированными именами файлов вроде NUL и CON?". The Old New Thing . Архивировано из оригинала 2010-08-02 . Получено 2010-12-17 .
  85. ^ Чен, Рэймонд . "Почему текстовые файлы заканчиваются на Ctrl+Z?". The Old New Thing . Архивировано из оригинала 2011-02-06 . Получено 2010-12-17 .
  86. ^ Олмстед, Тим (1997-08-10). "CP/M Web site needs a host". Группа новостей : comp.os.cpm. Архивировано из оригинала 2017-09-01 . Получено 2018-09-09 .
  87. ^ Олмстед, Тим (1997-08-29). "ОБЪЯВЛЕНИЕ: сайт Caldera CP/M теперь запущен". Группа новостей : comp.os.cpm. Архивировано из оригинала 2017-09-01 . Получено 2018-09-09 .[2]
  88. ^ "Лицензионное соглашение". Caldera, Inc. 1997-08-28. Архивировано из оригинала 2018-09-08 . Получено 2015-07-25 .[3] [ постоянная мертвая ссылка ] [4] [ постоянная мертвая ссылка ]
  89. ^ "Тим Олмстед". 2001-09-12. Архивировано из оригинала 2018-09-09.
  90. ^ Sparks, Bryan Wayne (19.10.2001). Chaudry, Gabriele "Gaby" (ред.). "Лицензионное соглашение на материал CP/M, представленный на этом сайте". Lineo, Inc. Архивировано из оригинала 08.09.2018 . Получено 25.07.2015 .
  91. ^ Чаудри, Габриэль "Габи" (ред.). "Неофициальный веб-сайт CP/M". Архивировано из оригинала 2016-02-03.
  92. ^ Свейн, Майкл (2004-06-01). «CP/M и DRM». Журнал доктора Добба . Том 29, № 6. CMP Media LLC . С. 71–73. № 361. Архивировано из оригинала 2018-09-09 . Получено 2018-09-09 .[5] Архивировано 01.07.2024 на Wayback Machine
  93. ^ Лоус, Дэвид (2014-10-01). "Early Digital Research CP/M Source Code". Computer History Museum . Архивировано из оригинала 2015-07-27 . Получено 2015-07-25 .

Дальнейшее чтение

  • Закс, Родней (1980). Справочник CP/M с MP/M . SYBEX Inc. ISBN 0-89588-048-2.
  • Конн, Ричард (1985). ZCPR3 - Руководство . New York Zoetrope. ISBN 0-918432-59-6.
  • "Z-System Corner: Десятая годовщина ZCPR". The Computer Journal (54). Архивировано из оригинала 29-10-2010.
  • "Происхождение названия CP/M". Архивировано из оригинала 2008-06-11.
  • Кэти, Мустафа А. (14.08.2013). "Intel iPDS-100 Using CP/M-Video". Архивировано из оригинала 07.10.2013 . Получено 02.09.2013 .
  • "IEEE Milestone in Electrical Engineering and Computing - CP/M - Microcomputer Operating System, 1974" (PDF) . Computer History Museum . 2014-04-25. Архивировано (PDF) из оригинала 2019-04-03 . Получено 2019-04-03 .
  • «Триумф ботаников». PBS .(Примечание. В этой серии PBS содержатся подробности выбора IBM Microsoft DOS вместо CP/M от Digital Research для IBM PC)
  • "CP/M FAQ". comp.os.cpm .[6]
  • Неофициальный веб-сайт CP/M (основан Тимом Олмстедом) — включает исходный код
  • Домашняя страница Габи Чаудри по CP/M и компьютерной истории - включает материалы ZCPR
  • Главная страница CP/M - технический информационный сайт Джона К. Эллиотта
  • Страница MaxFrame Digital Research CP/M
Взято с "https://en.wikipedia.org/w/index.php?title=CP/M&oldid=1252521826#BDOS"