Надоело "ходить беременным", родил по принципу "что выросло - то выросло". Надо тестировать.
Итак, релиз-кандидат CPM с поддержкой SD-карт скачиваем тут:
http://orion-z.hoter.ru/file/335/5706_GAMES-sd.zip
Грузить ОС с SD-карт можно при помощи загрузчиков ранее уже опубликованных в этом посте:
http://zx.pk.ru/showpost.php?p=262906&postcount=31
Описание как чего подготавливать сделаю позже.
В целом, это делается точно так же, как и для CF-карт или ATA hdd (уже ранее описывалось на форуме в какой-то Орионовской ветке).
ewgeny7 , проверить ЭТО на реале пока можешь только ты.
К тому же, наверняка справишься с записью образа на карту и без HOW-TO.
Исходники во вложении этого сообщения.
Т.к. ребеночек родился 7-месячным, исходники явно неокончательные.
Release Notes:
Код:
Altair DOS V3.4s (2010.03.27)
-----------------------------
+ Добавлена поддержка SD-карт (формат SDC - т.е. емкостью не более 2G) - устройство SDCARD.
Схема N8VEM или MSX (при старте ОС выполняется автодетект схемы).
IDE по-прежнему поддерживается - устройства MASTER и SLAVE.
+ При дисковом вводе-выводе есть возможность выключать прерывания. Это настраивается
командой INT_IO файла config.sys.
"INT_IO 0" - операции ввода-вывода не прерываются по int (прерывания приостанавливаются).
"INT_IO 1" - прерывания никогда не выключаются.
+- Изменена команда CCP MNT (подключение устройств к символам дисков):
MNT DRIVE:DEVICE[.PARTITION]
- mount device { FDD0 | FDD1 | VDISK | MASTER | SLAVE | SDCARD | NONE }
if device = { MASTER | SLAVE | SDCARD } then also specify PARTITION (0,1,2,3)
"NONE"=unmount
map to drive letter { DRIVE }
MNT DRIVE:
- show device, mounted to this drive letter
MNT
- show all devices, mounted to all drive letters
+- Изменена команда ASSIGN файла config.sys в части IDE и SD устройств.
Примеры нового формата синтаксиса (устройства и нумерация партиций как в команде MNT):
ASSIGN DRIVE C = SDCARD 0 ; mount 1-st partition of SD-card
ASSIGN DRIVE D = SDCARD 1 ; mount 2-nd partition of SD-card
ASSIGN DRIVE D = MASTER 0 ; mount 1-st partition of IDE-Master
ASSIGN DRIVE D = SLAVE 1 ; mount 2-nd partition of IDE-Slave
ASSIGN DRIVE C = SLAVE 3 ; mount last (4-th) partition of IDE-Slave
+- Количество одновременно подключенных партиций с любых комбинаций устройств увеличено
с двух (в версии V3.4i) до трех (в V3.4s). Максимальных суммарный объем подключенных
(смонтированных) партиций не должен превышать 100Mb.
+ Новые сообщения об ошибках, возникающих при монтировании партиции:
"HDD slot not found" - все 3 имеющихся точки монтирования партиций уже заняты.
Решение: отмонтировать что-то ненужное командой "MNT D:NONE".
"CP/M not found" - попытка монтирования партиции, тип которой отличается от CP/M (52h)
Решение: создать CP/M-партицию можно программой FDISK.COM.
"DPB not found" - попытка монтирования партиции, тип которой CP/M (52h), но при
этом bootsector партиции не содержит DPB (нет корректной ФС).
Решение: создать файловую систему (DPB) можно программой FDISK.COM.
"ALV not found" - Для монтируемой файловой системы требуется буфер ALV, который с
учетом других уже смонтированных партиций не помещается в текущий
буфер CPM. Размер буфера ALV пропорционален размеру файловой системы
(то самое ограничение 100Мб).
Решение: умерить аппетиты при создании файловой системы
программой FDISK.COM.
+- Драйвер IDEBDOS.COM (требуемый для FDISK.COM, FAT.COM) доработан для поддержки
SD-карт - см. встроенный хелп про параметр "SD". Также добавлен новый параметр
"NOINT" - если он указан, то операции ввода-вывода не прерываются по int.
Выполняется автодетект обеих схем подключения SD-карт (N8VEM и MSX).
+- Утилита FDISK.COM теперь создает файловые системы с размером блока не 8кб, а 16кб
(блок 16к - это максимум для CP/M 2.2), что позволяет вдвое снизить требования к
размеру буферов ALV (и добиться ранее упоминавшегося объема одновременно
монтируемых партиций в 100Mb).
Altair DOS V3.4i (2009.10.10)
-----------------------------
+ Добавлена команда команда CCP MNT (подключение устройств к символам дисков):
MNT DRIVE:DEVICE_SLOT[.PARTITION]
- mount device { FDD0 | FDD1 | IDE0 | IDE1 | VDISK | NONE } // NONE=unmount
if device = { IDE0 | IDE1 } then also specify PARTITION (0,2,4,6=MASTER ; 1,3,5,7=SLAVE)
to drive letter { DRIVE }
MNT DRIVE:
- show device, mounted to this drive letter
MNT
- show all devices, mounted to all drive letters
+ При обращении к IDE на запись/чтение выключаются прерывания
(сделано на всякий случай - на реале и без этого работало, но... были подозрения)
- Исключена команда CCP SAVE (место в CCP не резиновое)
+- Исправлена ошибка с записью сектора на IDE при работе IDE на порту F600.
На порту F500 эта ошибка не проявлялась (все работало нормально).
Altair DOS V3.4h, V3.3 и предыдущие
-----------------------------------
Ранее изменения не фиксировались.