|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Дискеты Teledisk и CP/M 2.2
Author |
Message |
Panther
Writer
Joined: 30 Oct 2008 06:27 Posts: 11 Location: Москва
|
Я тут разбирал файлы, выложенные Shaos и CHRV по Ориону. Там часть дискет в формате Teledisk (.TD0), часть в виде распакованных директорий. Мне показалось не совсем удобным все это каждый раз конвертировать в ODI, поэтому я написал библиотеку для использования в эмуляторах, которая позволяет на лету (т.е. в памяти) создавать посекторный образ для обоих случаев, включая загрузочные варианты. Формат диска любой, привязки именно к Ориону нет. Плюс в работе вариант, работающий с тем же самым, но упакованным в Zip. Написано на Delphi 7, без проблем должно работать в Builder. Для остального возможен вариант с DLL, либо доработка под Free Pascal.
Если это кому-то интересно, я могу довести библиотеку до товарного вида и предоставить ее в общий доступ.
|
28 Jan 2009 09:32 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Давай выкладывай. А там разберемся.
PS Оригинал на Дельфи я приветствую.
|
28 Jan 2009 20:21 |
|
|
Error404
Maniac
Joined: 05 Oct 2006 04:45 Posts: 269 Location: Moscow
|
Нашел что-нибудь интересное?
Интересно, выкладывай. А либа работает только на RO, или на запись тоже?
На седьмую версию каких-то особых завязок нет?
_________________ Всем добра!
|
29 Jan 2009 01:22 |
|
|
Panther
Writer
Joined: 30 Oct 2008 06:27 Posts: 11 Location: Москва
|
Все будет в исходниках. Смысл как раз в том, чтобы сделать нормальную общедоступную библиотеку.
Записать можно готовый образ, а если в эмуляторе поддерживается запись, то образ и будет с изменениями. Но это же от данной библиотеки не зависит, как буфер в файл слить (хотя там и есть функция для этого, просто для удобства).
Можно сделать экспорт в Teledisk, проблем нет, но оно надо? Если нужно, то сделаю.
Насчет обратного экспорта диска CP/M в набор файлов я еще не решил, как это правильно организовать, если директория непустая. Совпадающие файлы перезаписать, а отсутствующие в образе (т.е. удаленные через эмулятор) удалить? Опасная штука, если не ту директорию указать А если их оставлять, не потеряется ли смысл такого экспорта? Или хранить список файлов с момента генерации образа и потом сравнивать?
Привязки к версии нет.
|
29 Jan 2009 01:59 |
|
|
Panther
Writer
Joined: 30 Oct 2008 06:27 Posts: 11 Location: Москва
|
Пока нет, меня как раз напрягло все это конвертировать, чтобы посмотреть
|
29 Jan 2009 02:02 |
|
|
Error404
Maniac
Joined: 05 Oct 2006 04:45 Posts: 269 Location: Moscow
|
Ну, я просто делал: for %%i in (*.td0) do wteledsk........
А вот отсмотреть все не хватило времени и терпения.
_________________ Всем добра!
|
29 Jan 2009 03:28 |
|
|
Panther
Writer
Joined: 30 Oct 2008 06:27 Posts: 11 Location: Москва
|
Нет, мне не лень это сделать, просто показалось не очень правильным разводить копии одного и того же в разных форматах.
|
29 Jan 2009 05:26 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22730 Location: Silicon Valley
|
Да - Error404 тоже кое-чего предоставил в ту коллекцию
|
29 Jan 2009 11:42 |
|
|
Panther
Writer
Joined: 30 Oct 2008 06:27 Posts: 11 Location: Москва
|
Сорри - конечно, тоже респект и уважуха.
|
29 Jan 2009 13:41 |
|
|
Panther
Writer
Joined: 30 Oct 2008 06:27 Posts: 11 Location: Москва
|
Тестируя генерацию образа CP/M я столкнулся с такой проблемой:
В описателе формата диска (DPB) есть поле под названием DSM. В классических руководствах по CP/M утверждается (и мои расчеты по приведенным примерам это подтверждают), что оно равно максимальному номеру блока, причем каталог входит в этот объем.
Т.е. для расчета DSM отбрасываем системные треки, делим оставшееся место на размер блока и вычитаем единицу.
С другой стороны, разбирая диски Орионовских систем, я обнаружил, что в них DSM отличается тем, что из него уже вычтен каталог и не вычтена единица. Т.е. он обозначает максимальное свободное место в блоках.
Какой алгоритм вычисления DSM в итоге использовать? Это принципиальное решение авторов орионовской версии CP/M или ошибка программ генерации образов? Если это не ошибка, то придется вводить форматы "наши слоны" и "буржуи проклятые"?
|
30 Jan 2009 03:30 |
|
|
Error404
Maniac
Joined: 05 Oct 2006 04:45 Posts: 269 Location: Moscow
|
Честно говоря, ни вижу ничего чем это было бы черевато при конвертации из одного представления в другое (содержимое же не меняется?). BDOS на дискетках классический, слава богу ковырять его у адаптатаров ума не хватило, - разберется (им писалось, им же и прочитается). Худшее - не полное использование дискеты. Но кого теперь волнуют "пропавшие" 2 килобайта?
_________________ Всем добра!
|
30 Jan 2009 07:20 |
|
|
Panther
Writer
Joined: 30 Oct 2008 06:27 Posts: 11 Location: Москва
|
Ну, хотелось, чтобы программа была универсальней. Ладно, сделаю, что если есть загрузчик, то его параметры имеют безусловный приоритет.
|
30 Jan 2009 08:49 |
|
|
Panther
Writer
Joined: 30 Oct 2008 06:27 Posts: 11 Location: Москва
|
Пока работа с CP/M немного застопорилась, выложил описание формата и исходные коды библиотеки Teledisk:
http://www.emuverse.ru/wiki/Teledisk
|
03 Feb 2009 04:49 |
|
|
barsik
Doomed
Joined: 19 Feb 2017 03:46 Posts: 583 Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
|
Лень сейчас разираться о чём это, но помню, что в первых вариантах адаптаций CP/M на ОРИОН (до 1993-94) один из параметров DPB был неверным. В частности на дискету можно было записать только 778 кб вместо 800, т.к общий объём диска в блоках был неверным. После я эту ошибку исправил. Это скорей всего не наша, отечественная ошибка, а пришедшая из версии CP/M прототипа. Потому что фирменные читалки дискетных форматов любили именно такой формат, причём если какой-либо параметр DPB изменить (например, число секторов на трек, общий размер в блоках, число зарезервированных системных треков), то формат переставал читаться. Я на этом пострадал, т.к любил использовать другие форматы, немного более выгодные форматы, например, 6 секторов на трек при DD-КНГМД и DD-дисках, число резервированных треков не 4, а 2, а общее число треков не 160, а 164 или 166 (большее число треков добавляло к полезным 780К ещё 50К). Из-за этого, когда в 1996-97 я стал переводить файлы с дискет на PC винт, то большинство моих дискет не читалось фирменными читалками, приходилось форматировать дискету форматёром из 1990 года, копировать туда файлы и только с такой дискеты удавалось считать в PC.
|
11 Nov 2019 04:40 |
|
|
sergey2b
Fanat
Joined: 10 Sep 2009 04:27 Posts: 82 Location: 41.213.126.12
|
а кто нибудь встречал полный исходный код teledisk на просторах инета ? вопрос возник потому что я использую teledisk 2.12 и все работает нормально
но на 486 таже версия и с теми же фалами пишет что ошибка DMA при записи последних секторов попробовал версию теледиска которая позволяет выбирать писать напрямую на диск или через BIOS номер ошибки изменился но смысл сообщения тот же
я нашел утилиты конвертации td0 в другие форматы но хотелось бы исспользовать теледиск
|
02 Feb 2020 21:18 |
|
|
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|