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

User Tag List

Страница 7 из 38 ПерваяПервая ... 34567891011 ... ПоследняяПоследняя
Показано с 61 по 70 из 371

Тема: Винчестер УКНЦ

  1. #61

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,141
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Со стороны UI эмуляцию сделал, порты IDE читаются и пишутся, геометрию из образа получаю, осталось сделать эмуляцию на уровне реакции на чтение/запись портов, реализацию команд.

    Застрял пока вот на этом -- крутится в цикле по адресам 001264--001274, ожидая статуса BUSY (код прошивки Олега):
    Код:
    001250  MOV     #000006, R0
    001254  MOV     #177014, R1
    001260  CALL    001406
    001264  CALL    001402
    001270  MOVB    @#110000, R4		; Чтение статуса IDE
    001274  BPL     001264			; Проверяем бит 7 == BUSY, переход если сброшен
    ...
    
    001372  MOV     R5, @#177054		; Отключение портов IDE
    001376  MTPS    R0
    001400  RTS     R2
    001402  JSR     R2, 001372
    001406  MOV     @#177054, R5
    001412  MTPS    (PC)
    001414  MOV     #000006, @#177054	; Включение ПЗУ и портов IDE
    001422  RETURN
    Но я тут не вижу причин почему бит BUSY должен возникнуть -- команд в IDE до этого не передавалось, сброса тоже не было.
    С моей стороны возвращается статус 000100 (DRIVE_READY).

    UPD: Блин, я идиот -- передаваемые данные же инвертируются шиной QBUS, здесь ожидается снятие сигнала BUSY а не установка!
    Последний раз редактировалось nzeemin; 08.03.2010 в 13:25.

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

  3. #62

    Регистрация
    26.02.2010
    Адрес
    Запорожье
    Сообщений
    2,171
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Насколько мне помнитсо, ждать BUSY вечно нельзя...

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

    Код:
    wait_busy:
    	push eax ecx edx
    	mov ecx,timer_tic
    	add ecx,deley
    loc1:
    	cmp ecx,timer_tic
    	jb wb_err
    	mov dx,3f6h
    	in al,dx
    	test al,80h
    	jnz loc1
    wb_exit:
    	pop edx ecx eax
    	ret
    wb_err:
    	or byte ptr ide_s[ebp].ide_num,40h
    	jmp wb_exit
    .

  4. #63

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Atari Посмотреть сообщение
    Насколько мне помнитсо, ждать BUSY вечно нельзя...
    Можно. Но смысла нет.

  5. #64

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,141
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В первый раз прочитал сектор -- команда 20h начала работать:



    На прошивке Олега, правда, пока ничего не получилось.

    rzk, а ты не помнишь какой загрузчик использовался с этим винчестером -- этот или Олега?
    Последний раз редактировалось nzeemin; 08.03.2010 в 19:40.

  6. #65

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

    По умолчанию

    кажется Олега, я помню строчку про Oleg H., но я не уверен.

  7. #66

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    rzk, а ты не помнишь какой загрузчик использовался с этим винчестером -- этот или Олега?
    Вообще-то в этих образах везде драйвер ID.SYS от "Электронных работ", а драйвера WD.SYS от Олега Ховайко нигде нет.
    Кстати, там еще подпорчена таблица разделов, их реально 6, а не 8, как в таблице. Еще размеры реальных разделов другие. Надо подправлять таблицу и контрольную сумму в конце первого сектора.

  8. #67

    Регистрация
    22.07.2007
    Адрес
    St.Petersburg
    Сообщений
    604
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    nzeemin, как понимаю, драйвер Oleg H требует чтобы команда IDENTIFY работала.

    http://www.win.tue.nl/~aeb/linux/Lar....html#identify

  9. #68

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,051
    Спасибо Благодарностей отдано 
    1,141
    Спасибо Благодарностей получено 
    1,472
    Поблагодарили
    524 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlecV Посмотреть сообщение
    nzeemin, как понимаю, драйвер Oleg H требует чтобы команда IDENTIFY работала.

    http://www.win.tue.nl/~aeb/linux/Lar....html#identify
    Да до этого не доходит даже, там что-то другое совсем.
    А команды я реализую по мере необходимости.

  10. #69

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

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    На прошивке Олега, правда, пока ничего не получилось.
    А прошивка от Олега спотыкается на этом кусочке кода:
    Код:
    TstHDD	= :.+2
    11$:	mov	#-1,r0
    	bmi	11$
    	
    	tstb	r0
    	beq	14$
    	cmpb	r0,#377
    	bne	17$
    	.Eprint	NoPwr
    14$:	.Eprint	NoCab
    
    17$:	Call	sb$r			; Читаем мастер-блок
    
    ...............................................................................
    
    	mov	#TstHDD/2,@#Rap
    	mov	@#110000,@#Rdp
    Тут такое дело, что регистры с 1F1 по 1F7 являются 8-битными, т.е. старший байт не задействован. По идее он (старший байт) висит в воздухе, а это электрически "единица", QBUS инвертирует их в логический "ноль". Так что надо, чтобы в эмуляторе регистры с 110000 по 110014 читались с нулевым старшим байтом.

  11. #70

    Регистрация
    04.03.2010
    Адрес
    Washington, DC
    Сообщений
    28
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Cчас доступа к полному исходнику у меня нет, поэтому отвечаю по памяти, что за 10 лет не выветрилось.
    Тот кусок кода:

    TstHDD = :.+2
    11$: mov #-1,r0
    bmi 11$

    Смысл его такой:
    Крутим цикл ожидания до тех пор, пока другой процесс из ПП не заменит "-1"
    внутри команды "mov" на код возврата. Тогда этот цикл разблокируется и бежит анализировать код возврата. Там действительно, насколько я помню, при копировании старший байт передаётся как 0, что сбрасывает флаг N и разблокиркет цикл, так как BMI не срабатывает.

    Извините за несколько "лихой" стиль программирования, но когда писал драйвер - стремился выжать его как по скорости, так и по обьёму. А что эмулятор будет - тогда догадаться не мог...
    Кстати, когда сравнивал быстродействие своего драйвера с ЭРовским, мой на ~20% быстрее работал при прямом копировании.
    И мой ЦП не завешивает в ожидании завершения I/O. Всё честно через виртуальное прерывание сделано, по Power Halt...

Страница 7 из 38 ПерваяПервая ... 34567891011 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Игры на УКНЦ
    от Titus в разделе ДВК, УКНЦ
    Ответов: 125
    Последнее: 29.12.2020, 23:12
  2. Реплика КМД УКНЦ
    от tnt23 в разделе ДВК, УКНЦ
    Ответов: 451
    Последнее: 26.06.2020, 15:07
  3. Дискетки от УКНЦ
    от ZXSlaver в разделе ДВК, УКНЦ
    Ответов: 12
    Последнее: 15.11.2009, 17:25
  4. Куплю SCSI-Винчестер (50pin)
    от AlexFantasy в разделе Барахолка (архив)
    Ответов: 10
    Последнее: 28.03.2009, 11:31

Ваши права

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