07.01.2013 Views

Linux i386 Önyükleme Kodu NASIL

Linux i386 Önyükleme Kodu NASIL

Linux i386 Önyükleme Kodu NASIL

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.10. Muhtelif<br />

Kalanlar destek i¸slevleri ve de˘gi¸skenleridir.<br />

<strong>Linux</strong> <strong>i386</strong> <strong>Önyükleme</strong> <strong>Kodu</strong> <strong>NASIL</strong><br />

/* linux/Makefile hedefleri tarafından olu¸sturulan makrolar:<br />

* include/linux/compile.h ve include/linux/version.h */<br />

kernel_version: .ascii UTS_RELEASE<br />

.ascii " ("<br />

.ascii LINUX_COMPILE_BY<br />

.ascii "@"<br />

.ascii LINUX_COMPILE_HOST<br />

.ascii ") "<br />

.ascii UTS_VERSION<br />

.byte 0<br />

///////////////////////////////////////////////////////////////////////////////<br />

default_switch() { cli; outb(0x80, 0x70); } /* Kesmeleri ve NMI’yi iptal et */<br />

bootsect_helper(ES:BX); /* bkz. Bootsect Yardımcısı (sayfa: 16) */<br />

///////////////////////////////////////////////////////////////////////////////<br />

a20_test()<br />

{<br />

FS = 0;<br />

GS = 0xFFFF;<br />

CX = A20_TEST_LOOPS; // i.e. 32<br />

AX = FS:[0x200];<br />

do {<br />

a20_test_wait:<br />

FS:[0x200] = ++AX;<br />

delay();<br />

} while (AX==GS:[0x210] && ––CX);<br />

return (AX!=GS[0x210]);<br />

// ZF==0 (i.e. NZ/NE, a20_test!=0) means test passed<br />

}<br />

///////////////////////////////////////////////////////////////////////////////<br />

// klavye komut kuyru˘gu bo¸s mu, bak<br />

empty_8042()<br />

{<br />

int timeout = 100000;<br />

for (;;) {<br />

empty_8042_loop:<br />

if (!––timeout) return;<br />

delay();<br />

inb(0x64, &AL); // 8042 durum portu<br />

if (AL & 1) { // çıktı<br />

delay();<br />

inb(0x60, &AL); // oku<br />

no_output:} else if (!(AL & 2)) return; // girdi yok<br />

}<br />

}<br />

///////////////////////////////////////////////////////////////////////////////<br />

// CMOS saatini oku, AL’den saniyeyi döndür, video.S’de kullanılır<br />

gettime()<br />

{<br />

int1A/AH=02h();<br />

http://belgeler.org <strong>Linux</strong> Kitaplı˘gı 30 / 77

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!