(setq welcomestring '"Tim OS Booted.") (string_to_buffer writefile hscreen welcomestring 0) (setq testline (new 256)) (setq i 0) (while (lt i 18) (readfile hmono testline (mul i SCREEN_WIDTH) 256) (writefile hmono testline (mul (add i 32) SCREEN_WIDTH) 256) (setq i (add i 1)) ) (setq hkm (openpath "/dev/kbdmouse")) (setq kbdmousebuffertimos (new 16)) (setq kbdmousebufferfocus (new 16)) (writefile hkm "kbdmousefocus" nil 64) (writefile hkm "kbdmousetimos" nil 64) (de handletextchars (hscreen kbdmousename row col name) (setq name (cdddr (strtok (car hscreen) "/"))) (setq row (eval (quality name '"row"))) (setq col (eval (quality name '"col"))) (writefile hscreen (add (eval (quality kbdmousename '"buffer")) 4) (rowcolify row col) 1) (setq gcol (add gcol 1)) (cond ((ge gcol TEXT_SCREEN_WIDTH) (setq gcol 0) (setq grow (add grow 1)) (cond ((ge grow TEXT_SCREEN_HEIGHT) (setq grow 0) ) ) ) ) ) (de kbdmousetimos (message wparm mx my) (readfile hkm kbdmousebuffertimos "kbdmousetimos" 16) (setq message (deref kbdmousebuffertimos 4)) (setq wparm (deref (add kbdmousebuffertimos 4) 4)) (setq mx (deref (add kbdmousebuffertimos 8) 4)) (setq my (deref (add kbdmousebuffertimos 12) 4)) (cond ((eqv message WM_CHAR) (handletextchars hscreen "kbdmousetimos") ) ) ) (de kbdmousefocus (x) (readfile hkm kbdmousebufferfocus "kbdmousefocus" 16) (print (deref kbdmousebufferfocus 4)) (print (deref (add kbdmousebufferfocus 4) 4)) (print (deref (add kbdmousebufferfocus 8) 4)) (print (deref (add kbdmousebufferfocus 12) 4)) )