PDA

Просмотр полной версии : Эмулятор цифрового магнитофона и ROM-диска



Alex_LG
28.02.2014, 13:38
Что-бы не путать темы и по просьбе gdv2002 создаю отдельную ветку по данному эмулятору. Повторюсь:

Эмулятор цифрового магнитофона и ROM-диска сделан на атмеге16. Файловая система FAT12/16/32. Фильтров и сортировки при работе с файлами нет (кому нужно - можно доделать, свободно около 5кБ). Длинные имена не поддерживаются. Файлы .RKR можно проиграть, а можно грузить как образы ROM-диска. Т.е. после загрузки .RKR в память появляется запрос на проигрывание, если ответить "нет", то в память заносится загрузчик, который по команде "U" с РК86 загружает и запускает программу. Теперь не надо формировать программы в образы ROM-диска! Файлы .ROM - просто загружаются в ОЗУ.

Плата двухсторонняя, переходные отверстия на ножках микросхем, за исключением 4-х (между микроконтроллером и картодержателем). Все корпуса микросхем (кроме контроллера) - DIP, поэтому плата немаленькая. Если не нужен РОМ-диск, то из схемы просто нужно убрать 3 буфера. Схема питается от +5В компьютера. Выводы D7-D0, A0-A14 подключаются на соответствующие выводы IC14 ВВ55, А15 - разведён, но не используется, может служить ключом. Плату для индикатора и кнопок не делал - на макетке, кнопки нормально разомкнутые, замыкаются на "землю", индикатор от Нокии 1100/1101.

Файл
http://zx-pk.ru/attachment.php?attachmentid=46114&d=1393574652

gdv2002
28.02.2014, 14:04
Как человек умеющий программить Атмеги, скажите, можно организовать запись с РК на магнитофон, или еще лучше сразу на флешку, т.е. превратить РОМ-диск во Флеш-диск?
И если можно флеш-диск сделать, то и магнитофон становится не нужен.
Еще вопросик, не нашел в схемах, что за микросхема IC6?

Alex_LG
28.02.2014, 14:59
скажите, можно организовать запись с РК на магнитофон, или еще лучше сразу на флешку, т.е. превратить РОМ-диск во Флеш-диск?

Запись на магнитофон можно сделать хоть сейчас, но только в ОЗУ, для записи на флешку может не хватить памяти для прошивки атмеги16, т.к. сейчас только рид-онли режим и прошивка занимает почти 12кБ. Возможно нужно будет ставить атмегу32.


Еще вопросик, не нашел в схемах, что за микросхема IC6?

SRAM на 32 кБ, взята со старой материнки 3 или 4-ки.
Маркировку не даю - у каждого производителя своя, но распиновка стандартная (кроме некоторых м/с от Cypress).

gdv2002
28.02.2014, 15:11
Запись на магнитофон можно сделать хоть сейчас, но только в ОЗУ, для записи на флешку может не хватить памяти для прошивки атмеги16, т.к. сейчас только рид-онли режим и прошивка занимает почти 12кБ. Возможно нужно будет ставить атмегу32.
А возможно записать несколько кусочков в ОЗУ?
Микры с материнок на 32кб, этого вполне достаточно.
Потом из ОЗУ можно загрузить в РК все эти кусочки?
Конечно если полноценно реализовать запись/чтение на флеш-карту, да еще средствами к примеру того-же ДОС-2.9 - вы станете Человеком Года в сообществе РК-водов (для меня точно!!!).

Alex_LG
28.02.2014, 15:55
А возможно записать несколько кусочков в ОЗУ?
Микры с материнок на 32кб, этого вполне достаточно.
Потом из ОЗУ можно загрузить в РК все эти кусочки?

По-поводу записи/чтения нескольких кусков. Во время доступа РК к внешней ОЗУ, если вывести /WE & /OE для управления ими РК - пишите и читайте как хотите. А вот при записи кусков на флешку возникает сложность - запись будет полностью 32к, а не по кусочкам, т.к. МК не знает где какой кусочек! Можно организовать в ОЗУ что-то на подобии файловой системы с хедером, тогда МК при записи на флеш будет брать из хедера расположение кусочков и писать в отдельные файлы.


