User Tag List

Страница 13 из 24 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя
Показано с 121 по 130 из 232

Тема: Эмуляция 1801ВП1-128 в ПЛИС

  1. #121

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Бит 14 CSR сбрасывается по INIT и обновляется при пропуске требования. А сбрасывается ли этот бит при выполнении требования или когда-то ещё ?
    Если этот бит установился, то в режиме чтения не сбросится, так и будет установленным, пока его не сбросят битом GOR. В режиме записи он устанавливается при пропуске требования, т.е. при начале записи CRC.

    А вообще схема такая, что черт ногу сломит. Сложно вникать во все.

    ---------- Post added at 22:23 ---------- Previous post was at 22:19 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    Это вряд ли - байты там различаются на старшие и младшие, поэтому нет смысла пропускать запись старшего байта - ведь начинать чтение надо всегда с младшего байта, а очередь младшего байта наступает после старшего.
    Все это можно проверить практически, но все УКНЦ у меня сейчас отключены. Подключить надо время, да и программу написать. После этого достаточно прочесть уже записанную зону данных вместе с CRC и несколькими байтами дальше. Если после CRC будет один байт 0x4E, то старший байт не пишется, если два, то записывается.

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

  3. #122

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    И ещё вопрос - регистр данных обнуляется по INIT ?

    ---------- Post added at 21:32 ---------- Previous post was at 21:27 ----------

    Цитата Сообщение от Alex_K Посмотреть сообщение
    В режиме записи он устанавливается при пропуске требования, т.е. при начале записи CRC.
    Но при начале чтения - бит 14 уже должен быть сброшен, значит - он должен сбрасываться и при переходе из режима записи в режим чтения.

    Хотя нет. Пока не прочитан маркер - контрольная сумма чтения некорректна, поэтому нет смысла сбрасывать бит 14.
    Последний раз редактировалось Patron; 21.12.2013 в 22:40.

  4. #123

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    И ещё вопрос - регистр данных обнуляется по INIT ?
    Нет не обнуляется, это хорошо видно по схеме. Соответственно ни регистр чтения данных, ни регистр записываемых данных.
    Кстати, насчет бита 14, по схеме видно, что он имеет два источника, в зависимости от того, в каком режиме находится контроллер - чтения или записи. Собственно получается, что если он установился у нас в режиме чтения, потом перешли в режим записи, записали несколько слов с удовлетворением требования. При переходе в режим записи он (бит 14) очистится. Потом перейдем в режим чтения, и бит 14 снова установится.

  5. #124

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А если в режиме записи, после удовлетворения очередного требования - установить в CSR бит GOR - что тогда будет ?

  6. #125

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    А если в режиме записи, после удовлетворения очередного требования - установить в CSR бит GOR - что тогда будет ?
    Сложновато ответить. Надо капитально анализировать схему. Установка режима записи происходит под влиянием сигнала LAST_WR. Сброс в режим чтения - сигнал INIT на шине, а также еще целая куча сигналов, которые должны сбросить в режим чтения. Кстати, каким-то боком в этом участвует и сигнал IND, судя по схеме.

  7. #126

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Ещё вопросы по работе 1801ВП1-128.
    1. Когда при записи пропущено требование - на диск пишется контрольная сумма. Но что 1801ВП1-128 делает потом:

    1.1. Переходит в режим чтения.
    1.2. Переходит в режим поиска маркера.
    Остается в режиме записи и продолжает писать нулевые данные.

    Цитата Сообщение от Patron Посмотреть сообщение
    Ещё вопросы по работе 1801ВП1-128.2. Что произойдёт, если при получении требования в режиме записи - выполнить
    чтение регистра данных вместо записи:
    Запись прекращается немедленно (так же nWRE сразу выставляется в высокий уровень), потом переходит в режим чтения, но неполноценное - не ищется маркер и не обнуляется CRC по приходу маркера. То есть полноценно прочитать следующий сектор без инициализации битов GDR не получится.

  8. #127

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Остается в режиме записи и продолжает писать нулевые данные.
    Т.е. расчет CRC прекращается? И записанная ранее CRC рассчитывается сама с собой - получается ноль, и он дальше записывается?

  9. #128

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Т.е. расчет CRC прекращается? И записанная ранее CRC рассчитывается сама с собой - получается ноль, и он дальше записывается?
    Нет, она не может сама с собой рассчитаться - она же на выход сдвигового CRC-регистра уходит, а считается со входа. Там чуть хитрее - когда пишется сама сумма после задержанного требования становится активным сигнал CRC_IN0, в регистр при этом начинают вдвигаться единицы (чтобы не искажать вычисленную сумму, то есть регистр CRC просто превращается в сдвиговый, XOR-ы блокируются), и после посылки суммы просто продолжают посылаться уже эти инвертированные единицы.

  10. #129

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Запись прекращается немедленно
    Насколько немедленно:

    1. Дописывается на диск младший байт из сдвигового регистра, а вместо переноса в сдвиговый регистр старшего байта - начинается чтение.

    2. Дописываются на диск оба байта текущего содержимого регистра данных и только потом начинается чтение.

    ---------- Post added at 12:14 ---------- Previous post was at 12:11 ----------

    Цитата Сообщение от Vslav Посмотреть сообщение
    полноценно прочитать следующий сектор без инициализации битов GDR не получится.
    В описании КМД этот бит называют GOR:



    ---------- Post added at 12:18 ---------- Previous post was at 12:14 ----------

    Цитата Сообщение от Vslav Посмотреть сообщение
    Остается в режиме записи и продолжает писать нулевые данные.
    И сигнал IND никак на это не влияет ?

    А если не обращаясь к регистру данных - установить в CSR бит GOR, что-нибудь в такой ситуации изменится ?

    ---------- Post added at 14:17 ---------- Previous post was at 12:18 ----------

    Ещё вопрос - по пропуску "синхробита" при записи.

    Программа форматирования пишет на диск четыре байта: 0xA1,0xA1,0xA1,0xFE с установленным в CSR битом WM. В каких байтах при этом происходит пропуск "синхробита":

    1. Только в байтах 0xA1.
    2. Только в первом записываемом байте из каждого слова.
    3. Во всех байтах, записываемых с битом WM в CSR.

    ---------- Post added at 15:03 ---------- Previous post was at 14:17 ----------

    Цитата Сообщение от Alex_K Посмотреть сообщение
    В режиме записи бит 14 устанавливается при пропуске требования, т.е. при начале записи CRC.
    По логике работы программы форматирования - этот бит должен сбрасываться, а генератор CRC перезапускаться то ли после каждого перехода бита WM из 0 в 1 при котором в сдвиговом регистре находится байт 0xA1, то ли просто после каждого попадания при записи байта 0xA1 в сдвиговый регистр, если при этом установлен бит 14.

    Записав заголовок сектора - программа форматирования ждёт установки бита 14, чтобы была выполнена запись CRC, потом без единого перехода в режим чтения - пишет промежуток, маркер данных, данные и затем повторно ожидает записи CRC:

    Код:
    5552$:	CALL	7614$		; Запись GAP, синхрозоны и маркера заголовка
    5556$:	TSTB	@R4		; Контроллер готов к приему?
    	BPL	5556$		; Нет
    	MOV	14(R3),@R5	; Записать дорожку/сторону в заголовок
    	MOV	2(R3),@R4	; Выключить запись маркера
    5572$:	TSTB	@R4		; Контроллер готов к приему?
    	BPL	5572$		; Нет
    	MOV	R2,@R5		; Записать длину/номер сектора в заголовок
    	MOV	#13,R0		; R0 = длина GAP2
    	MOV	#175641,16(R3)	; Будет записываться маркер данных 0xFBA1
    5612$:	BIT	#40000,@R4	; CRC заголовка записана?
    	BEQ	5612$		; Нет
    	CALL	7614$		; Запись GAP2, синхрозоны и маркера данных
    	MOV	R1,R0		; R0 = размер сектора в словах
    5626$:	TSTB	@R4		; Контроллер готов к приему?
    	BPL	5626$		; Нет
    	MOV	34(R3),@R5	; Записать первое слово заполнителя
    	MOV	2(R3),@R4	; Выключить запись маркера
    	DEC	R0		; Уменьшить число записываемых слов
    5644$:	TSTB	@R4		; Контроллер готов к приему?
    	BPL	5644$		; Нет
    	MOV	34(R3),@R5	; Записать заполнитель в цикле
    	SOB	R0,5644$
    	INC	R2		; Увеличить номер сектора
    	MOVB	62(R3),R0	; R0 = размер GAP3 в словах
    	MOV	#177241,16(R3)	; Далее записывается маркер заголовка 0xFEA1
    5672$:	BIT	#40000,@R4	; CRC зоны данных записана?
    	BEQ	5672$		; Нет
    Понятно, что в ходе записи маркера данных - бит 14 сбросился, а генератор CRC перезапустился, но обязательно ли для этого устанавливать бит WM и сработает ли такой "перезапуск" до записи CRC - не понятно.
    Последний раз редактировалось Patron; 22.12.2013 в 18:23.

  11. #130

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Насколько немедленно:

    1. Дописывается на диск младший байт из сдвигового регистра, а вместо переноса в сдвиговый регистр старшего байта - начинается чтение.

    2. Дописываются на диск оба байта текущего содержимого регистра данных и только потом начинается чтение.
    Немедленно и сразу. Может записаться только несколько бит.

    ---------- Post added at 18:29 ---------- Previous post was at 18:27 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    Ещё вопрос - по пропуску "синхробита" при записи.

    Программа форматирования пишет на диск четыре байта: 0xA1,0xA1,0xA1,0xFE с установленным в CSR битом WM. В каких байтах при этом происходит пропуск "синхробита":

    1. Только в байтах 0xA1.
    2. Только в первом записываемом байте из каждого слова.
    3. Во всех байтах, записываемых с битом WM в CSR.
    Во всех байтах записываемых с битом WM, но получится только в 0xA1, т.к. в 0xFE отсутствует требуемого количество нулевых битов (ноль после нуля).

    ---------- Post added at 18:40 ---------- Previous post was at 18:29 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    По логике работы программы форматирования - этот бит должен сбрасываться, а генератор CRC перезапускаться то ли после каждого перехода бита WM из 0 в 1 при котором в сдвиговом регистре находится байт 0xA1, то ли просто после каждого попадания при записи байта 0xA1 в сдвиговый регистр, если при этом установлен бит 14.

    Записав заголовок сектора - программа форматирования ждёт установки бита 14, чтобы была выполнена запись CRC, потом без единого перехода в режим чтения - пишет промежуток, маркер данных, данные и затем повторно ожидает записи CRC:

    Код:
    5552$:	CALL	7614$		; Запись GAP, синхрозоны и маркера заголовка
    5556$:	TSTB	@R4		; Контроллер готов к приему?
    	BPL	5556$		; Нет
    	MOV	14(R3),@R5	; Записать дорожку/сторону в заголовок
    	MOV	2(R3),@R4	; Выключить запись маркера
    5572$:	TSTB	@R4		; Контроллер готов к приему?
    	BPL	5572$		; Нет
    	MOV	R2,@R5		; Записать длину/номер сектора в заголовок
    	MOV	#13,R0		; R0 = длина GAP2
    	MOV	#175641,16(R3)	; Будет записываться маркер данных 0xFBA1
    5612$:	BIT	#40000,@R4	; CRC заголовка записана?
    	BEQ	5612$		; Нет
    	CALL	7614$		; Запись GAP2, синхрозоны и маркера данных
    	MOV	R1,R0		; R0 = размер сектора в словах
    5626$:	TSTB	@R4		; Контроллер готов к приему?
    	BPL	5626$		; Нет
    	MOV	34(R3),@R5	; Записать первое слово заполнителя
    	MOV	2(R3),@R4	; Выключить запись маркера
    	DEC	R0		; Уменьшить число записываемых слов
    5644$:	TSTB	@R4		; Контроллер готов к приему?
    	BPL	5644$		; Нет
    	MOV	34(R3),@R5	; Записать заполнитель в цикле
    	SOB	R0,5644$
    	INC	R2		; Увеличить номер сектора
    	MOVB	62(R3),R0	; R0 = размер GAP3 в словах
    	MOV	#177241,16(R3)	; Далее записывается маркер заголовка 0xFEA1
    5672$:	BIT	#40000,@R4	; CRC зоны данных записана?
    	BEQ	5672$		; Нет
    Понятно, что в ходе записи маркера данных - бит 14 сбросился, а генератор CRC перезапустился, но обязательно ли для этого устанавливать бит WM и сработает ли такой "перезапуск" до записи CRC - не понятно.
    Битов 14 целых два - один для режима чтения, другой для записи. И отображается в регистр состояния тот, в каком режиме находится контроллер. Vslav уже вроде писал, что расчет CRC при записи начинается при попадании 0xA1 в сдвиговый регистр, а бит WM нужен, чтобы при записи выполнить необходимые пропуски синхроимпульсов.
    По поводу комментариев, они не всегда могут быть верные, т.к. когда я разбирал работу ПЗУ УКНЦ, а далее и фирмваре КМД ДВК, то писал так, как понимал на тот момент работу 1801ВП1-128, документации не было, и все приходилось додумывать самому. Кстати по адресу 5300 правильный комментарий, о том, что CRC начала записываться.

Страница 13 из 24 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. ЮТ-88: Реализация на ПЛИС (DE1)
    от Santechnik в разделе ЮТ-88
    Ответов: 61
    Последнее: 13.05.2022, 08:22
  2. Вопрос по ПЛИС
    от Zloy в разделе Несортированное железо
    Ответов: 23
    Последнее: 17.10.2015, 17:12
  3. Аксель на ПЛИС
    от iceoflame в разделе Amiga
    Ответов: 163
    Последнее: 25.03.2012, 14:51
  4. Список версий 1801ВП1 и 1801РЕ2
    от CodeMaster в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 28.02.2012, 22:39
  5. 1801вп1-128
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 0
    Последнее: 29.05.2010, 11:24

Ваши права

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