FreeBASIC — Änderungen 3208 → 3211

Zeile 42: Zeile 42:
 
<pre>fbc -c kernel.bas
 
<pre>fbc -c kernel.bas
 
ld -Ttext=0x100000 kernel.o -melf_i386 -o basic.krn</pre>
 
ld -Ttext=0x100000 kernel.o -melf_i386 -o basic.krn</pre>
 +
 +
== Anfang einer kleinen RTLib ==
 +
Möchte man FB-Funktionen wie IN oder OUT benutzen, muss erstmal eine Runtime-Lib her, die die Funktionen zur Verfügung stellt. Die ist normalerweise in C geschrieben, aber das geht (zumindest für einfache Dinge) auch in FREEBASIC. Hier Beispiele für IN und OUT:
 +
 +
<freebasic>
 +
SUB fb_Out CDECL ALIAS "fb_Out" (port as USHORT, value as UBYTE)
 +
    ASM
 +
        movw dx, [port]
 +
        movb al, [value]
 +
        outb dx, al
 +
    END ASM
 +
END SUB
 +
 +
FUNCTION fb_In CDECL ALIAS "fb_In" (port as USHORT) AS UBYTE
 +
    DIM value AS UBYTE
 +
 +
    ASM
 +
      movw dx, [port]
 +
      inb al, dx
 +
      mov [value], al
 +
    END ASM
 +
 +
    RETURN value
 +
END FUNCTION
 +
</freebasic>
 +
 +
Diese werden in die Datei rtlib.bas gepackt, danach wie oben angegeben kompiliert. Zum linken muss jetzt der folgende Befehl benutzt werden:
 +
<pre>ld -Ttext=0x100000 kernel.o rtlib.o -melf_i386 -o basic.krn</pre>
  
 
== Weblinks ==
 
== Weblinks ==