User Tag List

Показано с 91 по 100 из 318

Тема: ПК8000 - загрузка с внешних носителей

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    407
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Схема с разводкой в аттаче.
    По схеме. Резисторы R5, R7 и R8 ставить нет нужды, они скорее на всякий случай. J3 - выбор одной из четырех возможных прошивок, по схеме все понятно. Кондер C9 не ставить, лучше внести изменения в плату (ниже).
    Выводы 30 и 31 на разных ПЗУ бывает разным, так что повнимательнее с ними. У меня разведены под флэш.

    ==================== изменения в плату для стабильной работы ====================
    Пришел китайский логический анализатор. Решил глянуть из-за чего были проблемы с чтением. В общем зря я привязал /CE ВВ55 к сигналам /RD и /WR. Если при записи сигнал /WR достаточно длинный, то с чтением я облажался. /CE вырубался вместе с /RD, когда комп только приступал к чтению. Понятно, что читал мусор. Кондер С9 хотя и смещал /CE, но все равно чтение проходило на грани.

    В общем, я себе сделал небольшую переделку. Выводы 6 и 9 ЛА3 разъединил и соединил вывод 9 с 10. Теперь /CE включён все время цикла чтения/записи и надобность в С9 отпала. Переделка незначительна и практически не заметна на плате.
    ==================== еще одна доработка ====================
    Нашел таки источник проблем. Проблема стара как мир - несоответствие документации и железа, а именно - в ПК сигнал RESET на разъемы не выведен, хотя во всех книжках он указан как существующий. Как итог, при работе плат в линию постоянно шли наводки. Причем на разных платах по разному. На моей основной импульсы достаточно скоротечные и ВВ55 просто не успевала на них среагировать. На другой в основном тоже, но пару раз удалось засечь более длительные импульсы, из-за которых ВВ55 произвела сброс и, как следствие, загрузчик не подключил часть дисков. Насколько я понял, величина и частота наводок зависят как от шлейфа, которым плата подключается к ПК, так и от самой платы (видимо микрухи фонят по разному). Это не считая того, что при старте в регистрах ВВ55 творится разброд и шатание, каждый порт сам за себя.
    В принципе проблему можно решить несколькими путями:
    1. Перерезать дорожку /RESET у ВВ55 (35-я ножка) и подпаять на нее проводок к земле. Это можно сделать внутри панельки, получится аккуратно и незаметно. Либо сделать похожую операцию у ЛА3, но там будет видно. Недостаток очевиден - полное отсутствие сброса микросхемы.
    2. Похожая, но изменения нужно вносить внутри ПК. Пины 15 разъемов расширения свободны и на них можно завести +5В, благо шина прямо у разъемов. Вариант более предпочтителен, поскольку линия RESET используется не только в данном контроллере, но и к примеру в AY-контроллере. Так хоть гарантия, что не будет непредвиденных сбросов.
    3. В самом ПК сигнал RESET присутствует и появляется на короткое время при включении и перезагрузке. Его генерирует ТМ2 (DD5), и обеспечивает сброс процессора и двух ВВ55, отвечающих за порты ввода/вывода. Только он нам не подойдет, поскольку на разъемы, по документации, должен поступать инвертированный сигнал (т.е. активный низкий уровень). Этот сигнал можно снять с ножек 9 и 1, все той же ТМ2. На фото стрелками отмечена сама ТМ2 и ножки RESET на разъемах (они были вообще пустыми):
    =================== создание и подготовка жесткого диска (Compact Flash) ===================
    Первое, нужно разбить диск на разделы. Я делаю это программой FDISK, из пакета MS-DOS/PC-DOS, но возможно есть аналогичные программы под винду. Итак, первым делом, выбираем нужный нам диск и удаляем с него все разделы. Далее, создаем основной раздел. В CP/M он будет игнорироваться, поэтому на него нет ограничений по размеру. Затем, создаем расширенный раздел на весь оставшийся объем диска. В этом расширенном разделе создаем логические диски, которые и будут отображаться в CP/M. Поэтому, желательно "нарезать" их размерами от 1 до 20 Мб, не более 12 штук (на больше не хватит памяти у ПК8000). По завершении назначаем основной раздел загрузочным (первичным) и выходим. Основной раздел можно отформатировать и записать на него дос и все необходимые утилиты, но это по желанию.
    Вот теперь используем F8000D.EXE.
    Коротко о параметрах.
    В CP/M диск состоит из 128-байтных секторов. То есть, все операции записи/чтения производятся с секторами, а не побайтно. Сектора объединяются в группы, от 2 и выше секторов (всегда кратно степени двойки!). В досе эти группы называют кластерами, в CP/M - блоками. Таким образом, минимальная единица дискового пространства в CP/M - это блок. Даже если файл имеет размер в 1 байт, на диске ему выделится один блок. Понятно, что чем меньше блоки, тем рациональнее используется дисковое пространство. Однако, в системе есть такая таблица - allocation vector (ALV), где помечается статус блоков диска (занят или свободен). Размер этой таблицы естественно ограничен. В данной реализации ее размер 2Кб, то есть на 16384 блоков (1 бит - 1 блок). И если одному диску выделить 8000 блоков, то остальным останется чуть больше половины. Поэтому количество блоков нужно распределить так, чтобы хватило всем дискам. Если имеем 12 дисков одинакового размера, то каждому можно выделить по 16384/12 = 1360 блоков. Это и регулирует параметр:
    -a<xxx> - size ALV with 'xxx', [128..512] (default 256)
    Размер задается в байтах и чтобы получить количество блоков нужно умножить на 8. Размер я ограничил от 1024 до 4096 блоков. Нужно понимать, что реальный размер блока может отличаться от заданного. Он вычисляется по формуле: size = DiskSize / ((ALV - 1) * 8) и округляется до большего значения кратного степени двойки. К примеру, имеем диск 2Мб и задаем ALV равным 300, то есть 2400 блоков. Размер блока будет равен 2Мб/(299 * 8) = 876. Округляем до ближайшего кратного и получаем 1024. Количество блоков соответственно будет 2048 (вместо запланированных 2400), а размер ALV = 256.
    Под оглавление диска тоже выделяется некоторое количество блоков. Чем больше, тем больше файлов можно на нем хранить. Максимально можно выделить 16 блоков. За это отвечает параметр:
    -d<x> - size directory in clusters [2..16] (default 2)
    Только не нужно забывать, что чем больший размер директории, тем больше времени тратит система на поиск и загрузку файлов. Ну и на размер свободного пространства тоже влияет, не без этого. Тут трудно что-то посоветовать, поскольку один файл может занимать от 1 до нескольких записей (одна запись - 32 байта) и расчитать заранее невозможно. Мне хватает 4 блоков и лишь один раз столкнулся с нехваткой места в директории, когда пытался уместить на диск несколько десятков файлов. В общем, нужно экспериментировать.
    Итак, запускаем. Выбираем диск. Далее начинается сканирование и поиск логических дисков. При нахождении логического диска будет выведен запрос на конвертирование его под CP/M. При нахождении диска CP/M будет выведен запрос на его преобразование в диск DOS. Это было сделано после того, как я столкнулся с тем, что FDISK отказывается удалять разделы с дисками НЕ-DOS. Такая вот политкорректность от мелкософта
    --------------------------------
    Теперь можно приступить к переносу софта. Это делается либо в досе, утилитой C8000D, либо в винде, посредством плагина к Total Commander, я его здесь выкладывал. Утилита C8000D требует задания имени диска, на который копируются файлы. Имя - это имя диска в CP/M, начиная от 'A' и тд. по возрастанию. Копируемые файлы можно задать по маске, как это допускает ДОС. Все, подключаем к ПК и работаем.

    PS: Собственно диск в основном разделе я форматирую под FAT16 и делаю его загрузочным. На него записываю вышеперечисленные утилиты и все файлы для ПК8000. Удобно тем, что загрузившись с него можно форматнуть любой CP/M диск и записать нужные файлы. Сам диск прекрасно виден в винде. Как-то так.
    ======================= плата ======================
    HDDVV55 (PDF).zip
    HDD_vv55.zip
    Последний раз редактировалось DemonId7; 29.12.2018 в 19:16.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. ПК8000 - Клавиатура
    от Mick в разделе ПК8000
    Ответов: 67
    Последнее: 18.08.2024, 18:49
  2. ПК8000 - Ремонт
    от Mifody в разделе ПК8000
    Ответов: 106
    Последнее: 09.03.2023, 01:20
  3. Набор платок внешних периферийных устройств для спектрума.
    от zorel в разделе Несортированное железо
    Ответов: 70
    Последнее: 31.08.2015, 23:02
  4. куплю пк8000
    от omaxlab в разделе Барахолка (архив)
    Ответов: 26
    Последнее: 02.07.2012, 21:44
  5. Тул для конвертации образов носителей
    от Alex Rider в разделе Утилиты
    Ответов: 22
    Последнее: 05.05.2012, 16:25

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •