User Tag List

Показано с 1 по 10 из 1107

Тема: Emu80 v.4

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN
    Перед последним синхробайтом и контрольной суммой нуля может не быть вообще? Или нужен хотя бы один? Максимальное количество не ограничено, так понимаю. А если туда произвольные данные (но не Е6)? Они будут просто пропускаться? Как сделан ввод с МГ в настоящем РК86 ?
    В стандартных входах РК есть п/п-мма ввод массива, которая полностью реализует директиву I. Не знаю как в клонах, а в самом РК это работает так. Сначала вызывается подпрограмма ввода двух байтов с поиском синхробайта (в роли которого E6 или его побитовая инверсия). Она пропускает любое число байтов, любых кроме E6 (или его инверсии). Любые байты передавать можно, если только из двух соседних байтов при их сдвигах в аккумуляторе не возникнет Е6.

    Как только синхробайт найден, он тоже откидывается и дальше всё работает синхронно, - вводятся заказанные два байта. Затем вызывается подпрограмма ввода 2-х байтов уже без поиска синхробайта. Это будут 4 байта адресов загрузки. Далее зыпускается цикл ввода байтов до тех пор, пока текущий адрес ввода не станет равен конечному.

    И вот тогда наступает момент, который Вас интересует. РК86 снова вызывает подпрограмму ввода 2-х байтов с поиском синхробайта. Таким образом, число байтов между концом блока и синхробайтом Е6 может быть любым, при условии, что среди этого потока битов нет байта Е6. Мне кажется, что байт 0 перед Е6 тоже не обязателен. Происходит сдвиг принятых битов, пока не возникнет Е6. Так что, если идут 2 байта 60 и 0Е, то по ним тоже произойдёт синхронизация. Это из-за того, что в этом формате нет побайтовой синхронизации (а в формате MSX есть). Именно поэтому перед синхробайтом выдают длинный пилотон, т.е блок из 256 (а иногда и более) нулей, чтобы человек услышав звук, мог нажать на <ВК>. Если пилотон не выдавать, а сразу начинать передачу с Е6, то шумы с выхода МГ могут сформировать ложный синхробайт.

    Так, т.е с любым числом нулей до СБ контрольной суммы и любой паузой, сделано в РК86. Но в ОРИОНЕ претендующем на МГ-совместимость - не так. Там паузу вообще нельзя ввести, сразу возникает ТАЙМ-АУТ и уход на подпрограмму ERR_MG (ошибки чтения с МГ). И ОРИОН ожидает ровно 3 байта, причём в данном случае, точно не обязательно 2 нулевых и третий синхробайт Е6. Эти 3 байта могут быть любыми, т.к ОРИОН не сихронизируется по синхробайту, чтобы считать КС, он просто пропускает 3 байта и считывает 2 следующих, которые и оказываются контрольной суммой.

    В СПЕЦИАЛИСТЕ контрольная сумма примыкает прямо к блоку данных. И никакой новой синхронизации по Е6 не делается. КС является как-бы частью блока, в смысле, что вводится с той же синхронизацией, отчего пауза перед КС недопустима.

    Кстати, блок с КС может вводиться с инверсией. То есть вторым синхробайтом может служить байт являющийся побитовой инверсией E6 (это 19) и КС тогда надо тоже передавать в инверсии. Такой трюк сработает на РК86, т.к при второй синхронизации будет правильно поставлен флаг инверсии сигнала с МГ. А вот в ОРИОНЕ такой трюк не пройдёт. Т.о, это способ иметь формат РК86 несовместимый с ОРИОНОМ. Впрочем, для этого даже не надо исхитряться, достаточно добавить на один ноль больше или меньше перед КС.

    Думаю, что в РК86 введётся и без (двух или иного числа) нулевых байтов между блоком и Е6, но пусть кто-нибудь проверит. Я могу сделать такую запись, если есть эмулятор, умеющий делать запись.

    Я тут недавно узнал, что можно вводить МГ-записи в РК86 без гашения изображения на экране. Так что никто не хочет сделать для РК86 новый "монитор", где экран не будет гаснуть? Это теперь можно сделать, т.к пару месяцев назад в теме "РК86 на Z80" я освободил в ПЗУ РК86 КР580, если верно помню, ~80 ячеек. Этого должно Вам хватить на модернизацию подпрограммы чтения байта с МГ. Чтобы это сделать, надо сначала "кракнуть" коммерческую защиту от копирования и извлечь из неё подпрограмму чтения.
    Последний раз редактировалось barsik; 02.05.2017 в 19:43.

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

  3. #2

    Регистрация
    14.05.2013
    Адрес
    г. Москва
    Сообщений
    264
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Я тут недавно узнал, что можно вводить МГ-записи в РК86 без гашения изображения на экране. Так что никто не хочет сделать для РК86 новый "монитор", где экран не будет гаснуть?
    Для Микроши был «драйвер магнитофона» который читал/писал без гашения экрана и с именем, небольшими блоками по два раза. Подозреваю, что это один и тот же метод, что и в «Highway Games hit-parade». Я пытался на своем Апогее повторить, делал синхронизацию таймером, даже работало и я начал переводить свой архив в новый формат. В Апогей и РК с ПЗУ 4К можно подобный "драйвер" вставить. Но тогда в этом был смысл, а сейчас то зачем? А просто не гасить экран и оставлять стандартный формат смысла особого не имеет, что на нем смотреть?

  4. #3

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от uart
    начал переводить свой архив в новый формат
    А что формат с негаснущим экраном уже несовместим со стандартным МГ-форматом РК86? Разве там не такой же двухфазный формат? Кажется в коммерческих защитах лишь применили разбиение всего большого файла на блоки, передавая в начале каждого блока его номер, что позволяет ориентироваться, т.е знать куда мотать ленту, чтобы найти нужную запись. Но физический формат ведь тот же? Или нет? Т.е можно ли его заимствовать для ROM-BIOS РК86 и клонов.

    Цитата Сообщение от uart
    не гасить экран... смысла особого не имеет, что на нем смотреть?
    Посмотрите в эмуляторе СПЕЦИАЛИСТА как вводит с МГ-ленты ленинградский монитор В.Ивинских. В правом верхнем углу "бежит" счётчик, показывающий адрес ячейки, куда читается очередной байт. Кроме того, вместо того, чтобы бессмысленно крутить циклы реализуя программные паузы, можно в эти паузы делать полезную работу, что и делают грамотные загрузчики. Да и благодаря "негасимости" экрана, на время загрузки основного блока можно вывести на экран заставку и правила игры. Авторы РК86 могли бы сделать хотя бы мигание светодиодом в ритме ввода каждых 128-ми байт (скорость ввода ~110 байт в секунду). А то сидишь перед чёрным экраном 5 минут и не знаешь, что всё уже давно зависло... Кстати, неплохая идея, попробую применить её в ROM-BIOS ОРИОНА, т.к там полно свободного места для доработок.

    Цитата Сообщение от OrionExt
    Как может магнитофон инвертировать сигнал?
    Если в сквозном канале, т.е в сумме усилителя записи (у человека который записывал) и в усилителе воспроизведения (у человека, который считывает) нечётное число усилительных каскадов с открытым коллектором, то происходит инверсия. Это и учитывает драйвер чтения с МГ-ленты, тратя на это ценные байты ПЗУ.
    Последний раз редактировалось barsik; 03.05.2017 в 09:25.

  5. #4

    Регистрация
    16.12.2008
    Адрес
    Kharkov, Ukraina
    Сообщений
    2,221
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По фронту либо по срезу, определяет программа (в строго отведенном интервале времени) 0 или единица считана. инверсия тут причем.

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

    И дальше считывает, по виду кодировки на ленте. Первый раз влез. Как оно там работает.

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

    Цитата Сообщение от barsik Посмотреть сообщение
    Если в сквозном канале, т.е в сумме усилителя записи (у человека который записывал) и в усилителе воспроизведения (у человека, который считывает) нечётное число усилительных каскадов с открытым коллектором, то происходит инверсия.
    А если у меня инвертор в компьютере стоит. Заканчивайте)))
    Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...

  6. #5

    Регистрация
    14.05.2013
    Адрес
    г. Москва
    Сообщений
    264
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    А что формат с негаснущим экраном уже несовместим со стандартным МГ-форматом РК86?
    Лично мне был малоинтересен просто негаснущий экран. Вот короткие блоки с именем - интересны. «Драйвер магнитофона» это реализовывал.

  7. #6

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,397
    Спасибо Благодарностей отдано 
    417
    Спасибо Благодарностей получено 
    668
    Поблагодарили
    262 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    uart, кстати, можно где-нибудь посмотреть на этот "драйвер магнитофона"? Может быть, здесь на форуме обсуждали?

  8. #7

    Регистрация
    14.05.2013
    Адрес
    г. Москва
    Сообщений
    264
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Pyk, увы. У меня и тогда его не было, только видел его в работе. Еще существовала программа "автозапуск", которая записывала программу двумя блоками, второй блок на большей скорости, а первый грузился в область стека монитора, автозапускался, грузил вторую часть и запускал ее. Вот она была более распространенной, но сейчас ее тоже найти не могу, хотя очень интересно такой составной rkm в эмуляторе загрузить.

  9. #8

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,397
    Спасибо Благодарностей отдано 
    417
    Спасибо Благодарностей получено 
    668
    Поблагодарили
    262 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    uart, В плане автозапуска с помощью загрузки в область стека я тоже что-то делал для Партнера в свое время - сохранились даже какие-то исходники. Да и в "Радио" публиковалось что-то подобное для РК-86.
    А наработки для Апогея сохранились?

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

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

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

Похожие темы

  1. Emu80, старые версии
    от Pyk в разделе Эмуляторы отечественных компьютеров
    Ответов: 68
    Последнее: 11.03.2017, 00:33

Ваши права

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