User Tag List

Показано с 1 по 10 из 538

Тема: Планирую сделать FDD эмулятор на Atmega8

Комбинированный просмотр

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

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от TomaTLAB Посмотреть сообщение
    Если микроконтроллер успевает по сигналу чтения отдать на шину слово состояния, то по какой причине он не успеет отдать байт данных?
    Да зачем микроконтроллеру успевать отдавать данные ?

    Похоже, что мы говорим о разных схемах эмулятора. Зачем микроконтроллеру заменять программным путем регистр данных или статуса ? Проще иметь эти регистры аппаратно, ведь все регистры размещаются по разным адресам. Это может быть часть ППА или просто ИР22/23. Если помните, в ИР23 сигнал /OE не мешает защелкивать данные в регистр. Процессор 8008 записал в ИР23 байт, который якобы считался из дисковода (а на самом деле из очень большого ОЗУ), а затем записал в регистр статуса или в 2-х разрядный регистр имитирующий ноги 38,39 ВГ93 (что зависит от схемы КНГМД) признак готовности. И всё. Дальше от отдыхает. Ждёт когда произойдёт чтение регистра данных основным процессором, по которому автоматически (аппаратно, т.е без участия процессора 8008) бит в регистре статуса сам сбросится. Узнав об этом, процессор эмулятора, не торопясь, проверит, что в счётчике пакета (BC, где изначально число байтов в секторе) не 0, а после чего снова считает очередной байт: LD A,(HL) : LD (DATA),A : INC HL : LD (READY),A и на петлю контроля флага в регистре статуса.

    А Вы, похоже, говорите о схеме, в которой в качестве интерфейса с ЦП на чтение c контроллера есть всего один ИР22. Тогда нужен триггер формирующий сигнал WAIT шины ЦП. Как только ЦП попытается считать что-то с регистра данных или статуса, то он зависнет по WAIT и будет ждать данных. Тогда 8008 должен выяснять какой адрес стоит на шине, чтобы понять читается регистр данных или регистр статуса и соответственно записать в ИР23 нужное число, а потом сбросить триггер WAIT для ЦП. Это тоже не станет проблемой скорости, т.к не важно с какой скоростью ЦП читает данные из регистра данных и переносит их в своё ОЗУ.

    Цитата Сообщение от EvgenRU
    меня вот что интересует, команда ВГ93 чтение сектора, куда она его читает? В буфер и потом из буфера читается портом #7F или она сразу в память читает?
    Вопрос неточный, но суть вопроса ясна. Это зависит от типа носителя. В старых microSD до 2 Гб была байтовая адресация (32 разряда адреса хватает лишь на 2 Гб). Также в обычном ОЗУ адресация побайтовая. Зачем же эмулятору читать в какой-то промежуточный буфер целый сектор и только потом выдавать его на интерфейс? Это только тормознёт. Но в новых 'microSD' в которых адресация посекторная, а также, возможно для ускорения, можно считывать целый сектор в промежуточный буфер.

    В отличие от прогрессивных МК, древний CPU может адресоваться только к 64К (а 8008 вообще лишь 16К). Поэтому для адресации большого ОЗУ следует применять HD64180ZP8, с встроенным MMU или же нужен регистр, играющий роль менеджера памяти. Удобно сделать окно доступа к большому ОЗУ в 32К, отчего и от 8008 придётся отказаться (т.к он адресуется лишь к 16К) и применить КМОП Z80 (SU880) на такте, например, 2 МГЦ. Тогда по числам, что ЦП записал в регистр трека и регистр сектора, получив команду чтения сектора, Z80 эмулятора вычисляет номер полу-банки и записывает это в регистр выбора полубанки. Отчего в адресном пространстве Z80 возникает фрагмент большой памяти, где находятся нужные данные. Далее по числу в регистре сектора вычисляется адрес начала нужных данных в ОЗУ и загружается в HL, а в BC размер сектора и начинается передача байта за байтом данных (якобы считанных из сектора).

    У меня возник другой вопрос. Если Вы в качестве носителя используете флэш память у которой очень ограниченное число перезаписей, то раз в сколько дней надо менять карточку 'microSD' на новую. Это обычное ОЗУ может работать по 40 лет и скорость их выхода из строя не зависит от числа перезаписей. А на 'microSD' и других флэш носителях можно делать только устройства типа ROM. Вот почему в новомодные цифровые магнитофоны на базе флеш-памяти не вводят запись.
    Последний раз редактировалось barsik; 05.06.2017 в 15:54.

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

  3. #2

    Регистрация
    09.03.2017
    Адрес
    г. Троицк
    Сообщений
    609
    Спасибо Благодарностей отдано 
    125
    Спасибо Благодарностей получено 
    64
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    А Вы, похоже, говорите о схеме, в которой в качестве интерфейса с ЦП на чтение c контроллера есть всего один ИР22.
    В которой вообще нет ни ИР22, ни ИР23
    Владимир, я Вашу идею прекрасно понимаю. И не вижу в ней никаких противоречий.
    Здесь скорее в другом вопрос, успеет или нет голая AVR-ка обмен на шине переварить или нет. Не могу я навскидку сказать. Говорят вот, что нет.
    Но если она успеет дернуть WAIT по своему прерыванию от /RD, то уже никуда не денется. Ну накрайняк, я думаю, половинки ТМ2 должно хватить на это все безобразие.

  4. #3

    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    А Вы, похоже, говорите о схеме, в которой в качестве интерфейса с ЦП на чтение c контроллера есть всего один ИР22.
    Как тонко подметили выше, именно без внешней обвязки, иначе какой смысл ставить МК?


    Цитата Сообщение от barsik Посмотреть сообщение
    У меня возник другой вопрос. Если Вы в качестве носителя используете флэш память у которой очень ограниченное число перезаписей, то раз в сколько дней надо менять карточку 'microSD' на новую.
    Цитата Сообщение от barsik Посмотреть сообщение
    Единственно, что у меня по-прежнему остаются сомнения относительно долговечности девайса. Т.е если интенсивно использовать его для работы, перезаписывая флеш-память тысячи раз в день (что и происходит с областью каталога, если работать в ДОС хотя-бы час в день), то на сколько дней хватит ресурса перезаписей флеш памяти ? Но если нужно только запускать игры, то никаких проблем не будет.
    О, так Вы и тут не в курсе?

    Вот именно для того и ставят контроллеры в твердотельные накопители и разрабатывают файловые системы, чтоб не убивать девайсы раньше времени, чтоб ресурс флеши расходовать равномерно.
    Цитата Сообщение от barsik Посмотреть сообщение
    Не надо цепляться за FAT16/32. Проще работать с физическими секторами носителя средствами конкретной ДОС.
    Порочная практика. Именно таким способом накопитель и гробится.
    Впрочем читайте лучше первоисточники хотя бы ради самообразования.

  5. #4

    Регистрация
    09.03.2017
    Адрес
    г. Троицк
    Сообщений
    609
    Спасибо Благодарностей отдано 
    125
    Спасибо Благодарностей получено 
    64
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от omercury Посмотреть сообщение
    Не надо цепляться за FAT16/32. Проще работать с физическими секторами носителя средствами конкретной ДОС.
    Вот с этим не согласен. Если уж эмулятор имеет собственные мозги то пусть будет добр мочь в FAT16/32 на носителе который на раз можно будет сунуть в писюк и там без бубна пошуршать хоть в винде, хоть в лине.
    Нативный формат может быть оправдан, ИМХО, только на IDE устройствах подключенных напрямую в систему через пару регистров.
    Цитата Сообщение от omercury Посмотреть сообщение
    Порочная практика. Именно таким способом накопитель и гробится.
    В целом конечно верно, но есть у меня подозрение, что они гробятся в любом случае "топтанья" по одним и тем же файлам (секторам). Разве что, у новых SSD, причем в связке с оптимизированными процедурами последних ОСей как то удается немного жизнь продлить. И то до "механических" хардов еще ой как далеко.

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

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

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

Похожие темы

  1. Ответов: 24
    Последнее: 08.12.2012, 19:00
  2. Тестер транзисторов на ATmega8
    от ILoveSpeccy в разделе Творчество
    Ответов: 10
    Последнее: 19.05.2011, 15:03
  3. Ответов: 0
    Последнее: 31.01.2007, 18:18

Ваши права

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