IPB

Здравствуйте, гость ( Вход | Регистрация )

> Программирование под AZБК, методики использования возможностей AZБК
SuperMax
сообщение 3.11.2023, 16:33
Сообщение #1


Администратор
*****

Группа: Root Admin
Сообщений: 6 341
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Работа с палитрами

документация по палитрам тут

оба регистра доступны по записи и чтению, сохранение палитры осуществляется по записи в 177236
пример изменения дефолтной палитры RGB
Код

SetPal1:        mov     #177234,R0
                mov     #177236,R1

                mov     #256.,(R0)   ; адрес палитры
                mov     #10,(R1)    ; значение палитры - был черный фон - теперь темно-синий

                inc     (R0)
                mov     #15446,(R1)     ; значение палитры - был синий - стал - зеленый

                inc     (R0)
                mov     #77454,(R1)     ; значение палитры - был зеленый - стал желтый

                inc     (R0)
                mov     #46614,(R1)     ; значение палитры - был красный - стал коричневый
                return


загрузка палитры 256 цветов
Код

                mov        #177234,R0      ; установка палитры
                mov        #177236,R1
                mov        #newpal,R2
                mov        #256.,R3
                clr        R4
$rp0:            mov        R4,(R0)
                mov        (R2)+,(R1)
                inc        R4
                sob        R3,$rp0


newpal - метка массива палитры 256 цветов (256 слов)





--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
SuperMax
сообщение 7.11.2023, 11:05
Сообщение #2


Администратор
*****

Группа: Root Admin
Сообщений: 6 341
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Модели памяти разных конфигураций БКшек доступных в AZБК

стоит заострить внимание на их различии, и способах создания универсального ПО с использованием AZБК

думаю, те, кто изучали документацию на маппер SMK уже поняли, что это "нечто с чем-то"
на всякий случай напомню, только не пугайтесь
Код

теневые и прямые регистры управления памятью в SMK512
Память в контроллерах "АльтПро" разбита на страницы по 32 Кб, части (сегменты)
одной такой страницы подключаются в области адресов 100000-177777, сегменты разных страниц одновременно подключить нельзя!
Сегментами ниже называются фрагменты памяти по 10000 байт. (4кБ)
Название режима     Start      Std10        ОЗУ10        All           Std11          ОЗУ11        HLT10        HLT11
------------------------------------------------------------------------------------------------------
Код включения 8     160          60            120           20               140          40            100           20000
Код включения 2        1 110 000 110 000       1 010 000    10 000        1 100 000  100 000    1 000 000    10 000 000 000 000
Откл. мон. БК10                                +               +                                           +               +
Откл. мон. БК11M                  +                              +                             +                           +
Откл.окна1 БК11M     +             +               +               +
------------------------------------------------------------------------------------------------------
170000-177777         ПЗУ          7             7               3               7              7            7               7        
160000-167777         ПЗУ         ПЗУ            6                2               ПЗУ          6            6R/6           6    
------------------------------------------------------------------------------------------------------
150000-157777         1              5             5                0               -               5            5               5    
140000-147777         0              4             4                1                -              4            4               4
------------------------------------------------------------------------------------------------------
130000-137777         7              3             3                7               -              -            3               -        
120000-127777         6              2             2                6                -              -            2               -
------------------------------------------------------------------------------------------------------
110000-117777         -              -             1                5                -               -             1               -
100000-107777         -              -             0                4                -               -             0R               -
------------------------------------------------------------------------------------------------------
SYS              - используется для запуска, пересылки данных на БК10 и RAM-BIOS'ом (он - всегда в 0-й странице);
Std10, Std11 - стандартные, традиционные режимы работы для БК10 и 11М соответственно, Std10 используется также для пересылки данных на БК10;
ОЗУ10          - вместо монитора БК10 и ПЗУ-160000 подключается ОЗУ (на многих БК10 требуется простая доработка, иначе доп.
                       ОЗУ подключается параллельно ПЗУ монитора и приходится записывать в это ОЗУ копию монитора);
                        используется также для доступа к доп. памяти на БК11М;
