User Tag List

Страница 4 из 16 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 153

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

  1. #31

    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    2,048
    Спасибо Благодарностей отдано 
    1,141
    Спасибо Благодарностей получено 
    1,460
    Поблагодарили
    520 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  3. #32

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

    По умолчанию

    Процедура перевода цвета из отдельных значений red, green, blue в 16-битный цвет Союз-Неона:

    Код:
    ; input:    R1 = pointer to red,green,blue bytes (0..63)
    ; output:   R2 = 16-bit combined colour
    
    ConvertColour:
            PUSH R1
            PUSH R3
            PUSH R4
            CLR R2              ; combined colour
            CLR R3              ; index in the bits table
            MOV #6,R4           ; process 6 bits
    1:          RORB (R1)+      ; get a red bit
                BCC 2
                    BIS BitsRed(R3),R2
    2:          RORB (R1)+      ; get a green bit
                BCC 3
                    BIS BitsGreen(R3),R2
    3:          RORB (R1)       ; get a blue bit
                BCC 4
                    BIS BitsBlue(R3),R2
    4:          SUB #2,R1       ; set pointer back to red
                TST (R3)+       ; next bit in the table
            SOB R4,1
            POP R4
            POP R3
            POP R1
            RET
    ; strange RGB bit mapping
    BitsRed:    .WORD  0, 10, 20, 2000, 4000, 10000
    BitsGreen:  .WORD 40,100,200,20000,40000,100000
    BitsBlue:   .WORD  0,  1,  2,    4,  400,  1000
    Можно оптимизировать эту процедуру по скорости или по размеру, но так наглядней - понятен принцип кодирования цвета.

    Использование процедуры показано ниже. Допустим, у нас 256-цветный режим (1 байт на точку), в R0 лежит номер цвета в палитре. Тогда, получив с помощью процедуры ConvertColour закодированный цвет в R2, мы должны положить его старший байт в одно место в палитре, а младший байт - в другое, на 256 байт дальше. Такое неудобное (для программиста) устройство палитр в Союз-Неоне.

    Код:
            MOV #RGB,R1                 ; pointer to RGB values
            CALL ConvertColour
            MOVB R2,Palette+256.(R0)    ; save low byte
            SWAB R2
            MOVB R2,Palette(R0)         ; save high byte
    
    RGB:    .BYTE 37.,29.,11.
    Последний раз редактировалось Manwe; 07.09.2020 в 13:15.
    manwe.pdp-11.ru

  4. #33

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

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    Такое неудобное (для программиста) устройство палитр в Союз-Неоне.
    Можно предположить, что изначально палитра выбирались из 256 цветов, затем размер памяти в последний момент под неë удвоили. Возможно уже были тогда программы использующие палитру из 256 цветов, и чтобы не переделывать их в палитре 64к второй байт сделали уточняющим (если там мусор окажется или нули - ничего страшного не будет).
    Ну и так проще плату разводить, т.к. в область память палитры не нужно протаскивать дополнительные сигналы с шины данных.

  5. #34

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

    По умолчанию

    Для написания небольших программ под БК на линукс я пользуюсь macro11 в версии от Rhialto и скриптом на perl для линковки, который там же в директории obj2bin. Для линковки в БКшный *.bin есть тот же самый скрипт с моими правками.

    Пример команды сборки licheng.asm в БКшный licheng.bin (bash):

    n=licheng && macro11 -rt11 -o $n.obj -l $n.lst $n.asm && obj2bkb --binary --base=01000 --outfile=$n.bin $n.obj

    PS: Это был ответ на сообщение troosh чем можно линковать obj файлы от macro11. Цитирование почему-то пропало по дороге. Вебфорумы - зло.
    Последний раз редактировалось stasmas; 07.09.2020 в 12:37.

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

    troosh(07.09.2020)

  6. #35

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

    По умолчанию

    Кто-нибудь может скомпилировать SPEED.SAV под Союз-Неон? Хочется измерить его производительность.
    manwe.pdp-11.ru

  7. #36

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,504
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    SPEED.SAV под Союз-Неон?
    На числа, которые она выдаёт для умножения и деления, можно смело забить - их скорость определяется неправильно

  8. #37

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

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    Кто-нибудь может скомпилировать SPEED.SAV под Союз-Неон? Хочется измерить его производительность.
    На неоновских дисках исходников не видел. Но сам бинарник и видео его запуска под симулятором выложил здесь: https://github.com/troosh/pk11-16/tr...oft/Benchmark/

  9. #38

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,504
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пардон, я думал речь идёт про другой speed.sav

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

    Прогнал SPEED на 11/53 и прогоняю на 11/83

    Доверие результатам есть - на 11/83 для MOV R0,R0 показал чуть менее пяти. Но так же становится понятным, что тестовый блок небольшой и умещается в
    кэш.

    Из занимательного
    Код:
    MOV  R0,R0             0.20 mks, 4995.2 op/ms   1 mem,  0.20 mks/mem
    MOVB R0,R0             0.20 mks, 4995.2 op/ms   1 mem,  0.20 mks/mem
    DEC  R0                0.20 mks, 4995.1 op/ms   1 mem,  0.20 mks/mem
    ADD  R0,R0             0.20 mks, 4995.2 op/ms   1 mem,  0.20 mks/mem
    SUB  R0,R0             0.20 mks, 4994.9 op/ms   1 mem,  0.20 mks/mem
    CLR  R0                0.20 mks, 4995.0 op/ms   1 mem,  0.20 mks/mem
    TST  R0                0.20 mks, 4995.2 op/ms   1 mem,  0.20 mks/mem
    COM  R0                0.20 mks, 4995.1 op/ms   1 mem,  0.20 mks/mem
    NEG  R0                0.20 mks, 4995.1 op/ms   1 mem,  0.20 mks/mem
    BIS  R0,R0             0.20 mks, 4995.1 op/ms   1 mem,  0.20 mks/mem
    BIT  R0,R0             0.20 mks, 4995.2 op/ms   1 mem,  0.20 mks/mem
    XOR  R0,R0             0.20 mks, 4995.1 op/ms   1 mem,  0.20 mks/mem
    ROL  R0                0.20 mks, 4995.1 op/ms   1 mem,  0.20 mks/mem
    ROR  R0                0.20 mks, 4995.1 op/ms   1 mem,  0.20 mks/mem
    ASL  R0                0.20 mks, 4995.1 op/ms   1 mem,  0.20 mks/mem
    ASR  R0                0.20 mks, 4994.9 op/ms   1 mem,  0.20 mks/mem

  10. #39

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

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Пардон, я думал речь идёт про другой speed.sav
    Прогнал SPEED на 11/53 и прогоняю на 11/83
    А есть исходник, чтобы собрать под Союз-Неон?

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

    Цитата Сообщение от troosh Посмотреть сообщение
    видео его запуска под симулятором выложил здесь: https://github.com/troosh/pk11-16/tr...oft/Benchmark/
    Эмулятор не интересно
    manwe.pdp-11.ru

  11. #40

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,504
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    А есть исходник, чтобы собрать под Союз-Неон?
    А он что - не запускается под ним? Видео вроде как бы свидетельствует.

Страница 4 из 16 ПерваяПервая 12345678 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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