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

User Tag List

Страница 17 из 17 ПерваяПервая ... 1314151617
Показано с 161 по 166 из 166

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

  1. #161
    Member Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    152
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    6 сообщений
    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?

    Зверинецъ

    Специалист "совсем стандарт" - 88-89
    Ленинград1 +256К +AY +"косые флопы" +VGA выход (в переделке)
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    [свернуть]

  2. #162
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    Павлодар
    Сообщений
    3,439
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    По умолчанию

    Чтобы ответить на этот вопрос нужно смотреть исходники. SYR-ALEX встраивал свои процедуры в исходный код RAMFOS'а вместо неиспользуемых процедур, кажется обслуживания магнитофона.
    https://nick-name.ru/forum/Fifan.gif
    Сайт про ПК "Специалист" и его клоны http://www.spetsialist-mx.ru/
    Web site about computer Spetsialist and its clones http://www.spetsialist-mx.ru/ (yet only in Russian)

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

    По умолчанию

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

    Зверинецъ

    Специалист "совсем стандарт" - 88-89
    Ленинград1 +256К +AY +"косые флопы" +VGA выход (в переделке)
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    [свернуть]

  5. #165
    Пользователь Специалиста Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    3,635
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    1 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 в 15:47.
    https://nick-name.ru/forum/Fifan.gif
    Сайт про ПК "Специалист" и его клоны http://www.spetsialist-mx.ru/
    Web site about computer Spetsialist and its clones http://www.spetsialist-mx.ru/ (yet only in Russian)

  6. #166
    Member Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    152
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    6 сообщений
    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 метки - зло

    Зверинецъ

    Специалист "совсем стандарт" - 88-89
    Ленинград1 +256К +AY +"косые флопы" +VGA выход (в переделке)
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    [свернуть]

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

Страница 17 из 17 ПерваяПервая ... 1314151617

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

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

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

Похожие темы

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

Ваши права

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