Важная информация

User Tag List

Страница 3 из 15 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 150

Тема: Программирование для ПК 11/16 «Союз-Неон»

  1. #21
    Activist
    Регистрация
    18.04.2015
    Адрес
    г. Люберцы
    Сообщений
    342
    Спасибо Благодарностей отдано 
    103
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    26 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Немного не в тему, но раз уж зашла речь.
    Для Немиги был адаптирован Бейсик Вильнюс (датируется 1989-м годом), в частности, там реализован оператор PLAY, подобный тому что был на MSX. Сама Немига умеет проигрывать мелодии из последовательности нот указанной высоты и длительности - это реализовано на уровне прошивки ПЗУ.
    Есть BASIC посвежее, этого 2020 года, даже на УКНЦ работает: https://youtu.be/hR2SnZtH5pY
    Фишка там не в скорости, а в совместимости с BBC Бейсиком, хотя там пока не все реализовано (так нет встраиваемого ассемблера, тригометрических функций и наверняка чего то еще). Пишется на ассембре (причем не на macro-11, а на своëм тоже сделанном на этом бейсике).

    Здесь как-то попытались про него начать обсуждение, да как-то не пошло: https://zx-pk.ru/threads/30128-bbc-b...or-pdp-11.html

    Что касается воспроизведения мелодий на Союз-Неон, то язык описания мелодий сделали ну очень похоже на то как работает PLAY в MSX BASIC с AY3-8910. Только там текст нужно предварительно преобразовать в бинарный файл, а потом просто такие файлы копируешь в устройство "SN:" и в фоне играет музыка...

    P. S. Заставил себя таки вытащить исходники этой кухни из битого образа дискеты H.dsk и обновили страницу https://github.com/troosh/pk11-16/tree/master/Snd (там внизу описательная часть).

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

    nzeemin (02.09.2020)

  3. #22
    Veteran Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,722
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    403
    Поблагодарили
    256 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от troosh Посмотреть сообщение
    Заставил себя таки вытащить исходники этой кухни из битого образа дискеты H.dsk и обновили страницу https://github.com/troosh/pk11-16/tree/master/Snd (там внизу описательная часть).
    Спасибо, у меня как раз назревает потребность написать небольшую мелодию для Союз-Неона.

    А не поможете разобраться с 256-цветным режимом? Может быть в исходниках ВПО есть какая-то подсказка.
    Делаю всё по документации – пробовал макросы PLCRE и PLCREx (коды обращения к регистру оконного менеджера 16 и 17 соответственно), передавал им код режима VM8 (число 7). Отрабатывает без ошибок (бит C равен нулю, код операции 16 или 17 в таблице параметров остаётся положительным). Код режима меняется на 40007, то есть добавляется признак палитры №1.
    Копирую этот код 40007 в таблицу описания area и запускаю макрос ARCRE (код 46). Он также отрабатывает без ошибок. Забираю id вновь созданной area, копирую в таблицу пораметров view.
    Макросом VWCRE создаю view, всё проходит без ошибок, на экране появляется окно...
    НО пиксели в окне отображаются как 4-битные!
    Палитру я сгенерил в виде градиента. В area пишу байты с постепенно возрастающими номерами цветов. Казалось бы, должен быть плавный переход оттенков. Но точки рисуются через одну: светлая, тёмная. Такое может быть только если Союз-Неон считает каждые 4 бита за отдельный цвет точки.
    Что я делаю не так?
    manwe.pdp-11.ru

  4. #23
    Veteran Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,722
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    403
    Поблагодарили
    256 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    troosh, я тут просматриваю исходники ВПО, но не очень догоняю, потому что слаб в макросах.

    В документации к Союз-Неону описан макрос ARCRE с пятью параметрами, последний из которых mdpl - видеорежим и номер палитры. К примеру, 40007 означает палитру №1 и режим 256 цветов, если я правильно понимаю.
    Вроде как макрос ARCRE кладёт этот mdpl в пятое слово таблицы AREA descriptor, описанной в WDC.MAC. Правда, там это пятое слово называется start of TAS (начало таблицы адресов строк).

    Не могу понять - подпрограмма W$ARCR из файла WD2.MAC вообще использует это пятое слово mdpl в таблице? Где и как количество цветов передаётся, собственно, в железо?


    И ещё: макрос PLCRE должен возвращать ошибку, если не удалось зарезервировать палитру - так сказано в документации. Но не сказано в каком виде ошибка: бит C или инверсия кода команды (как делает ARCRE в случае ошибки). В исходниках я этого не смог найти - как будто вообще нет проверки на ошибку.
    Последний раз редактировалось Manwe; 02.09.2020 в 21:54.
    manwe.pdp-11.ru

  5. #24
    Activist
    Регистрация
    18.04.2015
    Адрес
    г. Люберцы
    Сообщений
    342
    Спасибо Благодарностей отдано 
    103
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    26 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    troosh, я тут просматриваю исходники ВПО, но не очень догоняю, потому что слаб в макросах.
    К сожалению, чтоб ответить на эти вопросы мне нужно самому разобраться со всем этим. Я пока пока не готов этому посвятить достаточно времени.

    Но пока вот выложил найденную демку эмулятора графического дисплея (наверное это что-то вроде КГЦД, который я никогда не видел и не знаю что это такое). Но увы VM8 там не поддержан. Выглядит это так:

    Нажмите на изображение для увеличения. 

