Написание нового графического API на Flat Assembler
"Системы состоят из подсистем, подсистемы — из под подсистем и так до бесконечности — именно поэтому мы проектируем снизу вверх."
Assembler умер, да здравствует король!
Всем доброго времени суток. Очень и очень мало прогрммистов сегодня работают на flat assembler, несмотря на все те возможности которые он дает. Сегодня я хочу рассказать вам о том что сподвергло меня изучать flat assembler,о том чего я добился и о том к чему иду. На самом деле программистов assembler языков осталось не так много. И в 2022 году вдруг я начал его учить.
И зачем же начинать учить ассемблер спустя десятилетие с эпохи его востребованности?
Все дело в том что уже на протяжениии некоторого времени я работал над попыткой создания своего движка для игр.
И я решил что и библиотека для графикии у меня будет своя... примитивная, но своя и я пошел к истоку графики, а именно video mode bios. Производители видеокарт не публикуют машинные коды своих изделий и я решил что нужно опираться на биос, который вшит во все пк и ноутбуки.Собственно с предисторией закончено перейду к некоторым примерам.
Сейчас к сожалению это работеает только в OS построенных с вложеным dos. Я ищу решение как запускать код в рельном режиме на нынешних ос. Так что если у кого нибудь есть мысли на этот счет пожалуйста напишите в коментаиях, мне также будет интересно узнать мнение об этой идее.
Вообще есть мысль о попытке загрузить в озу еще до винды но не уверен насколько это возможно... Мысль появилась, потому что и загрузчик винды и граб они все тоже в реальном режиме работают.
Ну и стоит довольно сложная задача по созданию целой кучи макросов, которые будут просчитывать геометрию расположения пикселей и т.д Опять же таки цвет пикселя будет определятся, тем что видно а что нет.
Подгрузка текстур
Ах да и немного про то как я собираюсь рендерить текстуры моделей... Недавно прочел статью о том как декодировать изображения в табицы. Точнее в 3 таблици одинаковые но с разными значениями от 0 до 255. То есть на один цвет в системе RGB по 3 числа в разных таблицах но в одинаковых позициях и соответственно я планирую написать нечто подобное но пока не уверен на как лучше это сделать - делать ли библиотеку на с которая будет получать изображения от движка и передовать значения библииотеке на ассемблере?
Таблица, кстати выглядела примерно так:
r
0 234 23
0 235 89
235 67 34
g
0 234 23
0 235 89
235 67 34
b
0 234 23
0 235 89
235 67 34
На этом пока всё. Будет интересно почитать ваше мнение и мысли о таком проекте.