User Tag List

Страница 11 из 15 ПерваяПервая ... 789101112131415 ПоследняяПоследняя
Показано с 101 по 110 из 146

Тема: Прекрасный ассемблер КР580ВМ80А русские буквы

  1. #101
    HardWareMan
    Гость

    По умолчанию

    Я вам так скажу.

    1. Скорости разные, причем у Ориона на слух явно ниже было чем у Специалиста. Я когда баловался, там было что-то между 1050 и 1100.

    2. Есть особенность в выгрузке у советского манчестера. Это в отличии от двухтоналки Спектрума. Сейчас объясню. Вот типичный цикл загрузки и выгрузки:
    Код:
    LOOP: MOV  A,M
          CALL SAVE_BYTE
          CALL CMP_HL_DE
          JZ   EXIT
          INX  H
          JMP  LOOP
    EXIT:
    Ничего не заметили? Хорошо, следите: внутри SAVE_BYTE биты выводятся с равномерным таймингом и он задается константой. А вот снаружи мы имеем несколько команд, которые затягивают последний сформировавшийся уровень. Отсюда каждые 8 бит имеем растягивание уровня во времени и "рваный" звук. Причем, чем выше частота, тем заметнее рваный (у Спеца например). И тональность кажется не чистой. И самое главное то, что когда достигнута синхронизация, эта задержка попадает на такой же набор команд в подпрограмме загрузки. Поэтому, она нивелируется. А если ее не добавить, на некотором бодрейте штатная функция откажется считывать, потому как будет пропускать перепады.
    Последний раз редактировалось HardWareMan; 20.07.2017 в 18:27. Причина: Поправил пример

  2. #102

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    HardWareMan, то-то я думаю, почему такой хрюкочущий звук всегда получается.

    Пока в КС Микроши не встретится $E6, возможно инвертированный, возможно сдвинутый?
    КС Микроши не пишется в файл для РК, для РК на его месте нули. Только файлы для Микроши получают лишние байты. Но раз вам с ними никак, так уж и быть, отрежу три байта =)

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

    Попробовал, у меня такая ситуация только в Апогее — то есть Апогей мои Микрошевские вавы не грузит. Сам Микроша при этом их грузит, а когда я делаю их тормозными — перестает. Поскольку Апогей умеет читать свои собственные файлы и даже имеет свою собственную рыбу, оставлю пока Микрошу как есть.
    Больше игр нет

  3. #103

    Регистрация
    10.06.2016
    Адрес
    г. Киев, Украина
    Сообщений
    87
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    КС Микроши не пишется в файл для РК, для РК на его месте нули. Только файлы для Микроши получают лишние байты. Но раз вам с ними никак, так уж и быть, отрежу три байта =)

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

    Попробовал, у меня такая ситуация только в Апогее — то есть Апогей мои Микрошевские вавы не грузит. Сам Микроша при этом их грузит, а когда я делаю их тормозными — перестает. Поскольку Апогей умеет читать свои собственные файлы и даже имеет свою собственную рыбу, оставлю пока Микрошу как есть.
    В теории, в файле с обеими КС может неправильно прочитаться только КС РК на читалке РК, и то при наличии в КС Микроши битовой последовательности 11100110 или 00011001.

  4. #104

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от kolk Посмотреть сообщение
    В теории, в файле с обеими КС может неправильно прочитаться только КС РК на читалке РК, и то при наличии в КС Микроши битовой последовательности 11100110 или 00011001.
    Когда я генерирую файл для РК, в позиции Микрошных контрольных сумм записываются нули.
    Больше игр нет

  5. #105

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    HardWareMan, у меня получается загружать файлы без заголовка с именем (фактически .rks засунутый в WAV). А с именем нет. Оно ему вообще нужно? Может быть я что-то неправильно делаю? У меня эмулятор b2m. Что надо сделать, чтобы загрузить файл с именем?

    И кстати, ракорд в 768 нулей, это как-то очень много по-моему.
    Больше игр нет

  6. #106
    HardWareMan
    Гость

    По умолчанию

    svofski, я привел данные только по Специалисту. Должно работать по директиве I и он загрузит с именем, как я сказал. Без имени можно загрузить по сбросу, тогда после загрузки и сверки КС произойдет автозапуск. Тот же результат если нажать сброс на втором раккорде, пропустив имя. Ну не 768, сделай 512 хотя-бы тогда, но в оригинале 768.

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

  8. #107

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    HardWareMan, а, тогда все работает. Я процедуру со сбросом и дополнительной директивой не осознал. .tape spec-mon для монитора, .spec-rks для загрузки без имени.
    Больше игр нет

  9. #108
    HardWareMan
    Гость

    По умолчанию

    svofski, я не помню как в РК, но в Орионе КС идет после микрораккорда и синхробайта, к тому же старшим вперед. В спеце КС идет сразу за последним байтом данных и младшим вперед. Сама же формула КС такая же как и в РК и Орионе. Она вообще стандарт, т.к. журнал Радио использовал ее в распечатках, хоть и имеет серьезный баг в реализации, который исправить нельзя - порушится математика.

  10. #109

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    HardWareMan, у меня получилось, как ты сказал: RK выдавливает адреса и КС big endian, Спец наоборот. Алгоритм КС тот же самый. По крайней мере эмулятор в таком режиме грузит и доволен, у меня сейчас лучше критериев нет.

    Надо бы потом сбацать подробное описание всех этих форматов в одном хорошо организованном месте. У меня уже есть просто программа, которая печатает декодированный дамп произвольного манчестерокодированного WAV-а, потому что иначе понять не всегда получалось. Для Кристы вообще пришлось дизассемблировать загрузчик, потому что нигде не написано, что же именно она записывает. Похоже на Вектор, но совсем не то же самое.
    Больше игр нет

  11. #110

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

    По умолчанию

    Цитата Сообщение от HardWareMan
    Ничего не заметили? Хорошо, следите: внутри SAVE_BYTE биты выводятся с равномерным таймингом и он задается константой. А вот снаружи мы имеем несколько команд, которые затягивают последний сформировавшийся уровень. Отсюда каждые 8 бит имеем растягивание уровня во времени и "рваный" звук. Причем, чем выше частота, тем заметнее рваный
    Ошибка на обычных константах невелика. После каждого 8-го бита добавляется не более 2-х процентов периода. Коэффициент детонации у магнитофона 4-го класса 5%. Так что это нормально и к проблемам не ведёт, т.к ошибка будет только при задержке на полпериода, т.е на 50%. Строго говоря это ошибка Попова, Зеленко и Горшкова, авторов МИКРО-80, откуда все МГ-подпрограммы и происходят. Не составляло проблемы программно выровнять паузы между фронтами.

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

    HardWareMan, в приведенном фрагменте ошибка:

    Код:
    .
    LOOP:	LD	A,(HL)
    	CALL	SVBYTE
    	INC	HL
    	DEC	BC
    	OR	A
    	JP	NZ,LOOP
    Вообще-то, для организации цикла в МГ-подпрограммах ОРИОНА, СПЕЦИАЛИСТА и РК86 в подпрограммах SV_massiv и LD_massiv используется не задание числа байтов в BC, а сравнение текущего адреса с адресом конца блока. Для чего вызывается п/п-мма CMPDH, сравнение HL и DE, выставляющая флаг Z. Это конечно сути примера не меняет, но всё же лучше реальный текст. А ошибку исправьте и я отредактирую этот пост.

    А если цикл по счётчику, то чтобы не ошибаться и не вводить больше строк лучше пользоваться макрокомандой

    Код:
    .
    LOOP	MACRO	ADDR
    	DEC	BC
    	LD	A,B
    	OR	C
    	JP	NZ,ADDR		; JR для Z80
    	ENDM
    Последний раз редактировалось barsik; 20.07.2017 в 18:00.

Страница 11 из 15 ПерваяПервая ... 789101112131415 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Русские материалы по MSX
    от Nekto в разделе MSX
    Ответов: 6
    Последнее: 23.10.2025, 09:55
  2. Рекомпиляция Z80 -> КР580ВМ80А
    от svofski в разделе Вектор
    Ответов: 59
    Последнее: 28.06.2021, 15:10
  3. Вектор-06Ц: Эмуляция - КР580ВМ80А
    от Ramiros в разделе Вектор
    Ответов: 199
    Последнее: 17.08.2014, 22:19
  4. Аукцион БК0011 буквы м нет
    от alexsan в разделе Барахолка (архив)
    Ответов: 12
    Последнее: 07.08.2011, 11:32

Ваши права

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