User Tag List

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

Тема: Эмулятор ДВК

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

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

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

    По умолчанию Дорожка в формате IBM с маркерами 0xC2

    Попробовал недокументированную функцию форматирования дорожки в формате IBM с индексными маркерами 0xC2. Функция эта присутствует в КМД с прошивками -092, -093* и -255, в -091 её нет. Отформатировалось все нормально, но вот с чтением первого сектора проблема. Эта проблема есть в прошивке -091, но в более поздних её убрали. Вот кусок кода из прошивки:
    Код:
    ; Удостоверение в том, что попали на синхрозону
    7014$:	MOV	#3,32(R3)	; Счетчик для удостоверения
    7022$:	MOV	@R5,R0		; Считанное слово равно нулю?
    	BEQ	7032$		; Да
    	INC	R0		; Считанное слово равно 177777?
    	BNE	7066$		; Нет - не синхрозона
    7032$:	DEC	32(R3)		; Уменьшить счетчик
    	BNE	7022$		; Продолжаем дальше
    ; Поиск и ожидание маркера
    	CALL	7220$		; Дать команду на поиск маркера
    	MOV	#24,R0		; R0 = счетчик ожидания маркера
    	TST	@R4		; Линия ИНДЕКС активна?
    	BPL	7060$		; Нет
    	MOV	#764,R0		; R0 = счетчик ожидания для первого сектора
    7060$:	TSTB	@R4		; Маркер найден?
    	BMI	7074$		; Да
    	SOB	R0,7060$	; Цикл ожидания маркера
    ; Маркер не найден - на поиск нулей
    7066$:	TST	@R4		; Линия индекс активна?
    	BPL	6664$		; На пропуск нулей при неактивном ИНДЕКСЕ
    	BR	6756$		; На пропуск нулей при активном ИНДЕКСЕ
    ; Определение типа найденного маркера
    7074$:	TST	@R5		; Пропустить 0xA1A1
    Как видно из кода, если активна линия ИНДЕКС, то в качестве счетчика ожидания при поиске маркера используется значение 0764, если неактивна, то 024. Это нужно потому, что если попали на синхрозону перед индексным маркером 0xC2, то надо пропустить оставшиеся нули, 4 байта самого маркера, 50 байт промежутка и 12 байт синхрозоны перед заголовком первого сектора.
    Patron, хотелось бы узнать, какова длина ИНДЕКСА, сколько байт с начала дорожки. Соответственно, в чем проблема - линия ИНДЕКС уже неактивна в этой проверке, или значения 0764 слишком мало для ожидания.
    Во вложении программа форматирования диска в формате IBM, ну и сам образ диска.
    Вложения Вложения
    • Тип файла: rar fmtc2.rar (21.0 Кб, Просмотров: 207)

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    хотелось бы узнать, какова длина ИНДЕКСА
    Длина индекса 1000000 нс ( 1 мс ). В момент появления индекса номер текущего байта дорожки обнуляется. Увеличивается номер текущего байта дорожки каждые 32000 нс ( 32 мкс ).


    Цитата Сообщение от Alex_K Посмотреть сообщение
    Соответственно, в чем проблема - линия ИНДЕКС уже неактивна в этой проверке, или значения 0764 слишком мало для ожидания.
    Сейчас посмотрю, но кое-что можно сделать самостоятельно.

    Если добавить в файл MY.cfg включение дизассемблера:

    Код:
    [links]
    MY_CPU [DisAsm] > Debug
    
    
    [MY_CPU.ini]
    InitialStateOf[DisAsm]=1
    
    
    [Debug.ini]
    InitialStateOf[Log]=1
    То все команды, выполняемые процессором КМД, запишутся в файл Debug.log

  4. #3

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Длина индекса 1000000 нс ( 1 мс ). В момент появления индекса номер текущего байта дорожки обнуляется. Увеличивается номер текущего байта дорожки каждые 32000 нс ( 32 мкс ).


    Сейчас посмотрю, но кое-что можно сделать самостоятельно.
    Самостоятельно уже ничего делать не надо. Длина индекса слишком маленькая. Предварительно записывается 51(8) слово промежутка, потом 12 байт синхрозоны, всего 94 байт. Это по длительности 3008 мкс. Т.е. длину индекса надо сделать хотя бы 3,1 мс. Тогда может и пойдет.
    Последний раз редактировалось Alex_K; 19.01.2014 в 22:59.

  5. #4

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Длина индекса слишком маленькая.
    Я брал длину индекса из описания дисковода. Интересно было бы определить продолжительность этого сигнала экспериментально.

  6. #5

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Я брал длину индекса из описания дисковода. Интересно было бы определить продолжительность этого сигнала экспериментально.
    Интересно, из какого? Где-то в форуме проскакивала про это информация, там тоже была ссылка на документацию, но там говорилось от 3 до 5 мс.

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

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

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

Похожие темы

  1. Эмулятор
    от vladimir53 в разделе Орион
    Ответов: 20
    Последнее: 03.09.2024, 13:24
  2. Эмулятор ПЗУ.
    от ALKO в разделе Память
    Ответов: 8
    Последнее: 17.05.2011, 13:41
  3. Эмулятор AY на AVR
    от serkiri в разделе Звук
    Ответов: 52
    Последнее: 10.06.2010, 09:01
  4. Эмулятор для Mac
    от AlexBel в разделе Эмуляторы
    Ответов: 11
    Последнее: 02.05.2010, 18:53

Ваши права

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