Muss man im Textmodus dem Computer irgendwie sagen, das man den Graphikspeicher geändert hat, weil bei mir ist es so, das qemu irgentwann einfach aufhört, den Text auszugeben.
09. November 2026, 18:31
' Das selbe wie init.c nur jetzt in Freebasic
#include "console.bi"
extern "C"
sub init() export
clsc()
const hwStg = "Hallo world"
dim as integer i = 0
dim as byte ptr video = VIDEOPTR
dim as byte ptr hw = @hwStg
' ZStrings haben ein Nullbyte als Abschluss
' Ein paar Probeaufrufe
video[0] = &h25
video[344] = &h60
while hw[i] <> 0
' Zeichen i in den Videospeicher kopieren
video[i*2] = hw[i]
' 0x07 = Hellgrau auf Schwarz
video[i*2+1] = &h07
i += 1
'putchr(hw[i],&h07)
wend
'setcolor(2,0)
'kprintf("HelloWelt")
'kprintf("HexTest:%i", &h80000000)
'kprintf("NowInHex: %X", &h80000000)
end sub
end extern#include "console.bi"
' Der Screen befindet lässt sich linear mit Offsets ab 0xB8000 ansprechen.
' 0x07 = 0000 0111
extern "C"
dim shared as byte bgcolor = &h07 ' Hintergrund: 0x07 = Hellgrau auf Schwarz
dim shared as integer spos = 0 ' Prosition auf dem Bildschirm
declare sub scrolldown()
'declare function putChr(char as ubyte, colorS as ubyte) as integer
declare function printHex(i as integer, location as byte ptr) as integer
declare function printDec(i as integer, location as byte ptr) as integer
sub clsc() export
dim as integer i
dim as integer ptr p = VIDEOPTR
for i = 0 to 20*25*2 - 1
p[i] = &h07400723 ' Clean up space.
'putChr(&h23,&h07)
'putChr(&h40,&h07)
next i
spos = 0 ' Reset virtual cursor
end sub
....zu zString) Das funktioniert alles wenn man die clsc() Funktion auslässt.Ohne die clsc-Funktion sieht man dann aber noch die Ausgaben vom BIOS, oder?
zum Stack) Hoffe ich. Allerdings ist der init Funktion noch die _start() Funktion vorgeschaltet. Dies hab ich aus http://www.lowlevel.eu/wiki/Teil_4_-_Hello_World übernommen und sie wird auch aufgerufen.
Liegt das vielleicht daran, das ich qemu -kernel nutzte?