Эмулятор магнитофона для ZX-Spectrum
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
И дохли как мухи одинаково. 
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
-
oleg88
- Первый раз сказал Мяу!
- Сообщения: 26
- Зарегистрирован: Сб окт 24, 2015 20:37:56
- Откуда: nr. Moscow
Re: Эмулятор магнитофона для ZX-Spectrum
Да нет, не одинаково. С одной поменьше поработал, с другой побольше. Да и умерли пока два МК, два отдал знакомому.
У меня вопрос по магнитофону. Вставили карту, включили питание. Например, карта не отвечает, о чем будет выведено соответствующее сообщение. Как правильно далее поступать, отключать питание, вставлять другую карту?
У меня вопрос по магнитофону. Вставили карту, включили питание. Например, карта не отвечает, о чем будет выведено соответствующее сообщение. Как правильно далее поступать, отключать питание, вставлять другую карту?
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Да нет, не одинаково.
Причина сдыхания у всех - непрошиваемость. Следовательно, одинаково.
Брал я в Китае AD725 - по сравнению с ЧиД дешевле раз в 50. Но PAL-кодер так и не заработал ни на одной. Иногда он включался, если где-то за что-то держаться рукой - за что именно, выяснить я не смог. С тех пор я что-то дешёвым китайским деталям не доверяю. Вот ещё на эту тему: http://easyelectronics.ru/mikrosxemy-iz-kitaya.html
Как правильно далее поступать, отключать питание, вставлять другую карту?
А какие ещё есть варианты?
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
-
oleg88
- Первый раз сказал Мяу!
- Сообщения: 26
- Зарегистрирован: Сб окт 24, 2015 20:37:56
- Откуда: nr. Moscow
Re: Эмулятор магнитофона для ZX-Spectrum
da-nie писал(а):Причина сдыхания у всех - непрошиваемость. Следовательно, одинаково
Ну, если с этой стороны смотреть, то да, одинаково
da-nie писал(а):С тех пор я что-то дешёвым китайским деталям не доверяю
К сожалению, с некоторых пор цена перестала определять качество.
da-nie писал(а):А какие ещё есть варианты?
Я не знаю, поэтому и спрашиваю. А то может быть есть какая-нибудь тайная комбинация из "трех клавиш". Ибо как-то не логично программа работает – сообщение пропадает и не понятно, что дальше делать. Можно бы было сообщение оставить.
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Ибо как-то не логично программа работает – сообщение пропадает и не понятно, что дальше делать. Можно бы было сообщение оставить.
Ах, в этом смысле!
Но вы можете воткнуть while(1); в нужном месте и программа остановится.К сожалению, с некоторых пор цена перестала определять качество.
Пока их ЧиД брака не попадалось.

