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

User Tag List

Страница 17 из 18 ПерваяПервая ... 131415161718 ПоследняяПоследняя
Показано с 161 по 170 из 174

Тема: Специалист_МХ: контроллер дисковода

  1. #161
    Veteran Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,004
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    230 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SYR-ALEX Посмотреть сообщение
    Прочтите тему ещё раз . По которой схеме собирали ? Какие дисководы использовали ?
    Прочитал и не раз. толку =0. внятного ответа нет, правильного - тем более. схемы пробовал все, благо на плис оно просто, дисководы тоже все что есть в наличии. без костылей ничего не работает. пришлось как всегда разбираться самому.
    краткое ИТОГО - несмотря на то что в железе есть все для нормальной работы без костылей - в имеющемся софте оно не поддержано никак. поэтому приходится использовать костыль в виде #FFF1, с ним софт работает, но постоянно крутящийся двигатель дисковода меня несколько напрягает (а выключать его некому - костыль в софте не поддержан)

    далее - программа рекалибровки для дисководов с DC - полумера. простой пример - запускаем MX_DOS_4.EXE с целью форматнуть дискету - оно говорит "диск защищен", вытаскиваем дискету, снимаем защиту, суем обратно - и приплыли - "нет дискеты". потому как в этой программе рекалибровки нет. где и как еще это может вылезти - предсказать не возьмусь.

    ну да ладно. если интересно - вот мой вариант патча ПЗУ (по количеству байт совпадает с оригиналом, включает в себя рекалибровку и костыль, у меня стабильно работает)
    на основе исходника отсюда:
    https://zx-pk.ru/threads/18006-spets...l=1#post966377

    Код:
    MK1	  	ld	b, a
     	  	ld	a, #01
     		ld	(#fff1), a			; включить мотор
    		ld	(Cek), a			; сектор 1
     	  	call	#C891				; ждем отсутствия занятости контроллера
    		ld	a,#58				; команда step in
    		call	#C887                           ; посылаем команду и ждем выполнения (проверить что по адресу #C887 все нормально!)
    		call	#C885				; команда восстановления
                    xor	a
     	  	ld	(SID), a			; установить сторону диска =0
    
    ; подпрограмма чтения секторов
    ; вход: [HL] - адрес буфера
    
    		ld	hl, Dos				; куда грузить
     		ld	a, #90				; m=1 - код чтения группы секторов
    VOK		ld	(Kom), a			; запустить команду
    VOU		ld	a, (Coc)			; ждать начала выполнения команды
     		rla					; выделить бит готовности НГМД
     		ret	c				; если нет
     		rra
     		rra					; выделить бит ЗАНЯТО
     		jp	nc, VOU				; если еще нет
     		ld	c, #13				; (B+1) - число блоков по 256 байтов
    
    ;ПП выдачи команды
    
    BAP		ld	(ZAP), a			; запрос готовности байта
     		ld	a, (Dan)			; принять байт
     		ld	(hl), a				; и в буфер
     		inc	l				; шаг в буфере
     		jp	nz, BAP				; если не конец блока буфера
     		inc	h				; перейти на следующий блок
     		dec	c				; проверить длину фрагмента
     		jp	p, BAP
    		ld	a, (Coc)
     		xor	#01                             ; выставить флаги, если все нормально - будет Z
     		ld	a, #d0				; и прервать работу
     		ld	(Kom), a			; контроллера
     		jp	nz, T0C				; если ошибка чтения
     		dec	hl				; проверить опознаватель
     		ld	a, (hl)
     		dec	hl
     		inc	(hl)
     		cp	(hl)
     		jp	nz, T0C				; ошибка
     		ld	a, b
     		call	Dos				; если да
     		ret
    
    ; подпрограмма переключения дисководов
    ;M0D		ld	a, (#C7FD)
    ; 	  	xor	#01
    ; 	  	ld	(#C7FD), a			; номер дисковода
    ; 	  	ld	(#fff3), a			; номер дисковода
    ;LC885 	  	ld	a, #08                          ; надо 08 или 09-0a-0b, не 01
    ;LC887 	  	ld	(Kom), a			; регистр команды
    ;LC88A 	  	ld	a, (Kom)			; регистр состояния
    ; 	  	rra					; сдвиг вправо аккумулятора
    ; 	  	jp	nc, LC88A                       ; ждем busy
    ;LC891 	  	ld	a, (Kom)			; регистр состояния
    ; 	  	rra
    ; 	  	jp	c, LC891                        ; ждем !busy;
    ; 	  	ret
    Далее - по схеме отсюда:
    https://zx-pk.ru/threads/18006-spets...l=1#post966226

    если перемычку поставить в положение DC - то состояние дисковода перестает отслеживаться, при включении мотора по #FFF1 по цепи 8.1 на 5 ногу D9.2 прилетает 0 и состояние цепи 22 перестает иметь значение.

    Ну и чтобы два раза не вставать - дисковод 1.2М (5" 360rpm) с кварцем 9.6МГц почти работает. то есть чтение и запись в MXDOS - без проблем, форматирование - на 2МГц тактовой виснет, на 2.5 - работает.

    попутные наблюдения - MX_DOS_4.EXE - не работает на Z80, виснет после первой дорожки. на 8085 все ок.

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

    Цитата Сообщение от fifan Посмотреть сообщение
    Извини за задержку, замотался. Просматриваю исходники. Удаляем сейчас неактуальные подпрограммы. Выложу код позже.

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

    Всё, сделал. Прошивай. Мапер МХ.

    Странно, но в эмуляторе по F6 не читается дискета, а тупо окрашивается экран синим.
    Наверное пока не прошивай, я вставляемые коды наверное в прошивку неправильно вставил.

    Нет, ничего хорошего не происходит - в эмуляторе всё виснит. На такое я пойтить не могу (из Джентльменов удачи).
    можно тупой вопрос?
    мне кажется или вот здесь
    https://zx-pk.ru/threads/18006-spets...l=1#post966378

    Код:
    MK1	  	pop	af
    		call	RKALIBR
    		push	af
    перепутаны push и pop?

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

  2. #162
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,407
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    599
    Поблагодарили
    445 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    перепутаны push и pop?
    Не факт.

  3. #163
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Чтобы ответить на этот вопрос нужно смотреть исходники. SYR-ALEX встраивал свои процедуры в исходный код RAMFOS'а вместо неиспользуемых процедур, кажется обслуживания магнитофона.

  4. #164
    Veteran Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,004
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    230 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fifan Посмотреть сообщение
    Чтобы ответить на этот вопрос нужно смотреть исходники. SYR-ALEX встраивал свои процедуры в исходный код RAMFOS'а вместо неиспользуемых процедур, кажется обслуживания магнитофона.
    MK1 - она из исходника. и в нее вставлен дополнительный кусок кода. вызывается как подпрограмма, возврат из нее по ret. а тут мы первыми командами портим адрес возврата...

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

  5. #165
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А нет всё верно подмечено.
    Вот было так в RAMFOS'е:
    ; подпрограмма инициализации дисковода
    ; вход: [А] - =#00 - запустится DOS,
    ; = не #00 - запустится дисковод и произойдет вытаскивание DOS с дискеты и уход в программу
    MK1 ld b, a
    call LC885 ; команда восстановление
    ld a, #01
    ld (SID), a ; установить сторону диска
    ld (Cek), a ; и сектора

    ...

    LC885 ld a, #01
    ld (PD0), a ; регистр команды
    LC88A ld a, (PD0) ; регистр состояния
    rra ; сдвиг вправо аккумулятора
    jp nc, LC88A

    ...
    Почему-то значение в регистре А сохраняется не push af, а pop af:
    MK1 pop af
    call RKALIBR
    push af
    ld b, a
    call LC885 ; команда восстановление
    ...
    Нужно весь текст просмотреть, может автор доработки где-нибудь ещё ошибся.
    Последний раз редактировалось fifan; 03.04.2019 в 14:47.

  6. #166
    Veteran Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,004
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    250
    Поблагодарили
    230 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fifan Посмотреть сообщение
    Нужно весь текст просмотреть, может автор доработки где-нибудь ещё ошибся.
    если говорить об ошибках - нашел одну в дизассемблированном исходнике https://zx-pk.ru/attachment.php?atta...5&d=1528036762 - по метке
    LFE71 call C18 ; печать строки
    должно быть c18, а не C18. иначе вместо "ошибка" печатается черт знает что. case sensitive метки - зло

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

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

  8. #167
    Activist Аватар для SYR-ALEX
    Регистрация
    12.02.2015
    Адрес
    г. Минск, Беларусь
    Сообщений
    429
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    41 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Прошло уже больше года , а вопрос запуска этого контроллера с FDD3.5 так и не разрешился . Взглянул на проблему под другим углом . И вот оно , заработало - без костылей . Эта схема с небольшими изменениями рабочая . На порт FFF1 не стоит обращать внимания , он вообще негде не используется . И софт трогать не надо . Надо лишь было заставить FDD3.5 прикинуться FDD5.25 по сигналу RDY (pin 34) . То есть FDD3.5 выдаёт этот сигнал , но слишком поздно по сравнению FDD5.25 .
    В общем изменил схему формирования сигнала RDY в двух флопах SAMSUNG SFD-321B . Хотя новый сигнал с большой натяжкой можно называть RDY , но работает .
    Вот что я сделал .



    Надо снять перемычку RDY/DC , найти на плате флоповода перемычки DS0 и DS1, найти пад DIN ( это сигнал со "шторки ") и запаять транзистор с резистором в соответствии со схемой .
    Также поправил схему самого FDC , сделал доработки для CP/M по схеме AVSh , добавил преобразователь 5 в 12В для питания ВГ93 .



    Эта схема собрана у меня на макетке и работает , также и с CP/M. Конечно ещё можно сократить количество МС заменив 2 ТМ2 на одну ТМ8 , может и ещё что то .
    На днях выложу видео .

  9. Этот пользователь поблагодарил SYR-ALEX за это полезное сообщение:

    Pluto (27.12.2020)

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

    По умолчанию

    Цитата Сообщение от SYR-ALEX Посмотреть сообщение
    Надо лишь было заставить FDD3.5 прикинуться FDD5.25 по сигналу RDY (pin 34) .
    Надо просто заставить дисковод отдавать на пин 34 не сигнал "/Disc Change", а сигнал "/Ready". И на самсунге SFD-321B это делается элементарно: отпаивается перемычка DC и запаивается на место RDY. И не надо никаких танцев с бубном!

    Цитата Сообщение от SYR-ALEX Посмотреть сообщение
    То есть FDD3.5 выдаёт этот сигнал , но слишком поздно по сравнению FDD5.25 .
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  11. #169
    Activist Аватар для SYR-ALEX
    Регистрация
    12.02.2015
    Адрес
    г. Минск, Беларусь
    Сообщений
    429
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    41 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    Надо просто заставить дисковод отдавать на пин 34 не сигнал "/Disc Change", а сигнал "/Ready". И на самсунге SFD-321B это делается элементарно: отпаивается перемычка DC и запаивается на место RDY. И не надо никаких танцев с бубном!
    Да неужели . Со штатным /Ready у дисковода слегка дёргается маховик и на этом всё , рамфос выдаёт " нет диска ". Я пробовал в загрузчике MX-DOS увеличивать паузу
    Код:
    loadMxDos:	mov	b, a
    
    		
    		mvi	a, 1
    		sta	IO_FLOPPY_HEAD
    		sta	IO_FLOPPY_SECTOR
    
    		
    		mvi	h, 13h ; пауза
    loadMxDos_0:	 dcx	h
    		 mov	a, l
    		 ora	h
    		jnz	loadMxDos_0
    до 0xFF . MX-DOS загружается с диска , но при попытке открыть каталог или файл - " нет диска " . Костыль с портом FFF1 помогает , но "зачем тоскать воду в баню вёдрами при наличии водопровода " . Добавить рекалибровку только в РАМФОС тоже не вариант , придётся править и MX-DOS .

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    Может у Вас и работает FDD3.5 (без переделки) со штатным /Ready . Тогда либо дисковод уникальный , либо Вы что то не договариваете .

  12. #170
    Master Аватар для Pluto
    Регистрация
    26.01.2018
    Адрес
    г. Долгопрудный
    Сообщений
    904
    Спасибо Благодарностей отдано 
    175
    Спасибо Благодарностей получено 
    97
    Поблагодарили
    67 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Т.е. с пятидюймовым будет работать без всяких доработок?

Страница 17 из 18 ПерваяПервая ... 131415161718 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Контроллер дисковода
    от andrew76 в разделе Внешние накопители
    Ответов: 55
    Последнее: 12.04.2024, 16:33
  2. Ответов: 24
    Последнее: 30.04.2016, 23:47
  3. Ленинград 3 + контроллер дисковода
    от zorel в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 28.07.2011, 14:03
  4. Куплю контроллер дисковода
    от djvini в разделе Барахолка (архив)
    Ответов: 10
    Последнее: 21.04.2011, 01:19
  5. контроллер дисковода на микроконтроллере.
    от rnd.gen в разделе Внешние накопители
    Ответов: 92
    Последнее: 21.12.2010, 16:58

Ваши права

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