it works! (on some machines, let's investigate further)
authorJohn Tsiombikas <nuclear@member.fsf.org>
Tue, 5 Jul 2022 05:04:29 +0000 (08:04 +0300)
committerJohn Tsiombikas <nuclear@member.fsf.org>
Tue, 5 Jul 2022 05:04:29 +0000 (08:04 +0300)
Makefile
efitest.asm

index 5f0c29f..11d2bd2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,6 @@
+.PHONY: all
+all: disk.img
+
 bootx64.efi: efitest.bin hdr.asm
        nasm -o $@ -f bin hdr.asm
 
index 333b095..0feb61d 100644 (file)
@@ -142,13 +142,39 @@ start16:
        mov ax, 13h
        int 10h
 
+       ; setup palette
+       mov dx, 3c8h
+       xor al, al
+       out dx, al
+       inc dx
+       xor cl, cl
+.pal:  mov al, cl
+       out dx, al
+       xor al, al
+       out dx, al
+       mov al, cl
+       not al
+       out dx, al
+       inc cl
+       jnz .pal
+
+       ; fill framebuffer with xor pattern
        mov ax, 0a000h
        mov es, ax
        xor di, di
-       mov cx, 32000
-       mov ax, 6767h
-       rep stosw
-
+       xor cx, cx
+.yloop:        xor dx, dx
+.xloop:        mov ax, dx
+       xor ax, cx
+       stosb
+       inc dx
+       cmp dx, 320
+       jnz .xloop
+       inc cx
+       cmp cx, 200
+       jnz .yloop
+
+       ; halt for ever
 .hang: hlt
        jmp .hang