All              - позволяет на БК10 подключить ОЗУ ко всему адресному пространству, что используется для загрузки копии
                        Вильнюсского Бейсика; применяется также для доступа к доп. памяти на БК11М;
ОЗУ11          - подключение ОЗУ вместо ПЗУ на БК11М, для отключения ПЗУ монитора БК11М простая доработка требуется всегда;
Hlt10, Hlt11 - открывают доступ к HALT-режиму процессора на БК10 и БК11М соответственно. Максимально "продвинутые" режимы:
                     везде, где можно, подключается ОЗУ вместо ПЗУ и на БК10 нижняя часть ОЗУ монитора защищена от записи (квази-ПЗУ) для
                     повышения глюкоустойчивости.


пугаться не будем и вернемся к вариантам конфигураций памяти БКшек которые могут существовать
Прикрепленное изображение
легенда
МОНИТОР - наличие доработки (или штатного функционала) его отключающей
037 - наличие доработки его отключающей

пояснения
изначально существовало 3 типа БК 0010(01)
- первые с фокалом, ПЗУ не отключалось аппаратно при установке внешних устройств. нужна доработка
- БКшки с бейсиком который отключался аппаратно - см варианты
- БКшки с мягкой клавиатурой - у них отключается не только бейсик но и ПЗУ монитора
добавилась новая конфигурация БКшки с возможностью отключить работу 037й для эмуляции БК11М

БК11М изначально два вида
- обычная БК11М не содержит в себе возможности отключения ПЗУ монитора
- новодел БК11М от Воланда - есть опция отключения ПЗУ монитора
добавляется конфигурация с отключенной 037й
(я еще такого не делал, но такая конфигурация будет)

Соответственно можно нарисовать худшую для программиста универсальную конфигурацию:
Прикрепленное изображение
тут мы рассматриваем конфигурацию памяти которая будет доступна на любой БКшке с AZБК
(стартовое ПЗУ и SETUP как раз работают в таких ограничениях)
те у нас может быть закрыто ПЗУшками монитора пространство 100-117k и 140-157k
и доступны для подключения страниц AZБК только окна 120-137k (2 окна по 4кБ) и 160-177k (2 окна по 4кБ, но у второго хвост обрезан)

Для создания простых универсальных программ (те которые вообще не вдаются в тип БК и ее конфигурацию памяти) эта конфигурация получается наиболее интересной тк мы просто пишем программу как хотим.

Однако, с точки зрения программирования, куда более удобна конфигурация с отключенным монитором:
Прикрепленное изображение
тут мы видим что первые 32кБ всё еще приколочены к БК, но зато верхние доступны для маппирования туда страниц AZБК
кстати именно в такой конфигурации работает Принц

Эта конфигурация удобна для создания серьезных программных продуктов которые нуждаются в большом количестве памяти одновременно доступной


Есть еще и исключительная конфигурация, которая пока сделана на БК-0010, но будет и на БК-0011М
Прикрепленное изображение
в этой конфигурации легко создать мультизадачную ОС тк вся память - только память AZБК
данная конфигурация скорее всего потребуется для самых крутых продуктов, но пока могу сказать, что она пока мало распространена, увы.


FAQ

Q: А можно что-то делать с ПЗУ которое желтое с пометкой FAST ROM?
A: Да, конечно, это окно памяти куда можно подключить всё, что угодно, просто там по-умолчанию ПЗУ КНГМД или ПЗУ монитора.

Q: У меня БК без доработки монитора - я правильно понимаю, что доработка отключения монитора очень важна ?
A: Да, это наиболее массовая конфигурация ибо она дает программисту уже 32кБ свободной для фантазии памяти.

Q: Правильно ли я понимаю, что в случае с AZБК экран может быть в любом месте ?
A: Да, совершенно верно - вы можете смело расположить программу с 0 до 77777, а экран подключать страницами со 120k или с 100k - или вообще прокручивать страницами со 160k - делайте как Вам удобно! AZБК не накладывает ограничений!



--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20.6.2025, 2:03