Конечно если полноценно реализовать запись/чтение на флеш-карту, да еще средствами к примеру того-же ДОС-2.9

то получится другое устройство - эмулятор дисковода... :)

gdv2002
28.02.2014, 17:07
По-поводу записи/чтения нескольких кусков. Во время доступа РК к внешней ОЗУ, если вывести /WE & /OE для управления ими РК - пишите и читайте как хотите. А вот при записи кусков на флешку возникает сложность - запись будет полностью 32к, а не по кусочкам, т.к. МК не знает где какой кусочек! Можно организовать в ОЗУ что-то на подобии файловой системы с хедером, тогда МК при записи на флеш будет брать из хедера расположение кусочков и писать в отдельные файлы.
Я правильно понимаю, что внешнее ОЗУ можно использовать как РАМ-диск (электронный диск по типу Орионовского)?
Эмуль дисковода конечно уже совсем другой девайс.
Сяду пожалуй за плату, вещь интересная и явно пригодиться.

Alex_LG
28.02.2014, 19:00
Я правильно понимаю, что внешнее ОЗУ можно использовать как РАМ-диск (электронный диск по типу Орионовского)?

Да, но надо научить РК управлять сигналами /WE & /OE.


Эмуль дисковода конечно уже совсем другой девайс.

Были идеи про дисковод, но надо разбираться с управлением.

Если немножко переделать эмулятор, добавить управление РКшкой ОЗУ на запись, придумать что-то типа файловой системы (я не знаю как в Орионе с РАМ-диском, возможно там подобное есть), то можно получить аналог дисковода. Например, РК работает (изменяет/пишет) с файлом в РАМ-диске, в заголовке у него стоит атрибут "сырого" файла, а при необходимости записи на флеш - РК убирает этот атрибут, который отслеживает МК и сбрасывает файл на флешку (что-то по типу вет-файлов в ИС-ДОСе для Спектрума). При чтении файла из флешки, возможен такой вариант - МК считывает список всех файлов в заголовок РАМ-диска, РК, считав заголовок, выставляет атрибут запроса на нужный файл и ждет пока этот атрибут не сбросит МК, загрузивший этот файл в ОЗУ. Вот как-то так, почти дисковод. :)
Возможны и другие варианты, но я старался делать эмулятор без переделок как самой схемы РК, так и его Монитора.

Alex_LG
05.03.2014, 19:44
Изменил загрузчик, уменьшился на 5 байт :) и исправил некоторые ошибки.

gdv2002
10.04.2017, 12:48
Скажите, чем заменить 74AC573, или может можно совсем её выкинуть?
Хочу собрать просто эмуль магнитофона, без эмулятора РОМ-диска. К примеру в эмуляторе для спека регистра для памяти нет. http://radiokot.ru/forum/viewtopic.php?p=1628006
Может, автор, сделаешь прошивку для такого же варианта эмуля, но для РК?

Alex_LG
10.04.2017, 22:16
573 это та же ИР33, можно заменить на любой регистр, аналогичный по логике работы, правда совместимости пин-ту-пин может и не быть, например ИР22
или в крайнем случае ИР12, главное, что бы он мог переходить в Z состояние.

На устройстве с радиокота так же есть память, но динамическая. Можно попробовать сделать чтение с карты и сразу проигрывание (аналогичное было на ПИКе где-то здесь), мне кажется сейчас не должно быть проблемы достать статическую память со старых материнок. Сейчас, к сожалению, нет времени на эксперименты, если уж сильно надо, могу попробовать недельки через две...

gdv2002
12.04.2017, 13:22
573 это та же ИР33
74F573 или 1533ИР33 пойдут? Вот с памятью я запарился, надергано и с материнок и с видях, какая-то подошла на ZX-магнитофон, а вот статика есть или нет, не знаю.
Поди должна быть, материнки 386 и 486 "разувал" :)

Error404
12.04.2017, 14:03
Запись на магнитофон можно сделать хоть сейчас, но только в ОЗУ, для записи на флешку может не хватить памяти для прошивки атмеги16, т.к. сейчас только рид-онли режим и прошивка занимает почти 12кБ. Возможно нужно будет ставить атмегу32.


