Приветствую. Возможна ли работа Scorpion CP/M с образа на SMUC HDD?
Если возможна, то какой программой для Spectrum/Scorpion можно перекопировать дискету в образ на HDD?
Вид для печати
Приветствую. Возможна ли работа Scorpion CP/M с образа на SMUC HDD?
Если возможна, то какой программой для Spectrum/Scorpion можно перекопировать дискету в образ на HDD?
Вообще, образы дисков на SMUC под TR-DOS и придуманы. А для CP/M нужно создать раздел и работать с контроллером через драйвер, не используя ПЗУ.
Скорее всего невозможна. Аппаратная часть ZS-256 (насколько я осведомлен и насколько мне известно из заслуживающих доверия источников) не позволяет это сделать (по крайней мере, до сегодняшнего дня). Если у кого получится запустить CP/M с HDD на Scorpion-е, это будет революционный шаг для этой платформы. Когда приобрел CP/M для Scorpion-а (непосредственно в фирме Зонова, где мне записали CD-ROM разных программ, утилит, игр и прочего c "жестких" дисков фирмы), то мне так и не удалось создать раздел для CP/M на HDD. Потом звонил, консультировался со "спецами" фирмы, и мне сказали, что можно запустить только с дискет. Но кто его знает, ведь и видео на ATM Turbo + было фантастикой, но ведь есть. Не говоря о том, что даже VGA "прикрутили" к Spectrum-у.
Не вижу сложностей. Раздел на HDD - это обычное блочное устройство, т.е. просто набор секторов "от и до". Драйверу нужна только начальная координата, от которой плясать. Можно через rst 8, можно через порты.
По сложности - это не намного сложнее драйвера рамдиска.
Я делал драйвера для исдоса под немовскую схему и SMUC - jason.blk, idesmuc.blk.
Нужно добавить в биос CP/M процедуры чтения/записи с HDD и сделать внешнююю утилиту, которая укажет биосу, начиная скакого сектора лежит CP/M раздел (или разделы, если их несколько). Это уже есть.
CP/M 2.2 не имеет каталогов. Правильнее будет иметь несколько небольших разделов (до 4МБ) и переключать их на ходу, или подключить к разным буквам.
Так уже же сделали - https://zx-pk.ru/threads/35004-ustan...orpion-zs.html
Это не тянет даже на бетаверсию.
Я давно пытался, но упёрся в нехватку памяти. Биосу отведено всего 4кб, из них 1кб - буфер флопа. А драйверу винта нужно 512 байт под сектор и до 512 под биткарту и чексуммы. Можно без чексумм, но 256 байт точно надо, ибо 1 бит на 4 кб кластер, коих может быть до 2048. А кластеры по 8 кб - это неэкономно.
Буфер флопа трогать нельзя, хотя если отказаться от чтения 800к дисков, то его можно уменьшить до 512 байт. Но это нежелательно.
Потом удалось впихнуть невпихуемое. Сейчас одновременно есть рамдиск E: и HDD раздел на F:.
Для партиций до 4 МБ размер кластера 4к или 8к. Хотел следать 4к без чексумм, ибо fixed дискам они обычно не нужны. Однако, если адрес таблицы чексумм =0 то BDOS честно пишет её с нулевого адреса. Потом разобрался, надо указать CSV =0 в DPB диска (размер таблицы) , тогда чексуммы не проверяются.
Свободной памяти осталось 70 байт. Пока так:
512 файлов на 8 МБ диске - маловато.Код:; Размер Cls EXM DSM DRM AL0 CSV dir alloc chksums
;----------- --- --- --------- --- --- ---- --- ------- -------
; до =1024k 4k 3 до 255 127 #80 32 4k 32 32
; 1025 - 2048 4k 1 до 511 255 #C0 64 8k 64 64
; 2049 - 4096 4k 1 до 1023 511 #F0 128 16k 128 128
; 4097 - 8192 8k 3 до 1023 511 #C0 128 16k 128 128
Пока всё через RST 8, но для работы через порты всё уже есть. Даже если лазить через #3d2f, получается всяко быстрее флопа, ~31 тыс тактов на чтение 512 байт.
Осталось сделать мелкую утилитку для добавления MFS раздела в MBR, и RST 8 станет не нужен.