Copyleft HUMONGOUS CP/M Archives
При поддержке журналаRadio Magazine
RU | EN

CRISS CP/M

Работа с SD-картами

CRISS CP/M в качестве носителя информации использует стандартные SD-карты, на которых хранятся и образы "дискет", и образы начальной загрузки, содержащие операционную системы.

Общая информация

Теоретически поддерживаются любые SD-карты, но на практике примерно 10% карточек оказываются несовместимыми. Так что если карта не работает или при загрузке на экране появляются странные символы, это говорит о необходимости заменить карточку на другую. Связано это с тем, что для экономии места сопряжение уровней +5В компьютера и +3.3В карты выполнено по простейшей схеме на развязывающих диодах, поэтому любое "внеплановое" появление на выходах карты сигналов приводит к сбоям работы системной шины, а у части карт наблюдается такая картина, что после окончания чтения на шине данных через некоторое время появляется паразитный сигнал, которого быть не должно, судя по всему в этот момент карта переходит в состояние Idle.

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

Обратите внимание, что CRISS CP/M в отличие от CP/M компьютеров 1980-x не загружает образ ОС из файла на диске, вместо этого при загрузке в память загружается полный образ ОЗУ 62 кБ (без видео-памяти), после чего управление передаётся по адресу 0x0100. Поэтому, можно делать образы уже с предварительно загруженными программами, например, с интерпретатором языка Бейсик.

Работа с образами дискет

В CRISS CP/M, как и в настоящих компьютерах конца 1980-х, единицей хранения информации выступает образ дискеты, который может быть виртуально вставлен в привод (дисковод). Напомним для тех, кто не застал эти времена, что раньше в компьютерах жёстких дисков не было, вместо них использовались "накопители на гибких магнитных дисках", НГМД. Чтобы прочитать такой диск его нужно было вставить в специальное устройство "дисковод". Как и современных Windows-системах доступ к этим дисководам был через букву диска, A: или B:, а содержимое определялось содержимым дискеты, как сегодня USB-накопители.

CRISS CP/M использует в качестве основных образы размером 819 кБ, что давало 720 кБ дискового пространства, настройки системы поддерживают два привода A: и B:, виртуально сменить дискету можно через системную консоль.

Образ дискеты можно либо найти готовый в Интернете, либо скачать с сайта пустой образ.

Для работы с образами используется пакет утилит CPMTOOLS, который можно скачать с сайта (на это есть разрешение автора). Порядок установки пакета на компьютер с ОС Windows:

  • распаковать архив в папку c:\cpmtools - это важно, что именно в эту папку, т.к. этот путь записан в коде программы, так решил автор;
  • добавить путь, куда установлен пакет, в переменную PATH. Обычно это делается правым кликом на значок "Мой компьютер", далее "Свойства", далее "Дополнительные параметры системы", далее "Переменные среды", далее выбираем PATH и в конец добавляем наш путь установки пакета CPMTOOLS;
  • перегрузить компьютер.

Теперь с образами дисков можно работать из командной строки, используя утилиты пакета: просматривать содержимое, копировать файлы с образов, копировать файлы в образы, удалять их. Настройки пакета для работы с образами CRISS CP/M, которые необходимо добавить в файл diskdefs:

diskdef ris1715 seclen 128 tracks 40 sectrk 160 blocksize 2048 maxdir 128 boottrk 1 os 2.2 skew 1 end

Если всё сделано правильно, то введя в командной строке

cpmls.exe -f ris1715 -l lf2.cpm

вы увидите содержимое образа lf2.cpm. Вывод команды выглядит следующим образом:

0: -rwxrwxrwx 3072 Jan 01 1970 d.com -rwxrwxrwx 19456 Jan 01 1970 e.com -rwxrwxrwx 11392 Jan 01 1970 econfig1.com -rw-rw-rw- 5120 Jan 01 1970 express.ovl -rw-rw-rw- 101376 Jan 01 1970 express1.doc -rw-rw-rw- 384 Jan 01 1970 fred

где 0: - это номер пользовательской зоны, к которой относится файл. Подробнее о USER AREA читайте в журнальной статье или в литературе по ОС CP/M.

Следуйте инструкциям по работе с пакетом, для работы с другими командами:

  • cpmls.exe - показывает содержимое образа;
  • cpmcp.exe - копирует файлы между образом и Windows;
  • cpmrm.exe - удаляет файлы в образе.

Ниже будет рассмотрен более удобный вариант работы с образами, но он, в отличие от работы в режиме командной строки, имеет ограничение USER=0.

Подготовка карты к работе

Для подготовки карты для её использования с CRISS CP/M необходимо стереть стартовую область карты. Для этого проще всего воспользоваться программой Win32DiskImager и записать на карту любой файл, выбрав его как образ. Как вариант, можно скачать с сайта готовый образ карты и записать его. Эта процедура обязательна, т.к. без неё Windows блокирует физический доступ к карте и программа работы с картой будет выдавать ошибку.

