Книга Код. Тайный язык информатики, страница 93. Автор книги Чарльз Петцольд

Разделитель для чтения книг в онлайн библиотеке

Онлайн книга «Код. Тайный язык информатики»

Cтраница 93

Ранее я упомянул текстовые файлы, которые также называются ASCII-файлами и содержат коды ASCII (включая коды возврата каретки и перевода строки), которые соответствуют понятным людям текстовым символам. Файл, который не является текстовым, называется двоичным. Файл СP/M типа COM — двоичный, поскольку содержит машинный код для процессора 8080.

Предположим, нам нужно сохранить в файле (очень маленького объема) три 16-битных числа, например 5A48h, 78BFh и F510h. Двоичный файл с этими тремя числами имеет длину всего шесть байт.

48 5A BF 78 10 F5

Разумеется, это формат хранения многобайтовых чисел для процессоров Intel. Первым указывается младший байт. Программа, написанная для процессоров Motorola, сохранила бы эти числа следующим образом.

5A 48 78 BF F5 10

В текстовом файле ASCII эти же четыре 16-битных значения были бы записаны, как показано ниже.

35 41 34 38 68 0D0A 37 38 42 46 68 0D0A 46 35 31 30 68 0D0A

Эти байты — коды ASCII для цифр и букв, а сами числа разделяются кодами возврата каретки (0Dh) и перевода строки (0A). Текстовый файл удобнее отображать не в виде строки кодов ASCII, а в виде соответствующих им символов.

5A48h

78BFh

F510h

Текстовый файл ASCII, в котором хранятся эти три числа, также может содержать следующие байты.

32 33 31 31 32 0D0A 33 30 39 31 31 0D0A 36 32 37 33 36 0D0A

Коды ASCII для десятичных эквивалентов трех чисел следующие.

23112

30911

62736

Поскольку текстовые файлы призваны упростить людям процесс чтения их содержимого, нет причин для отказа от использования десятичных чисел вместо шестнадцатеричных.

Как я уже упоминал, сама CP/M записана на первых двух дорожках диска. Для запуска системы ее необходимо загрузить с диска в память. Объем ПЗУ в компьютере, использующем CP/M, не обязательно будет большим. В ПЗУ должен содержаться небольшой фрагмент кода, известный как загрузчик программы. Этот загрузчик считывает самый первый 128-байтовый сектор с дискеты в память и запускает его. Этот сектор содержит код для загрузки в память остальной части CP/M. Весь процесс называется загрузкой операционной системы.

В результате система CP/M размещается в оперативной памяти с самыми старшими адресами. После загрузки CP/M память будет организована так.

Код. Тайный язык информатики

Эта схема не отражает реального масштаба. Три компонента CP/M: базовая система ввода/вывода (Basic Input/Output System, BIOS), базовая дисковая операционная система (Basic Disk Operating System, BDOS) и консольный командный процессор (Command and Control Processor, CCP) — занимают в общей сложности около шести килобайт памяти. Область нерезидентных программ — около 58 килобайт памяти на компьютере с оперативной памятью 64 килобайта — изначально не содержит ничего.

Консольный командный процессор эквивалентен командному процессору, созданному нами ранее. Словом, консоль обозначает совокупность клавиатуры и дисплея. Консольный процессор отображает на дисплее следующее приглашение.

A>

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

Процессор CCP распознает лишь несколько команд. Вероятно, наиболее важна следующая команда.

DIR

Эта команда отображает на экране содержимое каталога диска, то есть список всех хранящихся на диске файлов. Вы можете использовать специальные символы «?» и «*», чтобы отобразить только файлы с определенным именем или типом. Следующая команда, например, отображает текстовые файлы.

DIR *.TXT

Список всех файлов с именами из пяти символов, в которых первый символ — буква A, а последний — B, передает такая команда.

DIR A??? B.*

Еще одна важная команда — ERA (Erase, «Удалить»). Она используется для удаления файла с диска.

ERA MYLETTER.TXT

Следующая команда удаляет все текстовые файлы.

ERA *.TXT

Удаление файла означает освобождение соответствующего элемента каталога и дискового пространства.

Команда REN (Rename, «Переименовать») используется для изменения имени файла. Команда TYPE («Напечатать») показывает содержимое текстового файла. Поскольку текстовый файл содержит только ASCII-коды, эта команда позволяет читать файл прямо с экрана.

TYPE MYLETTER.TXT

Команда SAVE («Сохранить») сохраняет один или несколько 256-байтовых блоков памяти, расположенных в области временного хранения программ, в файл с указанным именем на диске.

Если вы введете команду, которую CP/M не сможет распознать, система будет интерпретировать данные в качестве имени программы, которая хранится на диске в виде файла. Файлы программ всегда имеют тип COM. Процессор CCP ищет файл с таким именем на диске. Если он существует, система CP/M загрузит файл с диска в область временного хранения программ, которая начинается с адреса памяти 0100h. Так запускаются программы, хранящиеся на диске. Например, если вы наберете

CALC

в ответ на приглашение CP/M, то если на диске присутствует файл с именем CALC.COM, процессор CCP загрузит этот файл в память начиная с адреса 0100h, а затем выполнит программу, перейдя к машинной инструкции, расположенной по адресу 0100h.

Ранее я объяснил, как можно вставить машинные инструкции в любую область памяти и выполнить их, однако в случае CP/M программы, которые хранятся в файлах на диске, должны предусматривать загрузку в память, начиная с определенного адреса — 0100h.

Система CP/M поставляется с несколькими полезными программами, включая PIP (Peripheral Interchange Program — программа взаимодействия с периферией), которая позволяет копировать файлы. Программа ED — текстовый редактор, который помогает создавать и изменять текстовые файлы. Программы вроде PIP и ED, имеющие небольшой объем и предназначенные для решения простых задач, часто называются служебными, или утилитами. Будучи пользователем системы CP/M, вы, вероятно, приобрели бы более крупные программы-приложения, например текстовые процессоры, электронные таблицы, или написали бы их самостоятельно. Все эти программы также хранятся в файлах типа COM.

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

Вход
Поиск по сайту
Ищем:
Календарь
Навигация