+++ /dev/null
-/* Project 16 Source Code~\r
- * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669\r
- *\r
- * This file is part of Project 16.\r
- *\r
- * Project 16 is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 3 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * Project 16 is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see <http://www.gnu.org/licenses/>, or\r
- * write to the Free Software Foundation, Inc., 51 Franklin Street,\r
- * Fifth Floor, Boston, MA 02110-1301 USA.\r
- *\r
- */\r
-#include <stdio.h>\r
-#include <conio.h>\r
-#include "lib/types.h"\r
-#include "lib/16text.h"\r
-\r
-void main(int argc, char *argv[])\r
-{\r
- int i;\r
- int j;\r
- char l[16];\r
- char c;\r
- word s, o, t, w;\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("*argv[1]=%d\n", *argv[1]);\r
-\r
- printf("Character: ");\r
- scanf("%c", &c);\r
-\r
- if(*argv[1]!=1)\r
- switch(*argv[1])\r
- {\r
- case 48:\r
- t=0;\r
- w=14;\r
- break;\r
- case 49:\r
- t=1;\r
- w=8;\r
- break;\r
- case 50:\r
- t=2;\r
- w=8;\r
- break;\r
- case 51:\r
- t=3;\r
- w=16;\r
- break;\r
- default:\r
- t=3;\r
- w=16;\r
- break;\r
- }\r
- else\r
- {\r
- t=3;\r
- w=16; \r
- }\r
-\r
-\r
- s=romFonts[t].seg;\r
- o=romFonts[t].off;\r
-\r
- //load the letter 'A'\r
- __asm {\r
- MOV DI, addr\r
- MOV SI, o\r
- MOV ES, s\r
- SUB AH, AH\r
- MOV AL, c ; the letter\r
- MOV CX, w\r
- MUL CX\r
- ADD SI, AX ;the address of charcter\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<w; i++) {\r
- j=1<<8;\r
- while(j) {\r
- printf("%c", l[i] & j ? '*':' ');\r
- j>>=1;\r
- }\r
- printf("\n");\r
- }\r
-}\r