Çekirdek örnekleri: KabaLang Minimal Kernel (MPL-2.0) ve üç küçük çekirdek
KabaLang'ın --yalin kipiyle yazılmış, işletim sistemi olmadan açılan x86-64 çekirdeği: kesmeler, 100 Hz zamanlayıcı, Türkçe Q klavye, Türkçe karakterli VGA ekranı, bellek haritası, sayfa ayırıcı, kabuk. Ek örnekler: merhaba, asal sayılar, VGA renkleri.
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# VGA renkleri: metin kipinde her hücre iki bayttır (karakter + renk).
|
||||
# Renk baytının üst 4 biti zemin, alt 4 biti yazı rengidir.
|
||||
|
||||
VGA = 0xB8000
|
||||
|
||||
fonksiyon hucre(satir, sutun, karakter, renk):
|
||||
bellek_yaz16(VGA + (satir * 80 + sutun) * 2, renk * 256 + karakter)
|
||||
|
||||
fonksiyon yaz(m, satir, sutun, renk):
|
||||
i = 0
|
||||
iken bayt(m, i) != 0:
|
||||
hucre(satir, sutun + i, bayt(m, i), renk)
|
||||
i = i + 1
|
||||
|
||||
fonksiyon onaltilik(n, satir, sutun, renk):
|
||||
RAKAM = "0123456789ABCDEF"
|
||||
hucre(satir, sutun, bayt(RAKAM, saga_kaydir(n, 4)), renk)
|
||||
hucre(satir, sutun + 1, bayt(RAKAM, bit_ve(n, 15)), renk)
|
||||
|
||||
dongu i icinde 0..80 * 25 - 1:
|
||||
bellek_yaz16(VGA + i * 2, 0x0720)
|
||||
yaz("VGA renk tablosu: satir = zemin, sutun = yazi rengi", 0, 2, 0x0F)
|
||||
|
||||
dongu zemin icinde 0..7:
|
||||
dongu yazi icinde 0..15:
|
||||
renk = zemin * 16 + yazi
|
||||
onaltilik(renk, 2 + zemin * 2, 2 + yazi * 4, renk)
|
||||
|
||||
yaz("Kendi renginizi deneyin: renk baytini degistirip yeniden calistirin.", 19, 2, 0x0B)
|
||||
dur()
|
||||
Reference in New Issue
Block a user