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

User Tag List

Страница 89 из 198 ПерваяПервая ... 858687888990919293 ... ПоследняяПоследняя
Показано с 881 по 890 из 1975

Тема: ZXMAK2 - Виртуальная машина ZX Spectrum

  1. #881
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,406
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обновил эмулятор до версии 2743:
    - исправлен контроллер IDE SPRINTER



    полноценно восстановить образ винта, который тут выкладывали, не хватило времени. В нем отсутствовала таблица разделов. Забил просто от балды значения побольше, основная задача была получить доступ к файлам. Кому интересно, в аттачменте екзешник с исходником который фиксит образ диска который тут выкладывали.
    Что он делает - добавляет в начало сектор с MBR (который отсутствует в образе) и забивает в этот MBR подходящие параметры.
    Настроеный ZXMAK2.vmide также прилагается
    Т.к. параметры МБР особо не расчитывались, а забиты от балды, то естественно могут быть глюки с размером винта/раздела, но это не важно, все файлы должны попасть в читаемую область.

    Все читается!
    Вложения Вложения
    Последний раз редактировалось ZXMAK; 16.05.2013 в 06:08.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  2. #882
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    пустая таблица разделов
    насколько я помню для флеш-накопителей это нормальное явление. Но через конвертер SD-IDE спринтер грузится, мож сам конвертер чет подменяет на лету - хз.

    ---------- Post added at 08:10 ---------- Previous post was at 07:25 ----------

    Alexander Makeev, с чтением все ок. А вот с записью бока: скопировал файл с помощью FlexNavigator, после завершения выдается ошибка "Drive not ready". После ресета Спринтера - биос винта уже не видит. Если перезапустить эмуль, то винт обнаруживается, но в той папке, куда копировался файл - мусор.
    Образ винта в архиве 1,4Гб, даж не знаю куда его залить

    ---------- Post added at 08:13 ---------- Previous post was at 08:10 ----------

    В викии нашел статью по LBA, там дана формула пересчета CHS в LBA, по идее можно провести расчет и в обратную сторону, это для справки.

    ---------- Post added at 09:42 ---------- Previous post was at 08:13 ----------

    Цитата Сообщение от Дмитрий Посмотреть сообщение
    Образ винта в архиве 1,4Гб, даж не знаю куда его залить
    Далеко ходить не надо, то же самое происходит и с fix-ированным образом флешки.
    Делаем так, грузимся с дискеты что была выложена выше, запускаем "c:\fn\fn.exe", пытаемся скопировать какой-либо файл куда-либо... наблюдаем за результатом.

  3. #883
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,406
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я тут выше выкладывал exe с логированием всех операций - этопо сути уже исправленная версия, можно по логам посмотреть что происходит.
    Кстати непонятно - зачем спринтер при сбросе пишет в иде невалидную команду #00, не знаешь?
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  4. #884
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    зачем спринтер при сбросе пишет в иде невалидную команду #00, не знаешь?
    даж не в курсе. Биос спринтера не безгрешен - это факт там и в fdd-драйвере есть очень серьезная ошибка, из-за которой дискеты читаются в эмуле только при NoDelay При дисковой ошибке чтение повторяется, а адрес чтения увеличивается, как-будто бы чтение продолжается. Потому, если задержки включить, то при загрузке ос с дискеты мы увидим повисание - т.к. буфер чтения наехал на код самого загрузчика.

    Приложил лог-файл, че там происходит мне не понятно
    После копирования файла из папки на винте в папку на винте - образ портится, устройство в эмуле спринтером не опознается.
    Вложения Вложения
    Последний раз редактировалось Дмитрий; 16.05.2013 в 11:23.

  5. #885
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,406
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    кстати, в логировании обмена с иде в exe файле с логами, на значения lba и offset в записи ATA WRITE SECTOR можно не обращать внимание, это ошибка в логировании - не удалил запись lba и offset, на самом деле используются значения которые до этого были в SEEK.

    Судя по логам (смотрел по своему логу), спринтер пишет сектор, после записи последнего байта сектора отправляет старший байт данных для следующего сектора и после этого уходит в зацикливание на чтении статуса - эмулятор возвращает статус #18, на этом спринтер долго циклится, пока не выдает ошибку drive not ready.
    Вот описание регистра статуса:
    bit 0 : error bit. If this bit is set then an error has
    occurred while executing the latest command. The error
    status itself is to be found in the error register.
    bit 1 : index pulse. Each revolution of the disk this bit is
    pulsed to '1' once. I have never looked at this bit, I
    do not even know if that really happens.
    bit 2 : ECC bit. if this bit is set then an ECC correction on
    the data was executed. I ignore this bit.
    bit 3 : DRQ bit. If this bit is set then the disk either wants
    data (disk write) or has data for you (disk read).
    bit 4 : SKC bit. Indicates that a seek has been executed with
    success. I ignore this bit.
    bit 5 : WFT bit. indicates a write error has happened. I do
    not know what to do with this bit here and now. I've
    never seen it go active.
    bit 6 : RDY bit. indicates that the disk has finished its
    power-up. Wait for this bit to be active before doing
    anything (execpt reset) with the disk. I once ignored
    this bit and was rewarded with a completely unusable
    disk.
    bit 7 : BSY bit. This bit is set when the disk is doing
    something for you. You have to wait for this bit to
    clear before you can start giving orders to the disk.
    что ему не нравится непонятно...
    может не расчитывает что винт скушает сектор и не подавясь попросит следующий без ожидания?
    Последний раз редактировалось ZXMAK; 16.05.2013 в 11:44.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  6. #886
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    может не расчитывает что винт скушает сектор и не подавясь попросит следующий без ожидания?
    ща надо посмотреть сырки драйвера

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

  8. #887
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,406
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    аха, ясно, отладчиком выяснил что спринтер ждет установки бита RDY
    Код:
    0CBB 210000	LD	HL,#0000
    0CBE ED78	IN	A,(C)		; BC=#4053 (регистр команды/статуса)
    0CC0 A2		AND	D		; D=#C1 (читается #18)
    0CC1 BB		CP	E		; E=#40
    0CC2 2002	JR	NZ,#0CC6
    0CC4 A7		AND	A
    0CC5 C9		RET
    0CC6 2B		DEC	HL
    0CC7 7D		LD	A,L
    0CC8 B4		OR	H
    0CC9 C2BE0C	JP	NZ,#0CBE
    Интересно, перед началом передачи данных для первого сектора этот бит спринтера не смутил, а вот на втором уже не понравился
    Последний раз редактировалось ZXMAK; 16.05.2013 в 11:52.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  9. #888
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тоже дошел до этого кода:
    До начала передачи:
    Код:
    	LD	DE,#8908   ;WAIT BUSY=0 & DRQ=1 & ERR=0
    	LD	BC,HDR_CTL
    	CALL	WAITPRT
    	EXX 
    	RET	C
    По завершению передачи:
    Код:
    	LD	DE,#C140   ;WAIT BUSY=0 & ERR=0 & READY=1
    	LD	BC,HDR_CTL
    	CALL	WAITPRT
    WAITPRT - это та процедура, листинг которой ты выше привел.

  10. #889
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,406
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Дмитрий Посмотреть сообщение
    WAITPRT - это та процедура, листинг которой ты выше привел.
    добавил в конец метода AtaDevice.write_sectors (Hardware\IC\AtaPort.cs:736) установку флага RDY:
    Код:
                reg.err = HD_ERROR.ERR_NONE;
                reg.status = HD_STATUS.STATUS_DRDY | HD_STATUS.STATUS_DRQ | HD_STATUS.STATUS_DSC;
    запись стала проходить, но содержимое папки, куда идет запись портится...

    А на реальном спринтере копирование в FN вообще работает?
    Последний раз редактировалось ZXMAK; 16.05.2013 в 12:10.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  11. #890
    Guru Аватар для Дмитрий
    Регистрация
    01.01.2009
    Адрес
    Донецк, Украина
    Сообщений
    3,260
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    А на реальном спринтере копирование в FN вообще работает?
    Да, работает. Я тоже по началу грешил на FN, попробовал консольную copy - результат тот же.

Страница 89 из 198 ПерваяПервая ... 858687888990919293 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 7
    Последнее: 06.04.2012, 21:37
  2. Машина Тьюринга для Z80
    от ZXMAK в разделе Эмуляторы
    Ответов: 4
    Последнее: 15.08.2011, 03:26
  3. Продвинутая Мелко Машина 1
    от Black_Cat в разделе Зарубежные компьютеры
    Ответов: 74
    Последнее: 03.03.2009, 09:05
  4. Что за машина такая??? Commodore 128...
    от ILoveSpeccy в разделе Commodore 16/64/128
    Ответов: 5
    Последнее: 31.10.2007, 10:25
  5. Java-машина
    от Error404 в разделе Программирование
    Ответов: 2
    Последнее: 15.01.2007, 15:11

Ваши права

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