Значит, надо переходить на атмегу32 и таки сделать запись. Это же совсем другой уровень: к примеру можно и в басике или асме попрограмить по приколу на реале, и результат скинуть на карточку, а завтра считать обратно в РК и использовать дальше.

Alex_LG
17.04.2017, 22:57
gdv2002, у Вас ящик переполнен - не могу ответить на личное сообщение, отвечу здесь.
Потдержку символьного дисплея можно сделать, освободится порядка 2кб, потдержка РОМ-диска памяти занимает мало. Сейчас в эмуляторе есть потдержка ЮТ-88, у них с РК формат записи одинаков, только период разный. Если в Орионе формат такой же, то можно добавить. Контроллер, возможно, прийдется заменить на Мегу32 - резерв памяти, та и про запись можно будет уже думать. Папки можно попробовать также добавить. Я пока в отпуске, все исходники на работе, на следующей неделе выйду на работу, разгребусь с накопленной работой, а потом могу занялся эмулятором.

gdv2002
18.04.2017, 08:41
Alex_LG, личку почистил. Если честно, то я уже начал сомневаться в нужности записи. Может лучше Орион добавить, полез литературу по Ориону перечитывать.
Мегу может тоже не менять, 16-е сейчас копеечные, по крайней мере на Али, а у нас в глубинке это пожалуй единственный способ что-то нужное купить :)
Еще бывает радиолюбители на местном форуме кучкуются и закупаются разом и много, чтобы доставка так не напрягала.

Alex_LG
18.04.2017, 10:35
Может лучше Орион добавить, полез литературу по Ориону перечитывать.
Глянул в описание - вроде одинаков формат, авторы пошли на совместимость формата записи. Если так, то осбо ничего менять и не надо. По поводу расширений .RK и .GAM, .RK, на сколько я понял, точно такой же как и .RKR, т.е. им можно пользоваться и в текущей версии прошивки, а вот для .GAM нужно чуть доработать - в таких файлах уже есть синхробайт E6.
Кстати про память. Она нужна - в ней хранится список файлов, внутренней памяти у М16 не хватает (из 1к занято почти 500 байт). Но если убрать РОМ-диск, то можно использовать хоть РУ10 - 2к хватит на хранение списка из почти 170 файлов в формате "8.3", тогда и 573 (ИР33) можно не использовать - выходов М16 хватит на управление памятью напрямую.

P.S. Как я уже писал, если убрать графический дисплей, то освободится почти 2к памяти, сейчас занято около 13к, т.е. должно хватить М16 и для записи и для резерва.

gdv2002
18.04.2017, 11:22
Да думаю РУ10 не надо, пусть как есть, возможно память для записи пригодиться.
Про формат Ориона да, тоже вычитал, что полностью идентичен с РК.

Trol73
18.04.2017, 19:05
А почему не хотите посмотреть в сторону хотя бы атмеги128? Флеша там вагон, ОЗУ 4кб, продаётся в китаях занедорого. И никаких дополнительных микросхем к ней не надо.
Да и сделан уже плеер RKR/GAM на avr-е..

gdv2002
19.04.2017, 08:59
Да и сделан уже плеер RKR/GAM на avr-е..
а где такое??? Или ты про Тапофон на пике?

Trol73
19.04.2017, 09:29
а где такое??? Или ты про Тапофон на пике?

В моём магнитофоне (ссылка в подписи). Описание на сайте я давно не обновлял, сейчас есть поддержка воспроизведения RKR и GAM. Запись, вообщем, тоже как бы есть, но файлы сохраняются в собственном формате. Запись RKR тоже при желании можно добавить, но, похоже, надо что-то делать со входным каскадом - изначально я схему под спектрумы затачивал, когда начал пытаться записывать файлы с 86РК обнаружилось, что сигнал до микроконтроллера доходит с искажениями.

Error404
19.04.2017, 12:35
Сейчас в эмуляторе есть потдержка ЮТ-88, у них с РК формат записи одинаков, только период разный. Если в Орионе формат такой же, то можно добавить. Контроллер, возможно, прийдется заменить на Мегу32 - резерв памяти, та и про запись можно будет уже думать. Папки можно попробовать также добавить. Я пока в отпуске, все исходники на работе, на следующей неделе выйду на работу, разгребусь с накопленной работой, а потом могу занялся эмулятором.

