(import lolevel) (use numbers) (define (main magic addr) (let* ((ypos 0) (xpos 0) (cols 80) (rows 24) (vidmem (address->pointer #xFFFF8000000B8000)) (max (+ cols rows 2))) ;; Loops through the screen and clears it (do ((i 0 (+ 1 i))) ((< i max)) (pointer-u8-set! (pointer+ vidmem i) 0)) ;; prints the letter D (pointer-u8-set! (pointer+ vidmem (* 2 (+ xpos (* cols ypos)))) #\D) ;; sets the colour for D to be light grey (0x07) (pointer-u8-set! (pointer+ vidmem (+ 1 (* 2 (+ xpos (* cols ypos))))) #x07) ;; loop forever. You can add your kernel logic here (do () (#t) ;; insert code here )))