FreeBASIC

Aus Lowlevel
Version vom 16. Februar 2008, 14:49 Uhr von Taljeth (Diskussion | Beiträge) (Testkernel in BASIC)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation,

Ob man BASIC für einen Kernel benutzen kann, ist in erster Linie eine akademische Frage. Der typische BASIC-Programmierer hat nicht die Kenntnisse, ein OS zu schreiben, und die Fortgeschritteneren wollen mit BASIC in aller Regel nichts zu tun haben.

Der Vollständigkeit halber: Es geht. Ich habe dazu FreeBASIC als Compiler benutzt.

Testkernel in BASIC

<freebasic>DIM video AS BYTE POINTER DIM hello AS BYTE POINTER

video = &Hb8000

hello = strptr("Hello world")

WHILE *hello <> 0

   *video = *hello
   hello = hello + 1
   video = video + 2

WEND

DO : LOOP

CONST mb_magic = &H1BADB002 CONST mb_flags = 3

ASM fb_RtInit:

   ret

mb_header:

   .align 4
   .int mb_magic
   .int mb_flags
   .int -mb_magic-mb_flags

END ASM</freebasic>

Gebaut wird das ganze mit den folgenden Befehlen:

fbc -c kernel.bas
ld -Ttext=0x100000 kernel.o -o basic.krn