Важная информация

User Tag List

Страница 4 из 8 ПерваяПервая 12345678 ПоследняяПоследняя
Показано с 31 по 40 из 77

Тема: Эмулятор дисковода для ПЭВМ Агат

  1. #31
    Member
    Регистрация
    28.08.2016
    Адрес
    г. Москва
    Сообщений
    49
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Cool

    Всем привет!
    Долго думал как сделать поддержку записи.
    Потом сел и за пару часов написал алгоритм преобразования импульсов данных записи в битовый поток.
    Полученный поток записывается сразу в кеш активной дорожки в памяти МК, поверх старых данных.
    Съездил в отпуск, думал еще.
    Вернулся, переписал обработку импульсов и добавил запись в файл образа при смене активной дорожки.

    Вот записал короткое видео. Грузится ИКП9, потом меняю дискету на чистую, пишу на нее программу на бейсике.



    Пока поддерживаются только мои образы типа NIM (сырые MFM данные).
    И запись работает только для команд бейсика SAVE/BSAVE. Или для любых других которые пишут только область данных сектора.
    Можно копировать программы с реального дисковода через BLOAD/BSAVE.
    Копирование дисков из ИКП пока не работает, т.к. оно пишет дорожку целиком, уже знаю как починить.

    Поэкспериментировал с обнаружением desync на лету. Оказалось, это достаточно просто, что позволит легко добавить поддержку записи сразу в DSK образы.

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    778
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Судя по не характерному треску не совсем все шоколадно, на реальном АГАТе "тр-р-р, тр-р-р" - и готово, да и артефактные полоски говорят об этом...

    Цитата Сообщение от sintech Посмотреть сообщение
    Поэкспериментировал с обнаружением desync на лету. Оказалось, это достаточно просто, что позволит легко добавить поддержку записи сразу в DSK образы.
    А вот это можно по-подробнее?
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  4. #33
    Member
    Регистрация
    28.08.2016
    Адрес
    г. Москва
    Сообщений
    49
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    Судя по не характерному треску не совсем все шоколадно, на реальном АГАТе "тр-р-р, тр-р-р" - и готово, да и артефактные полоски говорят об этом...
    А вот это можно по-подробнее?
    Да, с чтением появились проблемы, пока не нашел причину. Скорее всего дело в нестабильности выдачи импульсов чтения.
    Desync ищу так: каждые прочитанные 16 бит (данных записи) запускаю цикл, в котором добавляю по одному биту справа к буферной переменной и делаю XOR с 0x89245555, если результат 0, то все последующие биты пишу как информацию из поля данных соответствующего сектора (минус пролог и эпилог с КС). Потом это нужно будет преобразовать из MFM в нормальный вид и записать в соответствующее место образа DSK.

  5. #34
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    778
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ясно, спасибо.
    1. Где-то на форуме Владимир говорил, что в паре синхросбоя вторым байтом может быть и не $FF. (0x89245555)
    2. Синхросбой не только перед полем данных, но и перед адресным полем.
    3. Предкомпенсацию записи как-то обрабатываешь?
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  6. #35
    Member
    Регистрация
    28.08.2016
    Адрес
    г. Москва
    Сообщений
    49
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    Ясно, спасибо.
    1. Где-то на форуме Владимир говорил, что в паре синхросбоя вторым байтом может быть и не $FF. (0x89245555)
    Да, тут либо проверять все возможные варианты, если их конечное кол-во либо писать как есть а уже потом анализировать на компьютере или на контроллере в offline.

    2. Синхросбой не только перед полем данных, но и перед адресным полем.
    Да, но все команды записи бейсика, которые я пробовал, пишут только кусок данных размером 269-270 MFM слов попадающий между GAP2 (почти полностью) и GAP3 (пару байт):
    Код:
    2.3 GAP2 5x 0xAA bytes
    2.4 Desync: 0xA4, 2 ms zero level interval, 0xFF
    2.5 Data field:
        0x6A, 0x95 (2 byte, data field prologue),
        256 Data Bytes,
        CRC (1 byte),
        0x5A (1 byte, data field epilogue)
    2.7 GAP3 22x 0xAA bytes
    Поля адреса записываются только по команде INIT или при копировании дискет копировщиком ИКП например.

    3. Предкомпенсацию записи как-то обрабатываешь?
    Т.к. временные промежутки между импульсами довольно легко дифференцируются, а предкомпенсация добавляет доли микросекунды, то думаю нет смысла както явно ее учитывать.
    Вот пример записи в условных единицах длительности паузы между импульсами, в скобках длина паузы в тиках процессора, после стрелки кол-во импульсов с такой длиной:
    Код:
        [317] => 4
        [343] => 41
        [349] => 1
        [369] => 796
        [371] => 1
        [395] => 2
        [550] => 3
        [551] => 527
        [575] => 1
        [577] => 164
        [733] => 44
        [734] => 1
        [759] => 69
        [783] => 1
        [785] => 21
        [811] => 1
    Поэтому, мы можем легко задать довольно широкие диапазоны для декодирования, например: 0-450 код 10, 450-650 код 100, 650-... код 1000.
    Также никто не мешает анализировать эти интервалы после получения данных и подстраивать окна автоматически на основе максимального расстояния между группами значений.

  7. #36
    Member Аватар для Santechnik
    Регистрация
    08.05.2010
    Адрес
    Brisbane, AU
    Сообщений
    193
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мне кажется, что писать \ читать сырой поток здравая идея. Легче требования к железу, проще программа, упрощается работа с дисками с защитами от копирования и нестандартными программами. А конвертер в \ из DSK можно и на компе сделать если очень надо - никаких требований к производительности в реальном времени и ограничений по функциональности.
    Все детали проектов ЮТ-88 на ПЛИС, АГАТ-7 на ПЛИС и прочее в моем блоге на http://electronicsfun.net

  8. #37
    Member
    Регистрация
    28.08.2016
    Адрес
    г. Москва
    Сообщений
    49
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Santechnik Посмотреть сообщение
    Мне кажется, что писать \ читать сырой поток здравая идея.
    Это так, но основной предпосылкой для создания эмулятора с моей стороны, была поддержка уже существующих форматов, без необходимости их конвертации в промежуточный специфический формат.
    С чтением проблем нет, с записью сложнее, но я уверен, что те программы которые поставляются в dsk образах не используют нестандартные desync и прочее, поэтому с ними и с записью проблем не будет.

  9. #38
    Veteran
    Регистрация
    30.08.2005
    Адрес
    Питер
    Сообщений
    1,213
    Спасибо Благодарностей отдано 
    85
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    39 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Привет!

    Захотел скомпилировать под Arduino IDE, но стал выдавать кучу ошибок. Нельзя ли скачать уже скомпилированный файл?
    Собираю в коллекцию советские калькуляторы и компьютеры.
    Мой сайт: http://www.leningrad.su/museum/

  10. #39
    Member
    Регистрация
    28.08.2016
    Адрес
    г. Москва
    Сообщений
    49
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Конечно, выложу вечером на гитхаб.

    - - - Добавлено - - -

    Цитата Сообщение от sintech Посмотреть сообщение
    Конечно, выложу вечером на гитхаб.
    Выложил две версии бинарника под teensy 3.1/3.2 с разными профилями оптимизации.
    В работе могут быть небольшие различия.
    https://github.com/sintech/AGAT/tree...build/agatdisk

    К сожалению, в последнее время до этой версии эмулятора руки не доходили.
    Но в любом случае жду баг репортов и постараюсь оперативно исправить

  11. #40
    Veteran
    Регистрация
    30.08.2005
    Адрес
    Питер
    Сообщений
    1,213
    Спасибо Благодарностей отдано 
    85
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    39 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо!
    Собираю в коллекцию советские калькуляторы и компьютеры.
    Мой сайт: http://www.leningrad.su/museum/

Страница 4 из 8 ПерваяПервая 12345678 ПоследняяПоследняя

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

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

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

Похожие темы

  1. История ПЭВМ АГАТ
    от GARNIZON в разделе Агат
    Ответов: 54
    Последнее: 16.01.2022, 00:05
  2. ИЩУ ДИСКИ ДЛЯ ПЭВМ АГАТ
    от GARNIZON в разделе Агат
    Ответов: 18
    Последнее: 31.03.2009, 00:01
  3. Куплю все, что касается ПЭВМ Агат и Commodore
    от ed4mk в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 19.09.2008, 13:26
  4. Эмулятор дисковода - ?
    от Sonic в разделе Внешние накопители
    Ответов: 32
    Последнее: 17.11.2006, 15:16

Ваши права

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