И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
Вопрос к автору, а можно научить эмуль читать ещё и файлы для Радио-86РК?
Re: Эмулятор магнитофона для ZX-Spectrum
Я уже спрашивал на ZX.PK.ru, сказали что форматы разные
не получиться. и здесь спрашивал на 13-ой странице.
Re: Эмулятор магнитофона для ZX-Spectrum
Тоже уже нашел, что одновременно нет, а отдельную прошивку для чтения файлов РК?
Re: Эмулятор магнитофона для ZX-Spectrum
А смысл
там файлов для РК у меня в смартфон все влазили в формате wav 
там файлов для РК у меня в смартфон все влазили в формате wav Re: Эмулятор магнитофона для ZX-Spectrum
Здравствуйте! Кто-нибудь пересобирал прошивку под китайский дисплей (с увеличенными задержками) и с нормальным английским (а не транслитом)? Я с winavr не знаком, пытаюсь пересобрать прошивку и получаю при включении сообщение об ошибке FAT (FAT12). Хотя родной хекс из того же архива работает нормально. Тратить время на изучение еще одной ide, честно, не хочу.
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Вообще говоря, там тратить время не нужно - достаточно просто сделать make из меню. А вы компилируете модифицированную прошивку? Попробуйте откомпилировать оригинальную и посмотреть, что её hex выдаст. Дело в том, что FAT12 он никак не может определить на старой и не определять на новой. Возможно, в новом WinAVR что-то поменялось в компиляторе?
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
Вообще говоря, там тратить время не нужно - достаточно просто сделать make из меню. А вы компилируете модифицированную прошивку? Попробуйте откомпилировать оригинальную и посмотреть, что её hex выдаст. Дело в том, что FAT12 он никак не может определить на старой и не определять на новой. Возможно, в новом WinAVR что-то поменялось в компиляторе?
Даже если я просто компилирую оригинальные исходники, возникает та же ошибка.
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Странно. Попробуйте вот эту версию WinAVR: https://yadi.sk/d/8LijRFPn3Jmjw5 Я именно в ней делал.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
Странно. Попробуйте вот эту версию WinAVR: https://yadi.sk/d/8LijRFPn3Jmjw5 Я именно в ней делал.
Спасибо, в этой версии все скомпилировалось удачно! Чудеса.
Re: Эмулятор магнитофона для ZX-Spectrum
Никто не добил чтение данных с современных SD карт? Если нет, подскажите, в каком направлении можно копать, чтобы доработать прошивку?
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Насколько я помню, там отличие было в том, что современные карты адрес просят в блоках 512 байт, а не в байтах. Ну это-то как раз не сложно изменить. А вот сделать инициализацию современной карты по SPI - вот это и нужно сделать в первую очередь. Я попробовал и отложил это занятие. А инициализация там в sd.h.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
Т.е. если не проходит инициализация по старому протоколу, пробуем по новому?
Сам протокол обмена при загрузке содержимого файлов в память тот же?
Еще видел адаптеры для SD карт на 6 или 9 пин, чем они друг от друга отличаются?
Сам протокол обмена при загрузке содержимого файлов в память тот же?
Еще видел адаптеры для SD карт на 6 или 9 пин, чем они друг от друга отличаются?
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Т.е. если не проходит инициализация по старому протоколу, пробуем по новому?
Можно и так.
Сам протокол обмена при загрузке содержимого файлов в память тот же?
Почти. Нужно вместо адреса передавать номер блока (адрес поделить на 512).
Еще видел адаптеры для SD карт на 6 или 9 пин, чем они друг от друга отличаются?
Не знаю. Но возможно, у 6 нет контактов "карта вставлена" или ещё каких подобных.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Обновление версии ПО.
Теперь поддерживаются SDHC-карты.
Но не все карты мне удалось запустить. Есть две карты, которые просто не завершают процесс инициализации. Он идёт и идёт и идёт... Одна такая карта обычная на 2 ГБ, а другая 8 ГБ.
Вот ещё что. Карта должна быть отформатирована в FAT16. Windows такой фокус сделать вам не даст. Я использовал AOMEI Partition Assistant Standard Edition 6.3 чтобы удалить все разделы на карте и создать раздел в FAT16. Максимальный размер раздела - 4 ГБ. Вот с таким образом подготовленной картой у меня всё работает.
Общий алгоритм инициализации я взял с какого-то сайта. Однако, оказалось, что SD версии 1 не все инициализируются по ACMD41. Команда-то проходит, но процесс не завершается. Поэтому я их инициализирую по старинке с помощью CMD1. Также у SDHC карт размер карты вычисляется иначе (и иная структура регистра). Как именно, я пока не понял, поэтому для SDHC-карт размер карты показываться не будет.