Если Вы не записывали готовый образ, а просто записали первый попавшийся файл, следующим шагом необходимо запустить программу для работы с SD-картами с сайта r1715sd.exe, указав в качестве параметра букву SD-привода, например:

r1715sd.exe E

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

f Название карты

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

n F0 Название образа p 00 system.bin.003

где Название образа - любое имя образа, например "CP/M2.2 Robotron 1715", а system.bin.003 - имя скачанного с сайта или подготовленного самостоятельно образа. Образ имеет размер 64кБ и представляет собой снимок ОЗУ, при начальной загрузке компьютера он загружается в память и управление передаётся по адресу 0x100.

Теперь карта готова к работе, с неё компьютер может загружаться, но на ней ещё нет полезных данных.

CLI-настройка карты

Для работы с картой предназначена специальная утилита r1715sd.exe, которую необходимо разместить в одной папке с пакетом cpmtools.

Утилита r1715sd.exe обеспечивает полный контроль над картой в режиме командной строки. Утилита может работать в двух режимах: диалога, когда пользователь может последовательно выполнять несколько операций и командный, когда выполняются конкретная команда и программа прекращает работу.

Вызов утилиты в режиме диалога идёт с указанием одного параметра - буквы привода SD-диска:

r1715sd.exe E

После запуска программы появляется приглашение на ввод команды, для получения списка команд введите ?, вот пример такого запроса:

[C:\R\R1715sd.exe] [D] Device opened. Enter command R1715sd D: ? Commands allowed (all values are in hex): q - quit ? - this help d - DIR card descriptors n HH Name - set name for HH block: 00 - CARD, 01-EF - DISK 00-EE, F0-FF - LOAD 00-0F f Name - format card and set card name p HH filename - store file "filename" to LOAD HH, HH = 00-0F s HH filename - store file "filename" to DISK HH, HH = 00-EE r HH LLL filename - read DISK HH to file "filename", size = LLL*512, HH = 00-EE LLL = 640 for 819200 disks R1715sd D: _

Далее рассмотрены команды, если в параметрах указан индекс HH, то это обязательно 2 символа, задающие шестнадцатеричное число от 00 до FF. Перечень команд:

  • q - выход из программы;
  • ? - вывод подсказки по поддерживаемым командам;
  • d - выводит содержимое карты, как образов дискет, так и файлы системной загрузки, параметров не имеет;
  • f Имя карты - форматирует карту и назначает ей имя;
  • n HH Имя блока - назначает имя для карты / образа / файла загрузки, HH - системный номер блока, равной 00 для карты, 00-EE для образа дискеты, F0-FF для загрузочного образа;
  • p HH Имя_файла - записывает загрузочный образ Имя_файла на карту, при этом индекс 00 соответствует блоку F0 (и, соответственно, заданному блоку F0 имени), 01 - блоку F1 и т.д.;
  • s HH Имя_файла - записывает образ дискеты Имя_файла на карту, при этом индекс 00 соответствует блоку 01 (и, соответственно, заданному блоку 01 имени), 01 - блоку 02 и т.д., т.е. для записи образа дискеты 00, которая при запуске считается "вставленной" в дисковод A: необходимо выполнить команды n 01 Имя дискеты, после чего s 00 Имя файла;
  • r HH LLL Имя_файла - считывает образ дискеты с номером HH (считается от 00) в файл, LLL = 640 для стандартных образов дискет CRISS CP/M.

Чтобы удалить образ с карты задайте ему пустое имя и он не будет отображаться в списке.

Пример сеанса, записывающего два образа, которые при загрузке будут считаться вставленными в приводы A: и B:, считая, что имя карте присвоено и загрузочный блок загружен:

n 01 Дискета А s 00 imagea.cpm n 02 Дискета Б s 01 imageb.cpm q

Команда d в этом случае выдаст:

Descriptors: D 00 (CARD): Моя карта 01 D 01 (DISK): Дискета А D 02 (DISK): Дискета Б D F0 (LOAD): CP/M 2.2 Robotron 1715

Карта готова к работе. Обратите внимание, что через системную консоль можно выбрать любой образ с индексам от 00 до 20, причём нет требования, чтобы заполненные образы шли по-порядку. Доступ к образам дискет с индексами выше 20 возможен только программно или через специальную программу на CRISS CP/M, которая установит нужный номер образа. Порядок такой настройки описан в журнале.

Работа через менеджер FAR

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

После запуска менеджера можно открывать образы дискет (они должны иметь расширение cpm) как архив, свободно просматривая, копируя, удаляя в них файлы. Данный метод очень удобен, но позволяет работать только с зоной пользователя USER=0, чего достаточно практически всегда.