Название:	cap_gtdemo_00_00_20_02.jpg 
Просмотров:	82 
Размер:	77.4 Кб 
ID:	73420

    (видео) (исходники)

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

    Titus (05.09.2020)

  7. #25
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,578
    Спасибо Благодарностей отдано 
    1,233
    Спасибо Благодарностей получено 
    1,799
    Поблагодарили
    691 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от troosh Посмотреть сообщение
    (видео)
    Что за странный формат видео? У меня один плейер его вообще не показывает, а другой глючит. Может лучше выложить в чем-то более популярном?

  8. #26
    Activist
    Регистрация
    18.04.2015
    Адрес
    г. Люберцы
    Сообщений
    342
    Спасибо Благодарностей отдано 
    103
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    26 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Что за странный формат видео? У меня один плейер его вообще не показывает, а другой глючит. Может лучше выложить в чем-то более популярном?
    Да обычный VP9 в контейнере webm (правда очень низкий битрейт), основной формат YouTube. SMplayer и ffplay под виндой без проблем показывает.
    Я вначале хотел в gif записать, но там почему-то адское мигание получалось (на каких-то кадрах черный фон в белый цвет превращался).

  9. #27
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,997
    Спасибо Благодарностей отдано 
    285
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Что за странный формат видео?
    Не часто, но встречал в инете

    Цитата Сообщение от Titus Посмотреть сообщение
    У меня один плейер его вообще не показывает, а другой глючит.
    MPC без каких либо вопросов и проблем

  10. #28
    Veteran Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,722
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    403
    Поблагодарили
    256 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от troosh Посмотреть сообщение
    К сожалению, чтоб ответить на эти вопросы мне нужно самому разобраться со всем этим. Я пока пока не готов этому посвятить достаточно времени.
    Но пока вот выложил найденную демку эмулятора графического дисплея (наверное это что-то вроде КГЦД, который я никогда не видел и не знаю что это такое). Но увы VM8 там не поддержан.
    Жаль 16-цветный режим я могу выдавать, а 256-цветный (самый интересный!) не получается
    manwe.pdp-11.ru

  11. #29
    Veteran Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,722
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    403
    Поблагодарили
    256 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В техническом описании обнаружилась одна из возможных причин:
    Код:
            ┌───────────────────────────────────┐
    256 байт│ Палитра‐0 многоцветного режима    │ старшие байты
            ├───────────────────────────────────┤
    256 байт│ Палитра‐0 многоцветного режима    │ младшие байты
            └───────────────────────────────────┘
    Разумеется, в описании системных вызовов не сказано, что 16-битные значения палитры нужно разбивать на два блока. Качество документации удручает.

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

    Ну да, так и оказалось.

    Нажмите на изображение для увеличения. 

Название:	palette-test.jpg 
Просмотров:	70 
Размер:	23.7 Кб 
ID:	73425

    Пожалуй, приведу код формирования палитры.

    Код:
    GeneratePalette:
            MOV #Palette+256.,R1    ; palette's middle address
            MOV #64.,R0             ; generate 64*4 shades of grey
    1:          MOV R0,R2
                DEC R2              ; current colour value
                CLR R3              ; index in the table of bits
                CLR R4              ; 16-bit combined color value
                MOV #6,R5           ; process 6 bits
    2:              ROR R2          ; get a bit
                    BCC 3
                        BIS BitsRed(R3),R4
                        BIS BitsGreen(R3),R4
                        BIS BitsBlue(R3),R4
    3:              TST (R3)+       ; next bit in the table
                SOB R5,2
                MOV #4,R5           ; save colour 4 times
    4:              SWAB R4
                    MOVB R4,-(R1)       ; save high byte of color value
                    SWAB R4
                    MOVB R4,256.(R1)    ; save low byte of color value
                SOB R5,4
            SOB R0,1
            RET
    
    BitsRed:    .WORD 0,10,20,2000,4000,10000
    BitsGreen:  .WORD 40,100,200,20000,40000,100000
    BitsBlue:   .WORD 0,1,2,4,400,1000  ; strange RGB bit mapping
    P.S. палитра должна получиться серой. Похоже, в эмуляторе какой-то глюк с интерпретацией 16-битного цвета.
    Последний раз редактировалось Manwe; 05.09.2020 в 21:04.
    manwe.pdp-11.ru

  12. Эти 5 пользователя(ей) поблагодарили Manwe за это полезное сообщение:

    IgorR76 (05.09.2020), nzeemin (06.09.2020), Titus (05.09.2020), troosh (05.09.2020), xolod (05.09.2020)

  13. #30
    Activist
    Регистрация
    18.04.2015
    Адрес
    г. Люберцы
    Сообщений
    342
    Спасибо Благодарностей отдано 
    103
    Спасибо Благодарностей получено 
    31
    Поблагодарили
    26 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Поздравляю!

    Цитата Сообщение от Manwe Посмотреть сообщение
    Разумеется, в описании системных вызовов не сказано, что 16-битные значения палитры нужно разбивать на два блока. Качество документации удручает.
    Да нет же, это ещё хорошая документация, раз по ней удалось разобраться. Это в железке так странно сделали - описание железки и помогло.

    Цитата Сообщение от Manwe Посмотреть сообщение
    P.S. палитра должна получиться серой. Похоже, в эмуляторе какой-то глюк с интерпретацией 16-битного цвета.
    Думаю для исправления эмулятора нужны четыре градиента, кроме белого ещë и отдельно по каждой цветовой компоненте. Так сразу будет всë понятно. Ну и желательно готовый бинарник.

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

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

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

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

Похожие темы

  1. Эмулятор Союз-Неон ПК-11/16 - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 335
    Последнее: 01.04.2024, 11:33
  2. Ответов: 0
    Последнее: 17.01.2015, 21:02
  3. ПК-11 'Союз-Неон'
    от Keeper в разделе ДВК, УКНЦ
    Ответов: 12
    Последнее: 16.10.2013, 05:07

Ваши права

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