User Tag List

Страница 5 из 26 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 251

Тема: ПК Специалист + AY-3-8910/12

  1. #41

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,650
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Решил поэкспериментировать с проигрыванием модулей PT2/PT3.

    Взял исходники на ассемблере Z80 для Спектрума/MSX отсюда (PTxPlay). Убедился, что то, что компилирую я, байт в байт совпадает со вложенным бинарником.

    Далее я подправил процедуру вывода на AY:

    Код:
        IF SPEC
    
    AY_SEL        equ    0xf403    ; Выбор регистра AY
    AY_WR        equ    0xf401    ; Запись в регистр AY
    AY_RD        equ    0xf400    ; Чтение из регистра AY
    
    ;Специалист
        XOR A
        LD HL, AYREGS   ; HL = указатель на данные AY
        LD C, 0x0D   ; C = 13 (счётчик регистров)
    LOUT:
        LD (AY_SEL), A  ; Выбор регистра AY (0xF403)
        LD    B, A
        LD A, (HL)      ; Читаем значение в A
        LD (AY_WR), a   ; Записываем в AY (0xF401)
        LD    A, B
        INC HL          ; Переходим к следующему значению
        INC A           ; Увеличиваем номер регистра (A++)
        CP C            ; Проверяем, достигли ли 13 (C=0x0D)
        JR NZ, LOUT     ; Если нет — повторяем
    
        ; Обработка 13-го регистра
        LD (AY_SEL), A  ; Выбираем регистр 13
        LD A, (HL)      ; Читаем его значение
        AND A           ; Проверяем бит 7 (для RET M)
        RET M           ; Если бит 7 = 1 (знак минус), возвращаемся
        LD (AY_WR), A   ; Иначе записываем значение регистра 13
        RET
        ENDIF
    Прицепил музыку после переменных, как того требует документация, и согласно ей же приделал цикл с вызовом нот. Скомпилировал. Получил RKS, и загрузил его в эмулятор Emu80 в Специалист с Z80. По моему плану я должен был услышать музыку. Вместо я этого я получаю зависание с порчей экрана. При первичном анализе выяснил, что всё рушится уже на первоначальной процедуре инициализации проигрывателя. Дальше не копал. Конфигурация эмулятора проверена на моей адаптации Batty, то есть Z80 работает, и на предыдущем проигрывателе, то есть AY тоже звучит.

    Вот спрашивается, что может идти не так?
    Последний раз редактировалось CityAceE; 27.06.2025 в 19:38.
    С уважением, Станислав.

  2. #42

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сомневаюсь, что проблема с проигрывателем. Насколько помню здесь тоже использовал вариант с сайта Бульбы.

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

    Действительно использовал плеер оттуда, а конкретно
    ;Vortex Tracker II v1.0 PT3 player for ZX Spectrum
    ;ROM version (specially for Axor)
    ;(c)2004,2007 S.V.Bulba <vorobey@mail.khstu.ru>
    ;убрал ссылки

    ;Release number
    ;Release EQU "MOR7"
    Последний раз редактировалось Mick; 27.06.2025 в 20:45.

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    CityAceE(27.06.2025)

  3. #43

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,650
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Насколько помню здесь тоже использовал вариант с сайта Бульбы.
    Что ж, раз так, то полез проверять всё заново. Начал с того, что скомпилировал код для Спектрума, чтобы убедится, что он работоспособен, музыкальный модуль я выбрал правильного формата и инициализация проходит верно. Скомпилировал всё на пересекающийся со Специалистом адрес ОЗУ 25000. Всё скомпилировалось и запустилось. Далее просто заменил процедура вывода на AY Специалиста. Скомпилировал и запустил на Специалисте. И, о чудо, всё заиграло! Потом сменил адрес на нулевой и всё точно так же продолжило играть. Что это было изначально непонятно...

    Смущает только куча предупреждений во время компиляции. Интересно, почему автор не позаботился о них?

    Код:
    d:\Specialist\Develop\PTxPlay>d:\Specialist\Tools\sjasmplus PTxPlay.asm
    SjASMPlus Z80 Cross-Assembler v1.20.3 (https://github.com/z00m128/sjasmplus)
    Pass 1 complete (0 errors)
    Pass 2 complete (0 errors)
    PTxPlay.asm(306): warning: value 0x1F0 is truncated to 8bit value: 0xF0
    PTxPlay.asm(366): warning: value 0x6917 is truncated to 8bit value: 0x17
    PTxPlay.asm(413): warning: value 0x6923 is truncated to 8bit value: 0x23
    PTxPlay.asm(686): warning: value 0x14587 is truncated to 16bit value: 0x4587
    PTxPlay.asm(1008): warning: value 0x6AEC is truncated to 8bit value: 0xEC
    PTxPlay.asm(1072): warning: value 0x69EC is truncated to 8bit value: 0xEC
    PTxPlay.asm(1436): warning: value 0xDD8 is truncated to 8bit value: 0xD8
    PTxPlay.asm(1448): warning: value 0xCDA is truncated to 8bit value: 0xDA
    PTxPlay.asm(1461): warning: value 0xE08 is truncated to 8bit value: 0x08
    PTxPlay.asm(1473): warning: value 0xFC0 is truncated to 8bit value: 0xC0
    include data: name=Music/Slash - Molodoy (1996).pt2 (2754 bytes) Offset=0  Len=2754
    Pass 3 complete
    Errors: 0, warnings: 10, compiled: 1497 lines, work time: 0.047 seconds
    С уважением, Станислав.

  4. #44

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,650
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все выходные трудолюбиво поэтапно переводил код Z80 проигрывателя PT2/PT3 на i8080. Заботливо, команду за командой, каждый раз проверяя, что всё играет, как и раньше, переводил команду за командой. И вот ни одной команды, которую бы не знал i8080, в коде не осталось. SJAsmPlus всё компилирует без ошибок и предупреждений с ключом --i8080, а код получается в точности такой же, как и без этого ключа. Специалист с Z80 под Emu80 прекрасно поёт мелодию, заложенную в файл. И я уже готов был праздновать победу, пока не запустил RKS на стандартной конфигурации с процессором i8080. А там, увы, всё оказалось очень и очень печально - оно не поёт, а код уходит непонятно куда-то. Опечален. Устал, поэтому пока не понимаю как искать причину. Но слишком жалко бросать начатое. А так данный проигрыватель пригодился бы и для Вектора, и для ПК8000, и вообще для любого компа, к которому подключили AY.

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Смущает только куча предупреждений во время компиляции
    От них я избавился первым делом!
    С уважением, Станислав.

    Этот пользователь поблагодарил CityAceE за это полезное сообщение:

    Oleg N. Cher(30.06.2025)

  5. #45

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    403
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сейчас в конфиге эмуляторе AY временно посадил на F400. Подумалось: может быть, и стоит его там оставить, предусмотрев дополнительный дешифратор и разбив диапазон F000-F7FF по аналогии с описанным в журнале дешифратором на F800-FFFF? Конфликты с чем-то будут?

  6. #46

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,650
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Подумалось: может быть, и стоит его там оставить, предусмотрев дополнительный дешифратор и разбив диапазон F000-F7FF по аналогии с описанным в журнале дешифратором на F800-FFFF?
    Прекрасная идея, думаю, что именно на ней стоит остановиться!

    Цитата Сообщение от Pyk Посмотреть сообщение
    Конфликты с чем-то будут?
    На диапазон F000-F7FF автор компьютера предложил вешать дополнительную ВВ55, чтобы подключать дополнительную периферию. И первым делом он подключил туда программатор. Схема и программа для программатора были опубликованы в журнале М-К 07'1987. Это была вообще третья публикация про Специалист, то есть по сути это основы и некий стандарт. Я полез в опубликованную программу и посмотрел, что там для доступа используются ячейки F000-F003.

    О другом применении этого диапазона, за исключением монитора SP-580, я никогда не слышал.

    Получается, что адреса F400, при условии применения дополнительного дешифратора, и с программатором не будут конфликтовать, и будут соответствовать схеме, опубликованной 30 нет назад в журнале Радиоаматор. Хотя нет, с Радиоаматором я погорячился, там F000 предлагался. Но всё равно F400 тоже хорошо

    Если ни у кого возражений нет, то на этом и остановимся. Pyk уже сделал всё в Emu80, на подходе реализация в FPGA. Ну и ждём, чтобы то же самое было реализовано ещё в железе. Хорошо бы, если бы fifan добавил бы эту доработку в Линевский вариант. А поддержка этого дела потихоньку пилится. Во всяком случае кое-какую музыку уже проиграть можно. Также можно будет какую-нибудь игрушку озвучить.
    Последний раз редактировалось CityAceE; 01.07.2025 в 08:25.
    С уважением, Станислав.

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

  8. #47

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,650
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    оно не поёт, а код уходит непонятно куда-то.
    Нашёл и поборол. Теперь поёт и на i8080. Проблема была в том, что в коде активно используется самомодификация. И программа в процессе своей работы упорно подставляла в код инструкции Z80. Чуть приведу в порядок то, что получилось и выложу.
    С уважением, Станислав.

  9. #48

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

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    пригодился бы и для Вектора
    В преддверии Ретрограда-2025 очень даже пригодился бы.
    Больше игр нет

  10. #49

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,215
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,650
    Поблагодарили
    574 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    В преддверии Ретрограда-2025 очень даже пригодился бы.
    Не знаю насколько это в текущем виде можно будет использовать где-то, кроме отдельно проигрывателя. Я же просто в лоб команды менял. Оптимизации - ноль. Например, если подряд идут команды для работы с IX, то в каждой идёт сохранение, а потом восстановление задействованных регистров. По идее можно сохранение сделать один раз перед пачкой этих команд, а после один раз всё восстановить. Да и то, не все регистры необходимо сохранять/восстанавливать - нужно смотреть по контексту. Но на первом этапе уже хорошо то, что оно работает! А дальше, конечно, нужно долго и упорно всё доводить до ума.
    С уважением, Станислав.

  11. #50

    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,436
    Спасибо Благодарностей отдано 
    163
    Спасибо Благодарностей получено 
    190
    Поблагодарили
    121 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Порт программатора используется не только по своему назначению. Забываете про подключенный считыватель SD карты. Не будет ли он конфликтовать с AY?

Страница 5 из 26 ПерваяПервая 123456789 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. AY-3-8910 in FPGA
    от VELESOFT в разделе Звук
    Ответов: 18
    Последнее: 25.12.2015, 22:13
  2. AY-3-8910 к РК
    от Kakos_nonos в разделе Радио-86РК
    Ответов: 4
    Последнее: 24.05.2013, 12:10
  3. AY-3-8910
    от Eugeny в разделе Звук
    Ответов: 14
    Последнее: 05.09.2011, 17:11
  4. Продам AY-3-8910
    от crolicasm в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 17.03.2009, 15:25
  5. О портах AY-3-8910...
    от ILoveSpeccy в разделе Звук
    Ответов: 2
    Последнее: 02.07.2007, 15:02

Ваши права

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