Корме этого, появляется возможность доступа и к SD-карте, для этого на диске необходимо создать пустой файл с именем как буква SD-привода и расширением criss, например E.criss в случае, если SD-карта в проводнике видна как диск E:.

Если в слот вставлена карта от компьютера CRISS CP/M, то открытие этого файла в менеджере, покажет набор образов дискет как набор файлов:

00 Дискета А.cpm 01 Дискета Б.cpm

Структура имени файла: индексный номер от 00 до 99 в десятичном виде (не в шестнадцатеричном, как в случае CLI!), пробел, имя образа, расширение обязательно cpm.

Файл может быть скопирован с карты на локальный диск и наоборот, при этом важно назвать образ точно в соответствии с требованиями. Например, чтобы добавить ещё один образ, его нужно назвать

03 Дискета номер три.cpm

после чего записать на карту, просто скопировав как обычное копирование файлов.

Важно! Плагин после операций с образами на карте не всегда корректно обновляет содержимое каталога, поэтому для надёжности выйдите и откройте файл *.criss заново.

В текущих настройках можно работать и с файлами в образах, т.е. можно открыть SD-карта, потом открыть образ и прочитать из него файл. Или записать файл, но при этом обратите внимание, что работа идёт как с архивами, т.е. чтобы изменения вступили в силу, надо выйти из образа (нажав .. ) и подтвердить обновление архива.

Программы для Windows для КРИСС CP/M

Все форматы хранения данных и протоколы, в т.ч. внутренние, детально описаны в журнале Радио №5 за 2021 год. Они очень просты и их реализация не составит труда. Но для комфортной работы с КРИСС CP/M и обеспечения удобства программирования, мы собрали для Вас необходимые программы под MS Windows. Пользователи других операционных систем, готовых адаптировать программы под свои ОС, пишите запросы по электронной почте, исходный код на языке Си в Вашем распоряжении.

Служебные программы комплекта CRISS

Служебные программы, необходимые для работы с SD-картами и установки обновлений. Порядок работы описан в журнале Радио, 2021 года, №№ 3-4.

Файл / FileНазначениеDescriptionВерсия / VersionДата / Date
R1715upl.exeПрограмма для загрузки обновленийFirmware uploading program1.730.11.2021
R1715sd.exeПрограмма для управления образами SD-картCRISS SD-card access program0.4.225.10.2021
bmp2cri.exeПрограмма преобразования картинок формата BMP во внутренний формат CRIImage converter from b/w BMP to CRI format0.1

Программы для работы с образами SD-карт и дискет

Работа с дисками в менеджере FAR

Для работы с образами дискет используются стандартные пакеты программ FAR и CPMTOOLS, настроенные соответствующим образом. Порядок настройки описан в журнале Радио, 2021, №№ 1-3. Правильная настройка данных программ обеспечивает максимально удобный режим работы с образами дисков.

Преднастроенный менеджер Far или другой с плагином Multiarc позволяет работать с SD-картами CRISS CP/M и образами дискет *.cpm. Для работы требуется наличие установленного и настроенного пакета CPMTOOLS в папке /cpmtools жёсткого диска (это требования пакета, по этому адресу должен быть конфигурационный файл), этот пусть должен быть добавлен в системную переменную PATH, файл r1715sd.exe должен лежать в этом же каталоге или в любом другом, обязательно прописанном в path. Если возможности прописать PATH нет, то в настройках файла custom.ini необходимо указать полные имена файлов.

Для доступа к SD-карте должен быть создан файл типа E.criss, E (первая буква) - имя привода, обязательно заглавная. Открытие этого файла в преднастроенном менеджере Far позволит работать с образами дискет как с обычной файловой системой.

Обратите внимание, что в текущей конфигурации поддерживаются только файлы USER 0.

Файл / FileТипНазначениеDescriptionДата / Date
FARCRISS x64Загрузка / DownloadПортабл-версия файлового менеджера FAR с настроенным плагином MULTIARCFar manager with Multiarc plugin
FARCRISS x32Загрузка / DownloadПортабл-версия файлового менеджера FAR с настроенным плагином MULTIARCFar manager 32 bit version with Multiarc plugin
custom.iniЗагрузка / DownloadНастройки плагина Multiarc для FarFar Multiarc plugin settings25.10.2021
CPMTOOLS 2.21Ссылка / LinkПакет программ CPMTOOLS, преднастроенный для работы с образами дискет 819 кБ - официальный релизOfficial CPMTOOLS package
CPMTOOLSЗагрузка / DownloadВерсия CPMTOOLS с исправленной ошибкой некорректной обработки прописных букв в именах файлах. Отличается от официальной, публикуется с разрешения автораPatched CPMTOOLS package with improved processing of lowercase characters in file names
Win32 Disk ImagerСсылка / LinkПрограмма для записи образов на SD-картыTool for SD-card image writing

© Copyright Radio / Радио / OGSS / НГСС / I. Reshetnikov / Решетников И.С. 2020-2022