Теперь поддерживаются SDHC-карты.
Но не все карты мне удалось запустить. Есть две карты, которые просто не завершают процесс инициализации. Он идёт и идёт и идёт... Одна такая карта обычная на 2 ГБ, а другая 8 ГБ.
Вот ещё что. Карта должна быть отформатирована в FAT16. Windows такой фокус сделать вам не даст. Я использовал AOMEI Partition Assistant Standard Edition 6.3 чтобы удалить все разделы на карте и создать раздел в FAT16. Максимальный размер раздела - 4 ГБ. Вот с таким образом подготовленной картой у меня всё работает.
Общий алгоритм инициализации я взял с какого-то сайта. Однако, оказалось, что SD версии 1 не все инициализируются по ACMD41. Команда-то проходит, но процесс не завершается. Поэтому я их инициализирую по старинке с помощью CMD1. Также у SDHC карт размер карты вычисляется иначе (и иная структура регистра). Как именно, я пока не понял, поэтому для SDHC-карт размер карты показываться не будет.
- Вложения
-
- FatFS-sdinit.png
- (33.62 КБ) 2624 скачивания
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
Всем доброго Мяу!
Уважаемый автор посвяти пожалуйста неумелого кота, как правильно прочитать формат файла tap.
В описании пишется....
Format Description
The .TAP files contain blocks of tape-saved data. All blocks start with two bytes specifying how many bytes will follow (not counting the two length bytes). Then raw tape data follows, including the flag and checksum bytes. The checksum is the bitwise XOR of all bytes including the flag byte. For example, when you execute the line SAVE "ROM" CODE 0,2 this will result:
|------ Spectrum-generated data -------| |---------|
13 00 00 03 52 4f 4d 7x20 02 00 00 00 00 80 f1 04 00 ff f3 af a3
^^^^^...... first block is 19 bytes (17 bytes+flag+checksum)
^^... flag byte (A reg, 00 for headers, ff for data blocks)
^^ first byte of header, indicating a code block
file name ..^^^^^^^^^^^^^
header info ..............^^^^^^^^^^^^^^^^^
checksum of header .......^^
length of second block ......^^^^^
flag byte .......^^
first two bytes of rom ...............^^^^^
checksum (checkbittoggle would be a better name!).............^^
Note that it is possible to join .TAP files by simply stringing them together; for example, in DOS / Windows: COPY /B FILE1.TAP + FILE2.TAP ALL.TAP ; or in Unix/Linux: cp file1.tap all.tap && cat file2.tap >> all.tap
For completeness, I'll include the structure of a tape header. A header always consists of 17 bytes:
0 1 Type (0,1,2 or 3)
1 10 Filename (padded with blanks)
11 2 Length of data block
13 2 Parameter 1
15 2 Parameter 2
The type is 0,1,2 or 3 for a Program, Number array, Character array or Code file. A SCREEN$ file is regarded as a Code file with start address 16384 and length 6912 decimal. If the file is a Program file, parameter 1 holds the autostart line number (or a number >=32768 if no LINE parameter was given) and parameter 2 holds the start of the variable area relative to the start of the program. If it's a Code file, parameter 1 holds the start of the code block when saved, and parameter 2 holds 32768. For data files finally, the byte at position 14 decimal holds the variable name.
Добавлено after 3 hours 9 minutes 17 seconds:
Вопрос.
second block
Это что ?
Уважаемый автор посвяти пожалуйста неумелого кота, как правильно прочитать формат файла tap.
В описании пишется....
Format Description
The .TAP files contain blocks of tape-saved data. All blocks start with two bytes specifying how many bytes will follow (not counting the two length bytes). Then raw tape data follows, including the flag and checksum bytes. The checksum is the bitwise XOR of all bytes including the flag byte. For example, when you execute the line SAVE "ROM" CODE 0,2 this will result:
|------ Spectrum-generated data -------| |---------|
13 00 00 03 52 4f 4d 7x20 02 00 00 00 00 80 f1 04 00 ff f3 af a3
^^^^^...... first block is 19 bytes (17 bytes+flag+checksum)
^^... flag byte (A reg, 00 for headers, ff for data blocks)
^^ first byte of header, indicating a code block
file name ..^^^^^^^^^^^^^
header info ..............^^^^^^^^^^^^^^^^^
checksum of header .......^^
length of second block ......^^^^^
flag byte .......^^
first two bytes of rom ...............^^^^^
checksum (checkbittoggle would be a better name!).............^^
Note that it is possible to join .TAP files by simply stringing them together; for example, in DOS / Windows: COPY /B FILE1.TAP + FILE2.TAP ALL.TAP ; or in Unix/Linux: cp file1.tap all.tap && cat file2.tap >> all.tap
For completeness, I'll include the structure of a tape header. A header always consists of 17 bytes:
0 1 Type (0,1,2 or 3)
1 10 Filename (padded with blanks)
11 2 Length of data block
13 2 Parameter 1
15 2 Parameter 2
The type is 0,1,2 or 3 for a Program, Number array, Character array or Code file. A SCREEN$ file is regarded as a Code file with start address 16384 and length 6912 decimal. If the file is a Program file, parameter 1 holds the autostart line number (or a number >=32768 if no LINE parameter was given) and parameter 2 holds the start of the variable area relative to the start of the program. If it's a Code file, parameter 1 holds the start of the code block when saved, and parameter 2 holds 32768. For data files finally, the byte at position 14 decimal holds the variable name.
Добавлено after 3 hours 9 minutes 17 seconds:
Вопрос.
second block
Это что ?