Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet
-
SuperMax
- Advanced Member
- Сообщения: 2576
- Зарегистрирован: 27.08.2012,11:38
- Откуда: Красноярск
- Благодарил (а): 7 раз
- Поблагодарили: 23 раза
- Контактная информация:
-
Конкурсы
Вклад в сообщество
Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet
Статус проекта сетевых дисков для AZ*
проект сетевых дисков "получил время" на разработку
и соответственно я хорошо продвинулся в этом направлении
прямо сейчас уже работает демон обслуживающий монтирование R/O любых образов дисков из архива https://mirrors.pdp-11.ru/
максимальное количество одновременно открытых файлов для работы - 20тысяч
демон способен обслужить до 5k запросов в секунду
полный набор команд демона, я еще не реализовал и не прикрутил средства борьбы с DDOS [у меня есть опыт и готовые модули для этого тоже есть]
теперь можно очертить проект сетевых дисков более четко:
1. диски из архива можно монтировать прямо при помощи API
2. максимальная длина пути - 384 символа (самый длинный путь в архиве сейчас 366, соответственно точно хватит )
3. все диски из архива монтируются только R/O режиме
4. пользователи смогут заводить свои персональные зоны с дисками которые можно будет монтировать в монопольном RW режиме (он будет по-умолчанию)
иначе говоря это будут "персональные облака типа one drive" [TODO]
5. для авторизации будет использовать функционал HOF - иначе говоря это будет единая учетка и для рекордов и для своих облачных дисков
6. ограничений на количество ваших AZ контроллеров работающих под одной учеткой не будет.
7. будет реализована полностью сетевая загрузка с сетевых дисков - иначе говоря можно будет вообще не хранить свои образа на карточке [TODO]
https://forum.maxiol.com/index.php?act= ... entry58589
проект сетевых дисков "получил время" на разработку
и соответственно я хорошо продвинулся в этом направлении
прямо сейчас уже работает демон обслуживающий монтирование R/O любых образов дисков из архива https://mirrors.pdp-11.ru/
максимальное количество одновременно открытых файлов для работы - 20тысяч
демон способен обслужить до 5k запросов в секунду
полный набор команд демона, я еще не реализовал и не прикрутил средства борьбы с DDOS [у меня есть опыт и готовые модули для этого тоже есть]
теперь можно очертить проект сетевых дисков более четко:
1. диски из архива можно монтировать прямо при помощи API
2. максимальная длина пути - 384 символа (самый длинный путь в архиве сейчас 366, соответственно точно хватит )
3. все диски из архива монтируются только R/O режиме
4. пользователи смогут заводить свои персональные зоны с дисками которые можно будет монтировать в монопольном RW режиме (он будет по-умолчанию)
иначе говоря это будут "персональные облака типа one drive" [TODO]
5. для авторизации будет использовать функционал HOF - иначе говоря это будет единая учетка и для рекордов и для своих облачных дисков
6. ограничений на количество ваших AZ контроллеров работающих под одной учеткой не будет.
7. будет реализована полностью сетевая загрузка с сетевых дисков - иначе говоря можно будет вообще не хранить свои образа на карточке [TODO]
https://forum.maxiol.com/index.php?act= ... entry58589
-
SuperMax
- Advanced Member
- Сообщения: 2576
- Зарегистрирован: 27.08.2012,11:38
- Откуда: Красноярск
- Благодарил (а): 7 раз
- Поблагодарили: 23 раза
- Контактная информация:
-
Конкурсы
Вклад в сообщество
Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet
Статус проекта сетевых дисков для AZ*
1. будет 4 пространства сетевых дисков
N:/ - это архив в текущем виде - те все что угодно можно монтировать
R:/ репозиторий - буду формировать внятный набор дисков - прошу коллег подключаться к этому процессу
P:/ - персональное облако, будет доступно и на запись
но доступ только для себя
S:/ - shared - облако для возможности делится с кем-то дисками и доступом к ним
досутп будет управляемый
————-
по времени реализации
N: и R: - будут сейчас
P: и S: - позднее тк это надо дописать авторизацию и прочее в демоне
ибо сейчас он просто сетевой сервер
1. будет 4 пространства сетевых дисков
N:/ - это архив в текущем виде - те все что угодно можно монтировать
R:/ репозиторий - буду формировать внятный набор дисков - прошу коллег подключаться к этому процессу
P:/ - персональное облако, будет доступно и на запись
но доступ только для себя
S:/ - shared - облако для возможности делится с кем-то дисками и доступом к ним
досутп будет управляемый
————-
по времени реализации
N: и R: - будут сейчас
P: и S: - позднее тк это надо дописать авторизацию и прочее в демоне
ибо сейчас он просто сетевой сервер
-
SuperMax
- Advanced Member
- Сообщения: 2576
- Зарегистрирован: 27.08.2012,11:38
- Откуда: Красноярск
- Благодарил (а): 7 раз
- Поблагодарили: 23 раза
- Контактная информация:
-
Конкурсы
Вклад в сообщество
Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet
Прошивка 00017
Прошивка 00017
в прошивке переработано
в прошивке переработано/добавлено
1. работа бита синхронизация экрана
теперь включение синхронизации фиксирует отображаемую страницу и горизонтальный скролл(сдвиг)
стратегия управления вертиклаьным скроллом исключает его дерганье при изменении отображемой страницы "на лету" (те во время отображения) - результат - более удобное получения более качественной картинки при изменении информации
2. работа сети
- сделано корректное отображение и сохранение дат/времени создания файлов втч и внутри образов RT11 c учетом часового пояса (физически время в контроллере считается GMT но учитывается коррекция часового пояса для WEBDAV)
- сделано управляемое TCP window для более оптимальной работы сервисов
- добавлена поддержка сервисов HOF
- добавлен функционал сетевых дисков
расширение функционала монтирования дисков см команды первый блок
команды 011 003 004 014
полноценная поддержка реализована утилитами
пример утилиты AZSMNT - просмотр назначений дисков втч. и сетевых
пример утилиты - AZDIR - просмотр директории локального диска
(сетевые директории в V17 просматривать пока нельзя)
пример утилиты AZMNT
пример утилиты AZUMNT
Сетевые пространства имен получили буквенные наименования
D5=0:/disks/rt11bk.DSK - это локальный диск, так как имя диска 0:
D4=N:/RT11BK.DSK - это сетевой диск, так как имя диска N:
Поддерживаемые в V17 пространства имен:
N: - сетевой диск из архива - те любой образ c https://mirrors.pdp-11.ru/
данный путь считается корнем
соответственно для монтирования диска OVERKIL.IMG
расположенного по пути
https://mirrors.pdp-11.ru/_bk0010-11-11 ... ction/IMG/
надо указать
N:/_bk0010-11-11m/soft/SuperMax_collection/IMG/OVERKIL.IMG
Указать можно как и утилите монтирования, но и в самом AZ.INI
Важно! регистр имеет значение
есть поддежка русских букв КОИ7/КОИ8
Второе реализованное пространство в V17 имен это R: - репозиторий
это будет репозиторий избранного софта
Ограничения:
- максимальная длина пути - 384 символа (самый длинный путь в архиве сейчас 366, соответственно точно хватит )
- все диски из архива (пространство имен N:/) монтируются только R/O режиме
- все диски из репозитория (пространство имен R:/) монтируются только R/O режиме
3. команды
командный режим реализован через HTTP интерфейс
добавлены две команды
CMD.REBOOT - вызывает перезапуска AZБК
CMD.SCREENSHOT - вызывает формирование скриншота на основании дефолтных настроек экрана
результатом команды является файл-скриншота
распаковать его можно на сайте
https://master.pdp-11.ru/screen_unpack/
Прошивка 00017
Прошивка 00017
в прошивке переработано
в прошивке переработано/добавлено
1. работа бита синхронизация экрана
теперь включение синхронизации фиксирует отображаемую страницу и горизонтальный скролл(сдвиг)
стратегия управления вертиклаьным скроллом исключает его дерганье при изменении отображемой страницы "на лету" (те во время отображения) - результат - более удобное получения более качественной картинки при изменении информации
2. работа сети
- сделано корректное отображение и сохранение дат/времени создания файлов втч и внутри образов RT11 c учетом часового пояса (физически время в контроллере считается GMT но учитывается коррекция часового пояса для WEBDAV)
- сделано управляемое TCP window для более оптимальной работы сервисов
- добавлена поддержка сервисов HOF
- добавлен функционал сетевых дисков
расширение функционала монтирования дисков см команды первый блок
команды 011 003 004 014
полноценная поддержка реализована утилитами
пример утилиты AZSMNT - просмотр назначений дисков втч. и сетевых
пример утилиты - AZDIR - просмотр директории локального диска
(сетевые директории в V17 просматривать пока нельзя)
пример утилиты AZMNT
пример утилиты AZUMNT
Сетевые пространства имен получили буквенные наименования
D5=0:/disks/rt11bk.DSK - это локальный диск, так как имя диска 0:
D4=N:/RT11BK.DSK - это сетевой диск, так как имя диска N:
Поддерживаемые в V17 пространства имен:
N: - сетевой диск из архива - те любой образ c https://mirrors.pdp-11.ru/
данный путь считается корнем
соответственно для монтирования диска OVERKIL.IMG
расположенного по пути
https://mirrors.pdp-11.ru/_bk0010-11-11 ... ction/IMG/
надо указать
N:/_bk0010-11-11m/soft/SuperMax_collection/IMG/OVERKIL.IMG
Указать можно как и утилите монтирования, но и в самом AZ.INI
Важно! регистр имеет значение
есть поддежка русских букв КОИ7/КОИ8
Второе реализованное пространство в V17 имен это R: - репозиторий
это будет репозиторий избранного софта
Ограничения:
- максимальная длина пути - 384 символа (самый длинный путь в архиве сейчас 366, соответственно точно хватит )
- все диски из архива (пространство имен N:/) монтируются только R/O режиме
- все диски из репозитория (пространство имен R:/) монтируются только R/O режиме
3. команды
командный режим реализован через HTTP интерфейс
добавлены две команды
CMD.REBOOT - вызывает перезапуска AZБК
CMD.SCREENSHOT - вызывает формирование скриншота на основании дефолтных настроек экрана
результатом команды является файл-скриншота
распаковать его можно на сайте
https://master.pdp-11.ru/screen_unpack/
Прошивка 00017
-
SuperMax
- Advanced Member
- Сообщения: 2576
- Зарегистрирован: 27.08.2012,11:38
- Откуда: Красноярск
- Благодарил (а): 7 раз
- Поблагодарили: 23 раза
- Контактная информация:
-
Конкурсы
Вклад в сообщество
Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet
Сетевое API - AZSERVER
редакция от 2025-01-11
Концепция сетевых дисков:
1. Технически это блочный интерфейс к любому файлу расположенному в пространстве имен.
2. На данный момент поддержаны 2 пространства имен N:\ и R:\
3. Пространство N: - сетевой диск из архива - те любой образ c https://mirrors.pdp-11.ru/
данный путь считается корнем
соответственно для монтирования диска OVERKIL.IMG
расположенного по пути
https://mirrors.pdp-11.ru/_bk0010-11-11 ... ction/IMG/
надо указать следующее имя файла
N:/_bk0010-11-11m/soft/SuperMax_collection/IMG/OVERKIL.IMG
4. Форматы запросов и ответов (упакованные структуры) указаны ниже.
Лицензирование
В связи с тем, что сетевое API создается в расчете на все ретроплатформы, API является открытым решением, единственным условием использования которого в своих решениях является обязательное указание
MAXIOL Landisk technology ®
это должно быть указано и в документации на Ваше решение и при использовании данной функции на стороне ретроплатформы.
Данные для подключения:
DNS name - landisk.maxiol.com
TCP Port - 34162
Структуры
при открытии файла блок данных (data) рассматривается как пакет информации
пакет информации настоятельно рекомендуется заполнять полностью
// номер платформы
1 - PDP-11 - БК 10/11M
2 - PDP-11 - остальные - те ДВК Э60 УКНЦ оригинальные машины итд
3 - MSX
если вашей платформы нет в списке - пишите мне
// тип контроллера
1 - AZБК
2 - AZ - для всех остальных PDP-11 машин
3 - Carnivore2+
для добавления в список Вашего контроллера - пишите мне.
это стандартный набор информации о файле-образе в FATформате.
Для расчета CRC используется ф-я
[attachmentid=10855]
Стратегия работы
1. первая команда должна быть открытие файла (LANDISK_CMD_OPEN)
при запросе на открытие надо указать блок параметров (landisk_reqest_status_t)
в ответ будет прислан блок landisk_answer_t но data[512] надо рассматривать как landisk_answer_status_t
2. далее можно посылать команды чтения
3. на данный момент поддержаны команды LANDISK_CMD_OPEN, LANDISK_CMD_READ, LANDISK_CMD_WRITE, LANDISK_CMD_CLOSE
4. В конце работы желательно (но не обязательно) послать команды закрытия дисков.
Ограничения:
1. не более 100 запросов в секунду с одного IP (иначе сработает блок анти-DDOS и забанит данный IP на некоторое время)
2. не более 10ти "висящих" соединений на IP.
ps: актуальную версию смотрите тут https://forum.maxiol.com/index.php?s=&s ... st&p=59531
редакция от 2025-01-11
Концепция сетевых дисков:
1. Технически это блочный интерфейс к любому файлу расположенному в пространстве имен.
2. На данный момент поддержаны 2 пространства имен N:\ и R:\
3. Пространство N: - сетевой диск из архива - те любой образ c https://mirrors.pdp-11.ru/
данный путь считается корнем
соответственно для монтирования диска OVERKIL.IMG
расположенного по пути
https://mirrors.pdp-11.ru/_bk0010-11-11 ... ction/IMG/
надо указать следующее имя файла
N:/_bk0010-11-11m/soft/SuperMax_collection/IMG/OVERKIL.IMG
4. Форматы запросов и ответов (упакованные структуры) указаны ниже.
Лицензирование
В связи с тем, что сетевое API создается в расчете на все ретроплатформы, API является открытым решением, единственным условием использования которого в своих решениях является обязательное указание
MAXIOL Landisk technology ®
это должно быть указано и в документации на Ваше решение и при использовании данной функции на стороне ретроплатформы.
Данные для подключения:
DNS name - landisk.maxiol.com
TCP Port - 34162
Структуры
Код: Выделить всё
// структура пакета запроса
typedef __packed struct landisk_reqest
{
unsigned int num_block; // номер блока (32 бита)
unsigned short int command; // команда
unsigned char reserved[32]; // зарезервировано
unsigned char data[512]; // данные - если они отправляются
char path[386]; // путь до диска
unsigned short int crc; // CRC команды
} landisk_reqest_t;
Код: Выделить всё
// структура пакета открытия файла, информационные параметры
typedef __packed struct landisk_reqest_status
{
unsigned long timestamp; // локальное время контроллера (unix-time)
unsigned long uptime; // аптайм в секундах
unsigned long ip_addr; // локальный ip адрес контроллера
unsigned long dns_srv1; // ip адреса DNS-серверов
unsigned long dns_srv2;
unsigned short int tzone; // таймзона в минутах
unsigned short int platform; // номер платформы
unsigned short int controller; // тип контроллера
unsigned short int version; // версия прошивки контроллера
char build[32]; // дата билда прошивки контроллера
char url[64]; // URL производителя контроллера
} landisk_reqest_status_t;
// номер платформы
1 - PDP-11 - БК 10/11M
2 - PDP-11 - остальные - те ДВК Э60 УКНЦ оригинальные машины итд
3 - MSX
если вашей платформы нет в списке - пишите мне
// тип контроллера
1 - AZБК
2 - AZ - для всех остальных PDP-11 машин
3 - Carnivore2+
для добавления в список Вашего контроллера - пишите мне.
Код: Выделить всё
// команды
#define LANDISK_CMD_OPEN 1 // в ответ успешность/ошибка, и если успешно - размер диска
#define LANDISK_CMD_READ 2 // чтение блока
#define LANDISK_CMD_WRITE 3 // запись блока
#define LANDISK_CMD_CLOSE 4 // закрытие файла
#define LANDISK_CMD_OPENDIR 5 // открыть оглавление по указанному пути
#define LANDISK_CMD_READDIR 6 // прочитать одну запись оглавления в буфер
#define LANDISK_CMD_SEARCH_REQ 7 // послать запрос поиска
#define LANDISK_CMD_READ_SREQ 8 // прочитать одну запись результата поиска в буфер
Код: Выделить всё
// структура пакета ответа с данными
typedef __packed struct landisk_answer
{
unsigned short int result; // результат
unsigned char data[512]; // принятые данные
unsigned short int crc; // CRC ответа
} landisk_answer_t;
Код: Выделить всё
// структура пакета ответа статуса файла
typedef __packed struct landisk_answer_status
{
unsigned char fattr; // File attribute
unsigned short int fdate; // Fat date
unsigned short int ftime; // Fat time
unsigned int fsize; // File size
} landisk_answer_status_t;
Код: Выделить всё
// ответы
#define LANDISK_ANS_OK 0x0000 // команда выполнена успешно
#define LANDISK_ANS_ERROR 0x0001 // флаг ошибки, устанавливается при любой ошибке
#define LANDISK_ANS_ACCESS_DENIED 0x0002 // нет доступа, устанавливается при любой ошибке доступа
#define LANDISK_ANS_NEED_REG 0x0004 // нет доступа - нужна регистрация
#define LANDISK_ANS_RO_ONLY 0x0008 // нет доступа на запись- данный диск только для чтения
#define LANDISK_ANS_NOT_EXISTS 0x0010 // нет данного образа - неверный путь до файла образа или директории
[attachmentid=10855]
Стратегия работы
1. первая команда должна быть открытие файла (LANDISK_CMD_OPEN)
при запросе на открытие надо указать блок параметров (landisk_reqest_status_t)
в ответ будет прислан блок landisk_answer_t но data[512] надо рассматривать как landisk_answer_status_t
2. далее можно посылать команды чтения
3. на данный момент поддержаны команды LANDISK_CMD_OPEN, LANDISK_CMD_READ, LANDISK_CMD_WRITE, LANDISK_CMD_CLOSE
4. В конце работы желательно (но не обязательно) послать команды закрытия дисков.
Ограничения:
1. не более 100 запросов в секунду с одного IP (иначе сработает блок анти-DDOS и забанит данный IP на некоторое время)
2. не более 10ти "висящих" соединений на IP.
ps: актуальную версию смотрите тут https://forum.maxiol.com/index.php?s=&s ... st&p=59531
-
SuperMax
- Advanced Member
- Сообщения: 2576
- Зарегистрирован: 27.08.2012,11:38
- Откуда: Красноярск
- Благодарил (а): 7 раз
- Поблагодарили: 23 раза
- Контактная информация:
-
Конкурсы
Вклад в сообщество
Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet
Программирование для AZБК
В связи с возникающими вопросами об использовании возможностей AZБК была создана вот эта тема:
Программирование для AZБК
нашел немного времени и восстановил стенд для записи видео с VGA и обновил видео с примерами
Работа с расширенной графикой напрямую - 256ти цветные видеорежимы: работа с регистрами сдвига (скрола)
в этой теме я выложил перепакованное качественно видео с примерами работы с графикой напрямую.
№1. Замостим плиткой 32х32 весь экран 256х256 256цветов
№2. Замостим плиткой 32х32 весь экран 256х256 256цветов и затем заполним рандомными пикселями (цвет и позиция случайны) хочу обратить внимание на качество генератора псевдослучайных чисел в AZБК (и скорость установки точек)
№3. Используем длинный рулон: видеорежим 256х256 256цветов - отображаемая часть 64кБ
а весь рулон - 128кБ
для демонстрации замостим плиткой первого типа 32х32 первые 64кБ и плиткой второго типа - следующие 64кБ
далее по таймеру будем крутить рулон вверх вниз
№4. Используем широкий рулон: видеорежим 256х256 256цветов - отображаемая часть 64кБ
а весь рулон - 128кБ
для демонстрации замостим плиткой первого типа 32х32 левый экран и плиткой второго типа - следующие правый
далее по таймеру будем крутить рулон вправо-влевоз
№5. Используем длинный и широкий рулон: видеорежим 256х256 256цветов - отображаемая часть 64кБ
а весь экран - 256кБ (512х512).
те у нас в ширину два "экрана" и "в высоту" два - всего 4
для демонстрации замостим плиткой все 4 экрана дабы их отличать;
далее по таймеру будем крутить рулон по горизонтали и вертикали;
№6. Сделаем тоже что мы делали с помощью блиттера ранее - см пример (4. Копирование спрайта с восстановлением фона (команды 11 21 и 42)
далее по таймеру будем крутить рулон по горизонтали и вертикали). Визуально шарик движется поверх фона, технически у нас фон на нижнем слое, а шарик на верхнем. Перемещение шарика сделано при помощи регистров скролла по вертикали и по горизонтали. Это хороший пример оптимизации.
№7. Сделаем тоже что мы делали с помощью блиттера ранее - см пример (4. Копирование спрайта с восстановлением фона (команды 11 21 и 42)
далее по таймеру будем крутить рулон по горизонтали и вертикали). Визуально шарик движется поверх фона, технически у нас фон на нижнем слое, а шарик на верхнем. Перемещение шарика сделано при помощи регистров скролла по вертикали и по горизонтали. Это хороший пример оптимизации. Теперь мы еще добавим эффект вращения шарика - переключая страницы памяти. Каждый кадр (60fps ) - новое движения шарика и новая фаза его поворота.
В связи с возникающими вопросами об использовании возможностей AZБК была создана вот эта тема:
Программирование для AZБК
нашел немного времени и восстановил стенд для записи видео с VGA и обновил видео с примерами
Работа с расширенной графикой напрямую - 256ти цветные видеорежимы: работа с регистрами сдвига (скрола)
в этой теме я выложил перепакованное качественно видео с примерами работы с графикой напрямую.
№1. Замостим плиткой 32х32 весь экран 256х256 256цветов
№2. Замостим плиткой 32х32 весь экран 256х256 256цветов и затем заполним рандомными пикселями (цвет и позиция случайны) хочу обратить внимание на качество генератора псевдослучайных чисел в AZБК (и скорость установки точек)
№3. Используем длинный рулон: видеорежим 256х256 256цветов - отображаемая часть 64кБ
а весь рулон - 128кБ
для демонстрации замостим плиткой первого типа 32х32 первые 64кБ и плиткой второго типа - следующие 64кБ
далее по таймеру будем крутить рулон вверх вниз
№4. Используем широкий рулон: видеорежим 256х256 256цветов - отображаемая часть 64кБ
а весь рулон - 128кБ
для демонстрации замостим плиткой первого типа 32х32 левый экран и плиткой второго типа - следующие правый
далее по таймеру будем крутить рулон вправо-влевоз
№5. Используем длинный и широкий рулон: видеорежим 256х256 256цветов - отображаемая часть 64кБ
а весь экран - 256кБ (512х512).
те у нас в ширину два "экрана" и "в высоту" два - всего 4
для демонстрации замостим плиткой все 4 экрана дабы их отличать;
далее по таймеру будем крутить рулон по горизонтали и вертикали;
№6. Сделаем тоже что мы делали с помощью блиттера ранее - см пример (4. Копирование спрайта с восстановлением фона (команды 11 21 и 42)
далее по таймеру будем крутить рулон по горизонтали и вертикали). Визуально шарик движется поверх фона, технически у нас фон на нижнем слое, а шарик на верхнем. Перемещение шарика сделано при помощи регистров скролла по вертикали и по горизонтали. Это хороший пример оптимизации.
№7. Сделаем тоже что мы делали с помощью блиттера ранее - см пример (4. Копирование спрайта с восстановлением фона (команды 11 21 и 42)
далее по таймеру будем крутить рулон по горизонтали и вертикали). Визуально шарик движется поверх фона, технически у нас фон на нижнем слое, а шарик на верхнем. Перемещение шарика сделано при помощи регистров скролла по вертикали и по горизонтали. Это хороший пример оптимизации. Теперь мы еще добавим эффект вращения шарика - переключая страницы памяти. Каждый кадр (60fps ) - новое движения шарика и новая фаза его поворота.
-
SuperMax
- Advanced Member
- Сообщения: 2576
- Зарегистрирован: 27.08.2012,11:38
- Откуда: Красноярск
- Благодарил (а): 7 раз
- Поблагодарили: 23 раза
- Контактная информация:
-
Конкурсы
Вклад в сообщество
Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet
Программирование для AZБК
Сейчас рассмотрим примеры использования блиттера:
Работа с блиттером
в этой теме я выложил перепакованное качественно видео с примерами работы с графикой напрямую.
№0.Заполнение константой - команда 0.
заполнение экрана разноцветными прямоугольниками - проверка работы команды копирования константы. Каждый прямоугольник рисуется во время гашения экрана (по VSYNC ). Скорость вывода прямоугольников соответствует частоте кадров - 60Hz.
№1. Копирование спрайта безусловное - команда 11.
производится копирование спрайта хранящегося линейно в прямоугольную позицию в экране. Коррекция палитры не проводилась, соответственно изображение не такое красивое как могло бы быть. В дальнейших примерах это будет исправлено и показано как это делать.
№2. Копирование спрайта c наложением по SRC - команда 21.
производится копирование спрайта хранящегося линейно в позицию в экране с наложением. Наложение идет только по контуру самого спрайта. Коррекция палитры не проводилась, соответственно изображение не такое красивое как могло бы быть. В дальнейших примерах это будет исправлено и показано как это делать.
№3. Копирование спрайта безусловное, с анимацией и движением (команды 0 и 11)
сначала тут идет отчистка экрана при помощи ручного запуска блиттера, затем по таймеру VSYNC идет отрисовка спрайта.
№4. Копирование спрайта с восстановлением фона - выполняется пакет команд 11 21 и 42:
сначала фон сохраняется в память, затем отрисовывается шарик, в следющей итерации фон восстанавливается, вычисляется новая позиция шарика, с нее сохраняется фон в память и отрисовывается шарик. Тут уже заметна реальная скорость блиттера - 3я команда по отрисовке немного не успевает выполнится за время гашения экрана и в верхних строках экрана шарик отрисован не весь - он еще не успел отрисоваться.
№5. Подкладывание "под фон" (команды 11 33 и 42). Это усложнение примера 4, тут тоже
сначала фон сохраняется в память, затем отрисовывается шарик, в следющей итерации фон восстанавливается, вычисляется новая позиция шарика, с нее сохраняется фон в память и отрисовывается шарик.
Отличие в математике наложения - тут один из кодов цвета фона объявлен как прозрачный и шарик накладывается только на него, остальные коды являются непрозрачными и наложения спрайта не происходит. Пример интересен простотой создания красивого эффекта и возможностью использовать иной код прозрачности.
(напомню - код прозрачности в схеме наложения слоев экрана всегда 0. )
№6. Подкладывание под фон (команды 11 33 и 42) + вращение. Это усложнение примера 4, тут тоже
сначала фон сохраняется в память, затем отрисовывается шарик, в следющей итерации фон восстанавливается, вычисляется новая позиция шарика, с нее сохраняется фон в память и отрисовывается шарик.
Отличие в математике наложения - тут один из кодов цвета фона объявлен как прозрачный и шарик накладывается только на него, остальные коды являются непрозрачными и наложения спрайта не происходит. Вращение реализуется переключением спрайта который "подкладывается".
№7. Подкладывание под фон (команды 11 33 и 42) + дрожание экрана - горизонтальный и вертикальные скроллинги. Это усложнение примера 4, тут тоже
сначала фон сохраняется в память, затем отрисовывается шарик, в следющей итерации фон восстанавливается, вычисляется новая позиция шарика, с нее сохраняется фон в память и отрисовывается шарик.
Отличие в математике наложения - тут один из кодов цвета фона объявлен как прозрачный и шарик накладывается только на него, остальные коды являются непрозрачными и наложения спрайта не происходит. Эффект дрожжания экрана реализуется при помощи регистров вертикального и горизонтального скроллинга.
№8 Заполнение константой - команда 0, выжимаем максимальную скорость!
Это усложнение примера 0 -заполнение экрана разноцветными прямоугольниками - проверка работы команды копирования константы; Основное отличие от примера 0 команды блиттера выполняются не по кадровому таймеру, а в ручном конвеерном запуске. Как следствие получаем максимальную скорость вывода прямоугольников.
№9 Применение команды 51 - подкладывание под фон (команды 11 33 и 42) + 51ая команда при столкновении с границами экрана. 51ая команда это заполнение константой по контуру спрайта, удобно для отображения столкновений или попаданий в какой-либо объект. В старых играх часто попадание так отмечалось.
№10. Подкладывание под фон (команды 11 33 и 42), но с применением координаты Y. Это технический пример использования в команде не адресного смещения, а координатного.
Сейчас рассмотрим примеры использования блиттера:
Работа с блиттером
в этой теме я выложил перепакованное качественно видео с примерами работы с графикой напрямую.
№0.Заполнение константой - команда 0.
заполнение экрана разноцветными прямоугольниками - проверка работы команды копирования константы. Каждый прямоугольник рисуется во время гашения экрана (по VSYNC ). Скорость вывода прямоугольников соответствует частоте кадров - 60Hz.
№1. Копирование спрайта безусловное - команда 11.
производится копирование спрайта хранящегося линейно в прямоугольную позицию в экране. Коррекция палитры не проводилась, соответственно изображение не такое красивое как могло бы быть. В дальнейших примерах это будет исправлено и показано как это делать.
№2. Копирование спрайта c наложением по SRC - команда 21.
производится копирование спрайта хранящегося линейно в позицию в экране с наложением. Наложение идет только по контуру самого спрайта. Коррекция палитры не проводилась, соответственно изображение не такое красивое как могло бы быть. В дальнейших примерах это будет исправлено и показано как это делать.
№3. Копирование спрайта безусловное, с анимацией и движением (команды 0 и 11)
сначала тут идет отчистка экрана при помощи ручного запуска блиттера, затем по таймеру VSYNC идет отрисовка спрайта.
№4. Копирование спрайта с восстановлением фона - выполняется пакет команд 11 21 и 42:
сначала фон сохраняется в память, затем отрисовывается шарик, в следющей итерации фон восстанавливается, вычисляется новая позиция шарика, с нее сохраняется фон в память и отрисовывается шарик. Тут уже заметна реальная скорость блиттера - 3я команда по отрисовке немного не успевает выполнится за время гашения экрана и в верхних строках экрана шарик отрисован не весь - он еще не успел отрисоваться.
№5. Подкладывание "под фон" (команды 11 33 и 42). Это усложнение примера 4, тут тоже
сначала фон сохраняется в память, затем отрисовывается шарик, в следющей итерации фон восстанавливается, вычисляется новая позиция шарика, с нее сохраняется фон в память и отрисовывается шарик.
Отличие в математике наложения - тут один из кодов цвета фона объявлен как прозрачный и шарик накладывается только на него, остальные коды являются непрозрачными и наложения спрайта не происходит. Пример интересен простотой создания красивого эффекта и возможностью использовать иной код прозрачности.
(напомню - код прозрачности в схеме наложения слоев экрана всегда 0. )
№6. Подкладывание под фон (команды 11 33 и 42) + вращение. Это усложнение примера 4, тут тоже
сначала фон сохраняется в память, затем отрисовывается шарик, в следющей итерации фон восстанавливается, вычисляется новая позиция шарика, с нее сохраняется фон в память и отрисовывается шарик.
Отличие в математике наложения - тут один из кодов цвета фона объявлен как прозрачный и шарик накладывается только на него, остальные коды являются непрозрачными и наложения спрайта не происходит. Вращение реализуется переключением спрайта который "подкладывается".
№7. Подкладывание под фон (команды 11 33 и 42) + дрожание экрана - горизонтальный и вертикальные скроллинги. Это усложнение примера 4, тут тоже
сначала фон сохраняется в память, затем отрисовывается шарик, в следющей итерации фон восстанавливается, вычисляется новая позиция шарика, с нее сохраняется фон в память и отрисовывается шарик.
Отличие в математике наложения - тут один из кодов цвета фона объявлен как прозрачный и шарик накладывается только на него, остальные коды являются непрозрачными и наложения спрайта не происходит. Эффект дрожжания экрана реализуется при помощи регистров вертикального и горизонтального скроллинга.
№8 Заполнение константой - команда 0, выжимаем максимальную скорость!
Это усложнение примера 0 -заполнение экрана разноцветными прямоугольниками - проверка работы команды копирования константы; Основное отличие от примера 0 команды блиттера выполняются не по кадровому таймеру, а в ручном конвеерном запуске. Как следствие получаем максимальную скорость вывода прямоугольников.
№9 Применение команды 51 - подкладывание под фон (команды 11 33 и 42) + 51ая команда при столкновении с границами экрана. 51ая команда это заполнение константой по контуру спрайта, удобно для отображения столкновений или попаданий в какой-либо объект. В старых играх часто попадание так отмечалось.
№10. Подкладывание под фон (команды 11 33 и 42), но с применением координаты Y. Это технический пример использования в команде не адресного смещения, а координатного.
-
SuperMax
- Advanced Member
- Сообщения: 2576
- Зарегистрирован: 27.08.2012,11:38
- Откуда: Красноярск
- Благодарил (а): 7 раз
- Поблагодарили: 23 раза
- Контактная информация:
-
Конкурсы
Вклад в сообщество
Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet
Прошивка V17 от 2025-02-01
Добавлено
- функционал работы с сетевыми дисками
расширение функционала монтирования дисков см команды первый блок
команды 011 003 004 014
Исправлено
- мелкие баги при работе с каталогами RT11
- сделана добивка нолями при выравнивании по размеру блока в RT11 (нужно для работы с текстовыми файлами через WEBDAV)
Прошивка STM32 v17 для AZ*
данная прошивка для AZ-МПИ AZ-УКНЦ AZ-QBUS v1.xx и 2.xx
прошивка для GAL-ок или EPM240 прежняя, менять не надо
Важный момент, не забудьте явно проставить в блоке NETWORK свой часовой пояс
иначе время будет GMT
Добавлено
- функционал работы с сетевыми дисками
расширение функционала монтирования дисков см команды первый блок
команды 011 003 004 014
Исправлено
- мелкие баги при работе с каталогами RT11
- сделана добивка нолями при выравнивании по размеру блока в RT11 (нужно для работы с текстовыми файлами через WEBDAV)
Прошивка STM32 v17 для AZ*
данная прошивка для AZ-МПИ AZ-УКНЦ AZ-QBUS v1.xx и 2.xx
прошивка для GAL-ок или EPM240 прежняя, менять не надо
Важный момент, не забудьте явно проставить в блоке NETWORK свой часовой пояс
иначе время будет GMT
-
SuperMax
- Advanced Member
- Сообщения: 2576
- Зарегистрирован: 27.08.2012,11:38
- Откуда: Красноярск
- Благодарил (а): 7 раз
- Поблагодарили: 23 раза
- Контактная информация:
-
Конкурсы
Вклад в сообщество
Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet
После начала разработки контроллеров AZ встал вопрос о написании и оформлении документации, за не имением лучшего было принято решение оформлять всё на форуме https://forum.maxiol.com/index.php?showforum=121
С точки зрения удобства это неплохой вариант, хоть и версия IPB у меня без полноценного WYSIWYG-редактора, часть оформления понимает, но не все.
Соответственно я давно хотел найти какой-то нормальный WIKI-движок, но который бы был удобен в работе: иначе говоря, чтобы процесс оформления документации в нем был как в обычном офисе - без всяких мерзких разметок, тегов и прочей гадости (я пробовал движок WikiMedia - жуть, можно умереть прежде чем что-то оформишь нормально).
И вот в очередной раз я решил обратить внимание на решение на яве - XWIKI и на прошлой неделе разобрался с ее установкой на мою систему.
Он нормально работает с Oracle, живет в контейнере томката, без проблем пробрасывается через апач.
Редактор - полноценный WYSIWYG, картинки/файлы/таблицы итд можно вставлять просто из буфера по CRTL+C/V. Очень удобно в работе.
Вот начал писать документацию - к примеру:
https://azwiki.maxiol.com/xwiki/bin/vie ... 0%B2%20AZ/
С точки зрения удобства это неплохой вариант, хоть и версия IPB у меня без полноценного WYSIWYG-редактора, часть оформления понимает, но не все.
Соответственно я давно хотел найти какой-то нормальный WIKI-движок, но который бы был удобен в работе: иначе говоря, чтобы процесс оформления документации в нем был как в обычном офисе - без всяких мерзких разметок, тегов и прочей гадости (я пробовал движок WikiMedia - жуть, можно умереть прежде чем что-то оформишь нормально).
И вот в очередной раз я решил обратить внимание на решение на яве - XWIKI и на прошлой неделе разобрался с ее установкой на мою систему.
Он нормально работает с Oracle, живет в контейнере томката, без проблем пробрасывается через апач.
Редактор - полноценный WYSIWYG, картинки/файлы/таблицы итд можно вставлять просто из буфера по CRTL+C/V. Очень удобно в работе.
Вот начал писать документацию - к примеру:
https://azwiki.maxiol.com/xwiki/bin/vie ... 0%B2%20AZ/
-
SuperMax
- Advanced Member
- Сообщения: 2576
- Зарегистрирован: 27.08.2012,11:38
- Откуда: Красноярск
- Благодарил (а): 7 раз
- Поблагодарили: 23 раза
- Контактная информация:
-
Конкурсы
Вклад в сообщество
Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet
Прошивка 00018
Прошивка содержит множество исправлений и является финальной кумулятивной версией 17й прошивки
Исправления
- IMA ADPCM;
- работа с образами RT11;
- стартовая процедура, теперь при нарушении стартовой последовательности (зависании на первом шаге к примеру), срабатывает авторестарт;
- SETUP теперь не затирает секцию LOGO;
- улучшена работа HOF и Landisk
В прошивке изменилось все - надо перепрошить/перезалить
- ПЛИС
- STM32
- ROM
Прошивка
https://forum.maxiol.com/index.php?s=&s ... st&p=59775
И теперь можно играть в Dangerous Dave in the Haunted Mansion
качать тут
https://hof.maxiol.com/top/10
после регистрации, в самом дейве можно войти в сеть для регистрации рекордов и ачивок!
Прошивка содержит множество исправлений и является финальной кумулятивной версией 17й прошивки
Исправления
- IMA ADPCM;
- работа с образами RT11;
- стартовая процедура, теперь при нарушении стартовой последовательности (зависании на первом шаге к примеру), срабатывает авторестарт;
- SETUP теперь не затирает секцию LOGO;
- улучшена работа HOF и Landisk
В прошивке изменилось все - надо перепрошить/перезалить
- ПЛИС
- STM32
- ROM
Прошивка
https://forum.maxiol.com/index.php?s=&s ... st&p=59775
И теперь можно играть в Dangerous Dave in the Haunted Mansion
качать тут
https://hof.maxiol.com/top/10
после регистрации, в самом дейве можно войти в сеть для регистрации рекордов и ачивок!
-
SuperMax
- Advanced Member
- Сообщения: 2576
- Зарегистрирован: 27.08.2012,11:38
- Откуда: Красноярск
- Благодарил (а): 7 раз
- Поблагодарили: 23 раза
- Контактная информация:
-
Конкурсы
Вклад в сообщество
Контроллер псевдодиска на MicroSD для ДВК / УКНЦ / original PDP-11 / БК-0010 / БК-0011 / БК-0011М с Ethernet
Прошивка 00019
Удален OPL2
Ускорен блиттер
https://forum.maxiol.com/index.php?s=&s ... st&p=59949
ускорение блиттера получилось вполне заметное
18ая

19ая

Удален OPL2
Ускорен блиттер
https://forum.maxiol.com/index.php?s=&s ... st&p=59949
ускорение блиттера получилось вполне заметное
18ая
19ая