Народ! Где можно посмотреть схему "контроллера" IDE для Ориона?
На "orion-z" картинка накрылась медным тазом...
Народ! Где можно посмотреть схему "контроллера" IDE для Ориона?
На "orion-z" картинка накрылась медным тазом...
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
А исходные тексты к рулению HDD или чего там еще есть? А то может и для ПК8000 портировать получится.
Последний раз редактировалось Mick; 08.03.2009 в 11:39.
Это не оно http://www.pjrc.com/tech/8051/ide/ ?
Очень похоже, на то, что было, но порты A и С надо обменять местами.
Ага, это и есть исходная картинка. Меняем порты A и С (это пришлось сделать, чтобы дефолтные ПЗУ-шные загрузчики ORDOS не слали в IDE мусор если IDE повешен на порт F500 вместо ROM-DISK) и получаем то, что я постом ранее выложил в виде ASCII картинки:
Добавлено через 11 минут
Все что я напрограммировал (DOS c IDE, драйвер для "сырого" доступа к HDD, порт Fat16/32) есть как в исполняемом варианте, так и в исходниках на моей страничке (оно в основном в образах дисков).
Последний раз редактировалось Error404; 18.11.2008 в 16:33. Причина: Добавлено сообщение
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Для этой задачи Рекомпилятор "Z80->ВМ80А" будет как раз кстати. Весь процесс автоматизирован.
Добавлено через 11 минут
К этой схеме можно подключить флешку CF? Она будет работать в качестве HDD или тут есть какие-нибудь "подводные камни"?
Последний раз редактировалось Tim0xA; 18.11.2008 в 17:40. Причина: Добавлено сообщение
Работает точно так же, как и HDD. Я в-основном на CF и отлаживался (с ним проще с питанием), подключая при помощи адаптера CF-IDE (купил готовый за 300р, но есть и схемы для самодельщиков - там надо 2 разъема спаять: 40 ног IDE к 50-ногому CF, схема есть у меня на странице).
Кроме того, существуют еще и вот такие девайсы для подключения SD/MMC:
http://www.nedopc.org/forum/viewtopic.php?t=8973
Т.е. IDE-интерфейс штука очень полезная и что немаловажно для наших раритетов - очень простая в подключении и программировании.
Последний раз редактировалось Error404; 11.10.2009 в 12:35. Причина: Добавлено сообщение
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
На Орионе я решил делать так: винт разбивается на стандартные MBR-партиции - как в винде. Поддерживается 4 стандартных master-партиции. И разбитый так винт можно подключать как к PC с виндой (винда работает со своей FAT-партицией, плюс утилитами можно сдампить в образ и обратно и CP/M-партицию), так и к Ориону, который живет (грузится) в своей CP/M партиции и может монтировать другие CP/M партиции этого или второго винта.Сообщение от Mick
Под CP/M для Ориона для этого я написал утилиту fdisk.com, которая в этом стандарте (MBR-партиции) создает/удаляет партиции и файловые системы CP/M.
Также я портировал библиотеку работы с FAT(12/16/32), написал для нее оболочку (fat.com), и на Орионе из-под CP/M можно в обе стороны пофайлово обмениваться данными с FAT-партициями винды. В отличие от fdisk.com, fat.com понимает extended партиции, т.к. WinXP для FAT-партиций более 32G по дефолту лепит extended-партицию.
И fat.com, и fdisk.com написаны абстрактно на языке С - они не лезут напрямую ни в экран (работа идет стандартным VT-52), ни к контроллеру IDE - низкоуровневая запись/чтение 512B вынесены в отдельный драйвер (в моем случае - это IDEBDOS.COM, написанный на asm)
Исходники во вложении этого сообщения. Я использовал компилятор HiTech C v3.09 для CP/M и макроассемблер Microsoft M80/L80.
Последний раз редактировалось Error404; 08.08.2011 в 18:46. Причина: Управление вложениями
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Варианты загрузки с IDE на i8255 (580вв55) на Орионе:Сообщение от Tim0xA
- при помощи ПЗУ F800 (один из: M35ZMSH.BIN, M35ZRKH.BIN, M36ZMSH.BIN, M36ZRKH.BIN - см. ROM_IDE.ZIP во вложении). ПЗУ при включении питания вместо ORDOS сразу грузит MBR-сектор с master-IDE в ОЗУ по адресу 1:0000 (т.е. с начала второй физической страницы памяти) и передает туда управление. M35* работают с IDE с портoм 0F500h, M36* - с портoм 0F600h. Суффикс *RK* обозначает прошивку для клавиатуры RK-86, *MS* - для клавиатуры МС7007 по лениградской схеме.
- Вариант загрузки из ORDOS. ПЗУ F800 при этом может быть любым. ПЗУ F800 грузит ORDOS и передает ей управление. Под ORDOS используйте утилиту HddF600$.ord (ее можно прошить в ROM-DISK - см. IDEF600.ZIP во вложении), которая использует загрузчик, полностью аналогичный Мониторам, но корректирующий в загружаемом с IDE-F600 коде MBR-загрузчика и BOOT-сектора CPM все вызовы адреса 0F834h (это подпрограмма чтения с IDE 512-байтного сектора в Мониторах М3*H.BIN) на вызов своей подпрограммы, которая читает с HDD, но не с порта F500, а с F600.
Дальнейшая загрузка происходит так, как написан MBR (в настоящее время он позволяет грузиться по выбору с любого из 4-х primary разделов master-HDD, где есть загрузочный образ CPM. Выводится меню - список меток_дисков [offset +20h] соотвествующих разделов). MBR (а далее и BOOT-сектор раздела) используют п/п 0F834h (или п\п предоставляемую HddF600$.ord), которая в числе прочих параметров возвращает и базовый адрес ППА IDE. Далее этот адрес передается в CPM как базовый адрес порта IDE (F500/F600/...) и ядро CPM само себя соответствующе корректирует. Т.е. не важно какой адрес порта IDE будет передан из MBR\BOOT (он может даже не быть F500/F600, а быть, к примеру, F567).
В качестве образа диска для загрузки с IDE рекомендую диск с игрушками (на нем более-менее свежая [читай работоспособная] версия ОС с поддержкой IDE, в архиве есть readme), да и лучшего теста для Z80CardII чем игры - не придумать :
http://orion-z.hoter.ru/335/5480_games2.zip
В силу вышеописанного алгоритма работы, корректировать ОС для работы на порту, отличном от F500 не надо, все корректировки адреса ППА IDE надо делать только в Мониторе (ПЗУ F800) или HddF600$.ord. Некоторые CP/M утилиты, к примеру fat.com, fdisk.com, которым необходимо лезть к IDE "напрямую", т.е. мимо CPM, работают с IDE через драйвер IDEBDOS.COM. Этому драйверу при старте можно в командной строке передать параметры, в т.ч. и номер порта IDE. Например:
IDEBDOS port:f600
Залить образ HDD на реальный IDE-диск под Windows можно утилитой HddUtil.exe:
http://orion-z.hoter.ru/file/355/4538_HddUtil.zip
Утилита консольная (т.е. запускать из CMD - оно напишет подсказку). Я ее тестировал на чтении/заливке образов с/на как реальных винтов (подключенных к IDE материнской платы), так и для CompactFlash в обычном китайском USB-адаптере (CardReader). Например, чтобы записать образ GAMES.OHI на hdd, установленный в системе вторым, надо выполнить примерно такое:
hddutil c:\temp\games.ohi 1: /c=131072
На вопрос ответить "Yes". После завершения счетчика записанных секторов hddutil сообщит "Complete", что означает, что все записалось.
После записи образа, команда
hddutil /list
для привода 1: должна показывать наличие двух СРМ партиций
Последний раз редактировалось Error404; 08.08.2011 в 18:47. Причина: Управление вложениями
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Выкладываю исходники CPM с поддержкой HDD. Основная часть (все что кроме HDD) делалась давно (примерно 1995г), структурно я многое с позиции сегодняшнего опыта сделал бы по-другому. Но переделывать это сейчас - не вижу смысла: нет пользователей, а оно и так нормально работает. Покрайней мере это единственная версия CPM на Орионе, где кроме всего прочего централизованно поддерживается расширенное ОЗУ и прерывания (ну и HDD c MBR схемой партиций).
-
В-общем, в помощь желающем поковыряться в чужом коде (чтобы не заморачиваться с дизассемблером). Указания на ошибки и советы по оптимизации кода (уменьшении размера кода или по быстродействию) приветствуются.
И это, "не стреляйте в пианиста - он играет как умеет".
Последний раз редактировалось Error404; 08.08.2011 в 18:48. Причина: Управление вложениями
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)