]> 4ch.mooo.com Git - 16.git/blobdiff - src/FTEST.C
Added the start of the text system library.
[16.git] / src / FTEST.C
diff --git a/src/FTEST.C b/src/FTEST.C
new file mode 100644 (file)
index 0000000..5f7efa8
--- /dev/null
@@ -0,0 +1,56 @@
+#include <stdio.h>\r
+#include "lib/types.h"\r
+#include "lib/text.h"\r
+\r
+main() {\r
+    int i;\r
+    int j;\r
+    char l[16];\r
+    char c;\r
+    word s, o;\r
+    word addr = (word) l;\r
+    textInit();\r
+\r
+    //print the addresses of the fonts\r
+    printf("ROM FONT Addresses\n");\r
+    for(i=0; i<4; i++) {\r
+       printf("%d: %x:%x\n", i, romFonts[i].seg, romFonts[i].off);\r
+    }\r
+\r
+    printf("Character: ");\r
+    scanf("%c", &c);\r
+\r
+    s=romFonts[ROM_FONT_8x16].seg;\r
+    o=romFonts[ROM_FONT_8x16].off;\r
+\r
+    //load the letter 'A'\r
+    __asm {\r
+               MOV DI, addr\r
+               MOV SI, o\r
+               MOV ES, s\r
+               SUB BH, BH\r
+               MOV BL, c       ; the letter\r
+               SHL BX, 1\r
+               SHL BX, 1\r
+               SHL BX, 1\r
+               SHL BX, 1\r
+               ADD SI, BX      ;the address of A\r
+               MOV CX, 16\r
+       L1:     MOV AX, ES:SI\r
+               MOV DS:DI, AX\r
+               INC SI\r
+               INC DI\r
+               DEC CX\r
+               JNZ L1\r
+    }\r
+\r
+    //render the letter in ascii art\r
+    for(i=0; i<16; i++) {\r
+       j=1<<8;\r
+       while(j) {\r
+           printf("%c", l[i] & j ? '*':' ');\r
+           j>>=1;\r
+       }\r
+       printf("\n");\r
+    }\r
+}\r