Comments 23
Интересно, а автор вообще смотрел на код, который ему нейронка сгенерила?
sizeof(char*) на х86 = 4 байта, на х64 = 8 байт. Тебе любой компилятор покажет варнинг и такая ошибка разбирается в любых, даже самых гнусных и убогих видосах на ют.
Это даже комментировать не буду:typedef unsinged int u32 // unsinged вместо unsigned
returnsizeof(text) // слитно написано
constchar* text // без пробела
Массив codes[] это просто мем. O(n) вместо O(1).
inb(0x64) в цикле = polling
В реальных ОС используют как бы irq1 для клавы)
Нет проверки для границ экрана.
0x07 захардкожен во всех вызовах.
Дальше читать даже не буду, статья - мусор.
Так, давайте все распишем
1. Я переносил статью с vc.ru, могли косяки произойти, как например с return
2. Не понял про массив
3. То что используют IRQ1 я знаю, я решил немного нестандартно сделать
Почему тогда авторство оргиниальное не указано? Перенос статьи с WC.ru? Ты издеваешься? Тут перенесенные статьи никому не сдались, окстись и перестань копипастить булщит.
это моя статья, сначала я ее писал на хабре, не дождался одобрения первой статьи и пошел на vc.ru дальше я перенес оттуда эту 2 статью которая изначально была здесь и висела в редакторе пока первую не одобрят
ну то есть статья на wc.ru такой же кал, как и эта. Оправдания "я просто скопировал с туалет точка ру" не актуальны. Статья сама по себе каловая, допущено огромное кол-во ошибок. Бессмысленная функция transform(), которая создает массив сканкодов, но заполняет их просто по порядку, с излишне сложной логикой. Поллинг вместо прерываний при обработке клавы, нерабочее состояние модификаторов, хардкод для scan set 1 без проверки. Элементарное непонимание того, что sizeof(text) возвращает размер указателя, а не длину строки. Передача video_memory в каждую функцию, вместо глобальной переменной, отсутствие проверки границ экрана, хардкод цвета в виде 0x07. Код просто напросто отвратителен, понимаение автора - нулевое. И все эти ошибки выявлены были просто при беглом осмотре, страшно представить, что там творится, если детально разбирать это достояние ии. Статья написана, чтобы просто быть написанной. Искренне жалко людей, которые кидают это себе в закладки.
.
Интересно, на чем это все закончится.
Я в свое время не осилил работу с жестким диском из защищенного режима, на этом мои потуги с написанием OC в x86 закончились))
папка lib: sdtlib.h файл kernel.c: #include <stdlib.h>. Вы хоть смотрите на код и на названия когда выкладывайте
Если честно то сырая фигня какая-то.
P.S. я тут как раз закончил клавиатуру ps/2 пилить из матрицы кнопок и мк атмега32:

почему атмега32? Потому что под руку попался :-)
автор не понимает то, о чем пишет
а вообще все эти статьи на тему - пишем свою операционную систему заканчиваются на бутлодере
вбан
Низкоуровневый АД: пишем ОС. Часть 2 — модули и ввод