У Ориона родной формат отличается от РК-86, но на Орионе есть программа (CHR$) (http://retrocomputer.ru/ORIONSOFT/CHR$/CHR$.bru.zip) для чтения и записи кассет в формате РК-86. Для родного формата на Орионе программа CH$ (т.е. changer-rk и changer соответственно). Т.е. можно считать что если есть поддержка формата РК-86, то Орион мы тоже загрузим. Поэтому на мой взгляд важнее сделать запись файлов на SD-карту в формате готовом для последующего чтения в этом же приборе без дополнительной конвертации на РС.

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



похоже, надо что-то делать со входным каскадом - изначально я схему под спектрумы затачивал, когда начал пытаться записывать файлы с 86РК обнаружилось, что сигнал до микроконтроллера доходит с искажениями.

Наверное надо поставить на TapeIN цифрового магнитофона узел на компараторе, аналогичный тому какие ставили в ПК того времени (http://retrocomputer.ru/ORIONSOFT/tapein/tapein.html) для улучшения чтения (на транзисторе конечно вход не даст такого хорошего качества как компаратор):


http://savepic.ru/13585119.gif


Это если универсально делать.
А если делать неуниверсально, то можно оставить как есть и тупо удалить из компа узел (обычно это несколько резисторов-кондеров: делитель и фильтр), который приводит цифровой выход компа к низковольтному аналоговому уровню магнитофонного входа.

barsik
19.04.2017, 13:16
Насколько я понимаю, эмулятор магнитофона, который обсуждается в данной теме, заменяет обычный магнитофон, т.е выдаёт обычный TAPE сигнал, что очень ценно, т.к позволяет грузить многоблочные программы. Не может кто-нибудь рассказать для полного чайника, что за аппаратный эмулятор здесь обсуждается? Как он устроен, принцип действия. Как им пользуются?

Прочитал всю эту тему и ничего не понял. Стал искать описание эмулятора МГ во всём разделе РК86 и тоже ничего не нашёл (единственная похожая тема "SD-card. Концепция. Обсуждение.", но там совсем о другом). Что же это за таинственный эмулятор?

Насчёт эмулятора ROM-диска особых вопросов нет, т.к это просто эмулятор ПЗУ. Для магнитофона, предполагаю, используют SD-карту от телефона (или подобный FLASH). Понятно, что внутрь SD-карты можно записать тысячи файлов в формате GAM или RKR, причём даже не нарушая используемую в телефонах систему FAT. Понятно, что ПЛИС выполняет роль контроллера, реализуя какую-то простейшую файловую систему. Но как на 8-ми разрядке файлы искать и выбирать? Это же не эмулятор дисковода, для которого есть ДОС.

Я не понимаю как из РК86 сообщить эмулятору магнитофона номер желаемой записи. Не говоря уже о работе с именами файлов. Можно конечно, через доп.ППА D14 передадавать номер искомой записи и считывать из ПЛИС каталог файлов. В крайнем случае можно снабдить контроллер на ПЛИС кнопочным набором, что совсем неудобно.

Если бы я делал такой магнитофон, то в РК86 открывалось бы окно и там бы выбирался нужный файл. По нажатию на <ВК> окно бы закрывалось (с восстановлением) и выбранный файл начинал бы загружаться. Т.е было бы точно также, как в эмуляторе B2M при загрузке WAV-файлов. Причём, имея мой альтернативный фонт с рамочками, позволяющий выводить инверсное окно, это было бы вполне эстетично. Причём "отлов" входа в п/п-мму RDBYTE, как в эмуляторе B2M, делать не требуется, достаточно изменить само ПЗУ F800 (по первому-же RDBYTE уход на запрос файла, а конец загрузки по вызову любой стандартной п/п-ммы). На РК программу обслуживания удобно разместить в ПЗУ E000, - программа небольшая, т.к файловой системой управляет не РК86, а ПЛИС.

gdv2002
19.04.2017, 13:24
В данном случае выбор на плате эмулятора магнитофона. Он имеет дисплейчик/экранчик и три кнопки - листать и выбор. Полистал, выбрал файл, нажал выбор - и на выходе эмулятора магнитофона "заскрипел" знакомый всем нам звук. А вот если получится приделать поддержку папок и запись, то будет вообще чудо!

SergeyLLL
19.04.2017, 13:28
...Запись, вообщем, тоже как бы есть, но файлы сохраняются в собственном формате...

Да и хрен с ним, в каком формате будет запись.


...Запись RKR тоже при желании можно добавить, но, похоже, надо что-то делать со входным каскадом... обнаружилось, что сигнал до микроконтроллера доходит с искажениями.

А действительно, можно ведь напрямую с ВВ55 подавать и вход и выход.
Главное что бы писал, а потом читал, то что записал.

gdv2002
19.04.2017, 13:34
Trol73, SergeyLLL, но тут все-же тема про другой девайс ;)

barsik, лучше один раз увидеть, вот тут похожий "магнитофон" только для спектрума: http://radiokot.ru/forum/viewtopic.php?f=2&t=87308

barsik
19.04.2017, 13:42
выбор на плате эмулятора магнитофона. Он имеет дисплейчик

Что за дисплейчик? Надеюсь с простыми HEX-индикаторами, а не дисплейчик от старого DVD-проигрывателя или видео-магнитофона? У меня кстати, такой есть, и даже не один (т.к нераспотрошёнными лежат ещё 3 дохлых DVD), но для его управления стоит "паучина".

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


вот тут похожий "магнитофон" ... http://radiokot.ru/forum/viewtopic.php?f=2&t=87308

Посмотрел. Увидел, что дисплейчик от телефона NOKIA. Не у всех есть старая ненужная NOKIA, причём именно такая. Вообще у всех радиолюбителей полно старых ненужных телефонов. И было бы ценно использовать их дисплеи. Но боюсь, это слишком сложно.

Я бы просто поставил HEX-индикаторы, для отображения номера записи. 2 кнопки перемотки и кнопка ENTER. И контроллер на SU880 (жрёт 4 МА), а не на ПЛИС. И с файловой системой FAT, я бы не стал связываться (проще повеситься, чем написать свой аналог MSDOS), а применил бы простейшую ДОС "Хамелеон-ДОС" от Львова, размером всего в 2 кб (не использует фрагментации) или что-то ещё более простое.

А почему-же не использовали сам РК86 в качестве индикатора при поиске записи? Это же не сложнее, чем разбираться в устройстве и программировании дисплейчика NOKIA. И никаких вынесенных на лицевую панель компьютера дисплейчиков и кнопок не надо. Есть же нормальный большой дисплей 8-ми разрядки. Где кстати и работу с папками (в смысле подкаталогами) удобно отображать (чем-то типа Нортона)

Сделано оптимально, хотя сама концепция мне не нравится. Но идея, выдавать TAPE-сигнал на МГ-вход понравилась. Несложно сделать внешний TAPE-контроллер, в который из 8-ми разрядки или из IBM PC грузится блок кодов, а этот контроллер выдаёт эту многоблочную TAPE-запись на МГ-вход 8-ми разрядки. Конечно и сама IBM PC может выдать такой сигнал. Но для IBM PC я такую программу написать не могу, а вот для контроллера на Z80 - проблем нет. Памяти в таком контроллере достаточно всего 64/128 кб и ПЗУ 2 кб.

Непонятно почему не сделали программу эмулятор магнитофона на IBM PC? Кажется, это можно реализовать даже в виде программы на современном телефоне, качая сигнал через гнездо наушников. И не понадобится паять плату такого эмулятора и искать дисплей NOKIA.

gdv2002
19.04.2017, 13:53
barsik, у автора графический экран от телефона Нокия 1100: http://zx-pk.ru/threads/19685-radio-86rk-na-novyj-lad.html?p=679255&viewfull=1#post679255
Я предложил использовать символьный экранчик от братьев китайцев, в 2 строки по 16 символов, как на фотографии по ссылке из предыдущего моего сообщения.
Тем самым код прошивки заметно уменьшится и может получится запись прикрутить.

Error404
19.04.2017, 14:18
Главное что бы писал, а потом читал, то что записал.

И тут логично продолжить мысль: конечно, готовые форматы (RKR и т.п.) удобно и нужно использовать для ввода т.к. в этих форматах уже тонны программ в Инете лежат оцифрованные. Но дополнительно нужен еще и режим где 100% магнитофона, т.е. записывается, хранится в файле на Sd-карте, и затем воспроизводится "сырой" (raw) сигнал без его обработки и приведения к RKR или подобным форматам, заточенным более под хранение и эмуляторы, чем под цифровые магнитофоны.

Придумать этому формату какое-нибудь расширение. Это позволит не заморачиваться на то какой формат у целевого компа, а подавать ему его же вывод "как есть" - уж своё то он сам распознает. Замечу, что такое ("сырая" запись/чтение трека "как есть - от индекса до индекса" со всеми GAP-ами и ракордами) есть в большинстве эмуляторов НГМД наряду с обработкой форматов эмуляторов ПК ("посекторной копии").

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

А если надо будет "сырой" формат конвертировать в RKR для последующего хранения на РС или загрузки в эмулятор, то для этого можно использовать РС где состряпать небольшую программку-конвертор (хотя думается, что их и так уже немало).

Alex_LG
19.04.2017, 14:31
barsik, данный эмулятор использует ч/б дисплей от старой мобилки Нокиа (1100 или 3510). Принцип работы такой. При включении выдается запрос с каким компьютером будет работа - Радио или ЮТ, далее микроконтроллер считывает список файлов с флешки и выводит список на собственный экран, выбираем кнопками нужный файл и жмем "Ок", после загрузки файла в память, если это файлы .RKR, выводится запрос на проигрывание (для файлов .BIN и .ROM запрос не выводится), если отказываемся - файл подготавливается в формат РОМ-диска. Вот как-то так.

barsik
19.04.2017, 16:10
Эмулятор магнитофона в реальном TAPE-форматате имеет смысл для многоблочных программ. Но для РК86 таковыми были только коммерческие защиты, а их сохранилось совсем немного. Но Вы ведь используете такой метод ввода для программ в кодах. А это какой-то нонсенс. Конвертировать программу в звуки, чтобы пришлось ждать 3 минуты, если ввод можно сделать мгновенно (к тому же ещё и сидеть эти 3 минуты с погашенным экраном).

Этот МГ-эмулятор - это устройство воспроизведения, т.е решение задачи "в лоб". Это для любителей старины, т.е сделано без учета интересов практического пользователя. Кстати не понимаю, как удаётся писать в диск с FAT, ведь для этого надо иметь какой-то код, что делает для работы с файлами то же самое, что делает MSDOS.

Чтобы получить более удобное устройство, достаточно заменить в ПЗУ п/п-мму RDBYTE, чтобы она читала с того же МГ-входа, но не со скоростью 100 байт в секунду, а со скоростью 4 кб в секунду (а если сделать через параллельный интерфейс, то и 32 кб в секунду). Для этого железо особо менять не требуется, достаточно изменить ПЗУ F800 и прошивку в ПЛИС эмулятора магнитофона. А если использовать не передачу в реальном времени (т.е по одному проводу), а использовать обмен по готовности, то скорость обмена повышается на порядок.


нужен еще и режим где 100% магнитофона, т.е. записывается, хранится в файле на SD-карте, и затем воспроизводится

Такой режим нужен для программ, которые меняют формат ввода (не 2-х фазное кодирование) или применяют смену константы ввода прямо в процессе ввода многоблочной программы (это делается с целью защиты от копирования).

Для цифрового сигнала не нужно 16-ти битовое кодирование, достаточно однобитового. Никто не пробовал конвертировать 8/16-ти битовые WAV-файлы в однобитовые? Это должно многократно сократить объёмы хранения для TAPE-файлов. Никто не видал такого ПО (или хотя бы до 4-х битового формата)?

Даже если это нельзя сделать, то можно придумать свой однобитовый формат, в котором пишутся не отсчёты дискретизации, а числа сколько времени до следующего фронта (т.е перепада сигнала на обратный). В одном байте можно кодировать 2 перепада (т.е изменение длительности единиц и нулей в 16 раз, этого хватит). Таким образом при кодировании частотного формата (MSX, ZX) где на бит уходит 4 перепада, каждый бит кодируется всего 2-мя байтами. А при двухфазке вообще - лишь 1 байт тратится на хранение одного бита. Итого при частотном формате объём хранения в 16 раз больше полезного кода, а при двухфазке в 8 раз больше. И этот файл ещё можно сжать компрессором.

Для многоблочных программ в двухфазном кодировании защищённых сменой константы ввода, надо запоминать не только сами блоки и их последовательность, но и вычислять констаты их ввода и сохранять эту константу в начале блока, а также надо запоминать длительность пауз между блоками (некоторые защиты это тоже контроллировали). Всё это делал копировщик SP-COPY для СПЕЦИАЛИСТА.

Alex_LG
19.04.2017, 16:45
Кстати не понимаю, как удаётся писать в диск с FAT, ведь для этого надо иметь какой-то код, что делает для работы с файлами то же самое, что делает MSDOS.

В эмуляторе используется не ПЛИС, а микроконтроллер, т.е. фактически микрокомпьютер со своим ПЗУ+ОЗУ+устройствами В/В и работающего со скоростью 16 MIPS...

tnt23
19.04.2017, 23:45
Что за дисплейчик? Надеюсь с простыми HEX-индикаторами, а не дисплейчик от старого DVD-проигрывателя или видео-магнитофона? У меня кстати, такой есть, и даже не один (т.к нераспотрошёнными лежат ещё 3 дохлых DVD), но для его управления стоит "паучина".

Такими тоже не очень сложно управлять: http://tnt23.livejournal.com/1023991.html

Alex_LG
20.04.2017, 17:00
Итак...
1. Сделал поддержку символьного дисплея 16х2
2. Добавил .GAM-файлы

Теперь по Ориону. Если я правильно понял, то на физическом уровне формат записи одинаков с РК, формат отличается только на логическом уровне да и то только для ORDOS. Т.е. для воспроизведения любых файлов Ориона должно быть как и у Радио - 255 байт "нули", синхробайт 0xE6, а далее тело программы (не важно в каком формате). Правильно?

barsik
20.04.2017, 18:18
Точно. В формате ORDOS добавлен только заголовок. В формате ORDOS по сути три РК-посылки, каждая со своим пилотоном и синхробатом. Только первая посылка без адресов загрузки и КС блока, вторая с укороченным пилотоном в 64 байта, а третья с пилотоном в 3 байта, синхробайтом E6 и двумя байтами КС (все адреса и КС в неправильном порядке байтов, правильный порядок байтов в формате СПЕЦИАЛИСТА).

Там в первой посылке после синхробайта E6 сразу идёт имя файла в 8 символов. Затем короткий пилотон и следом обычная РК-посылка с начальным адресом 0, конечным адресом длина файла +16, блоком, и после конца блока три нулевых байта E6 и контррольная сумма. Кстати M3-EXT ранних версий забыл ввести эти два нулевых байта (т.к в специалистовском формате их нет, КС идёт впритык к блоку). Отчего после средствами ORDOS эти файлы не читались.

Таким образом формат такой:

- пилотон 256 нулевых байтов
- E6
- имя 8 байтов
- короткий пилотон 64 нулевых байта (разделитель между заголовком и телом)
- E6
- 00,00
- длина файла + 16 (старший, младший)
- ORDOS-метка длиной в 16 байтов
- тело ORDOS-файла
- 00,00,00
- E6
- КС (старший, младший)

Как видите формат несколько избыточный. Если у Вас уже есть ввод РК-формата, то для ввода ORDOS-файлов достаточно игнорировать первый блок с именем и вводить только второй блок (для чего достачно игнорировать первый синхробайт E6). Кстати, при вводе ORDOS-файла на ОРИОНЕ, файл сдуру сначала грузился в ОЗУ, отчего невозможно загрузить файл размером более 46 кб. В RAMDOS в такой же ситуации файл сразу грузился в эл.диск, что позволяет читать файлы размером в 512 кб.

cy6
06.03.2023, 00:00
Есть ли счастливые обладатели этого девайса? Он нормально работает? :)

Alex_LG
06.03.2023, 17:02
Есть, работает нормально...
Недавно с него проги загонял в Микрошу для записи на диск...