Title Screen (VGA mode)
Using the Built-in Input Method Editor (IME) to Type the Word "Hanguk" (한국) into the Program and Append It to the Word List (the program then converts the input into Unicode for storage, which should work even on a 1981 IBM PC)
It can run flawlessly even on a CGA machine. It could probably run on a decent IBM PC from 1981. How's that for compatibility?!
|Charles' Korean Quiz Program Version 1.0 (PC [QBASIC], 2013)|
Basically, this is the same program that I used to quiz myself on Korean in 2006. I wrote it myself, used it as my primary quiz program for my FCPS Adult Education Korean Level 2 class, Yonsei University KLI Level 1, and Yonsei University KLI Level 2. This year (2013), I cleaned up the code, added a title screen, different graphics modes, the ability to select word lists within the program, lots of extra error handling, and the ability to specify a "from" point and a "to" point to limit which words the user is quizzed on. However, the core of the program is pretty much the same as the 2006 version. Then I uploaded it to this site.
I don't expect anyone to actually download this. Let's be honest, Anki (yes, even the clunky Anki 2) is better than this program. However, this program has a couple of special features. First of all, it will run on pretty much any IBM-compatible PC (even one without a hard disk, or one that just has DOS, or one that only has CGA graphics). It doesn't require any Hangeul card, Korean operating system, IME, or even a Korean font, since that stuff is all self-contained in the file. Second, I am proud of this because I wrote all the code to render hangeul and work with the Korean part of Unicode (encoding and decoding), from scratch. That is much more difficult than it sounds. I had to literally render each hangeul, and in many cases, I had to render several different sizes, then I needed to program the computer to know how to build a hangeul character (which means the computer has to know whether a vowel is vertical or horizontal, and resize the consonant accordingly, and know where to place all the letters on the non-linear characters). I accomplished my goal. It's a bit ugly, but it works, and in less than 40 kilobytes.
After being parsed by QBASIC, it is 1,433 lines long. That's my largest program to date by lines of code!