|
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 35
|
|
Вывод текста без WinAPI24.12.2017, 13:20. Показов 2146. Ответов 23
Метки нет (Все метки)
Здравствуйте!
Пишу OS на C++. Как мне создать функцию printf() без использования айостримов и т.д.? Как создать функции ввода? И все чтобы работало на чистом железе. Заранее спасибо!
0
|
|
| 24.12.2017, 13:20 | |
|
Ответы с готовыми решениями:
23
Создание окна без WinAPI Перетаскивание окна за любую его точку без WinApi
|
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
| 24.12.2017, 13:26 | |
|
Если на чистом железе (т.е. без операционной системы) - смотри документацию к микроконтролеру, к которому пишешь, какие там регистры отвечают за передачу на дисплей и т.п.
0
|
|
|
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 35
|
|
| 24.12.2017, 17:38 [ТС] | |
|
0
|
|
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
| 24.12.2017, 17:44 | |
|
У каждой материнки есть как минимум биос, т.е. тоже изначально заложенная программа, к которой можно было бы как-то сделать вывод. Но в в вашем вопросе было "сделать всё с нуля", значит и сделано будет даже не для отдельной материнской платы, а для отдельной конфигурации оборудования. Если конечно за эту бессмысленную затею таки возьмётесь. Но предлагаю для начала потренироваться "на кошках", т.е. на оценочных платах каких-нибудь микроконтроллеров.
0
|
|
|
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
|
|
| 26.12.2017, 09:28 | |
|
Kukushkha, можете ещё здесь спросить: https://www.cyberforum.ru/low-level/
0
|
|
|
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 35
|
||||
| 26.12.2017, 11:12 [ТС] | ||||
|
Ладно! Допустим, я посмотрел документацию к И узнал что за это отвечают регистры AX и AH(Например). Тогда каким кодом мне произвести запись буквы Е в AX и буквы Б AH?
0
|
||||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||
| 26.12.2017, 12:31 | |||
|
Добавлено через 1 минуту
0
|
|||
|
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 35
|
|||
| 26.12.2017, 16:46 [ТС] | |||
Я имею в виду код C++. Какой функцией.
0
|
|||
|
Заклинатель змей
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,605
|
|
| 26.12.2017, 23:36 | |
|
Kukushkha, а у вас есть компилятор С++ под вашу ОС?
1
|
|
|
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 35
|
||
| 27.12.2017, 12:57 [ТС] | ||
|
Вы имеете ввиду OS которую пишу Я или ту, которая у меня сейчас на компе?
0
|
||
|
Заклинатель змей
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,605
|
|
| 27.12.2017, 13:16 | |
|
Kukushkha, для той, на которую пишите. Это называется "Целевая платформа"
0
|
|
|
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 35
|
||
| 27.12.2017, 14:27 [ТС] | ||
|
Вы хотите чтобы я искал компилятор C++ для BIOS?
0
|
||
|
Заклинатель змей
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,605
|
|
| 27.12.2017, 14:42 | |
|
Kukushkha, а как вы будете запускать ваш С++ код или готовый исполнимый файл?
Добавлено через 2 минуты Могу ещё предложить int 09h из старых добрых времён
0
|
|
|
|
||
| 28.12.2017, 07:26 | ||
Сообщение было отмечено SatanaXIII как решение
Решениеint XXНа х86 архитектуре видепамять мапится на определенный адрес (на память не скажу, нужно гуглить), соответственно что бы напечатать текст на экран нужно скопировать твой текст в эту память. Можно задавать смещение на экране. Например base_address + 80 выведет тебе текст на второй строчке. Конечно речь о real mode, если у тебя например protected или любой другой, то фукнция печати должна переводить процессор в real, копировать строку в видеопамять и возвращаться в исходный режим.
0
|
||
|
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 35
|
||||||||
| 28.12.2017, 11:17 [ТС] | ||||||||
Или вы предлагаете написать это на ASM, а потом запускать функции на C++? Если да, то как?
0
|
||||||||
|
Заклинатель змей
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,605
|
|
| 28.12.2017, 15:56 | |
|
Kastaneda, прямое отображение в память, сейчас вообще можно так? (Я работал с асмом только в ДОС и не силён в его современных возможностях)
0
|
|
|
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 35
|
|||
| 02.01.2018, 15:41 [ТС] | |||
|
Не по теме: Кстати, с новым годом! Добавлено через 18 часов 21 минуту Я тут хабр почитал... Узнал про архитектуру и формат ядра. С архитектурой разобрался, но еще не решил: "экзо" или "гибридное" ядро. А формат, без понятия. Что такое "elf", "a.out", "coff"?
0
|
|||
|
|
|||
| 04.01.2018, 20:17 | |||
Сообщение было отмечено DrOffset как решение
Решение Хотя если ты пишешь и постигаешь все с нуля то норм, узнаешь об этом когда дойдешь до исполнения программ.Добавлено через 5 минут Советую http://wiki.osdev.org/Main_Page тонна полезного материла на эту тему. Скопипастил оттуда много кода в свой древний рабочий проект)
0
|
|||
| 04.01.2018, 20:17 | |
|
Помогаю со студенческими работами здесь
20
Как создать winform в vs2012(3) быстро и без WinAPI, сохранив возможности С++ Вывод текста в WinAPI WinAPI и вывод текста Странный вывод текста в WinApi Вывод текста из файла в диалоговое окно winAPI Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|