kernel.main.scm added by zenspider on Wed Jul 25 02:57:20 2012

(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
      )))