
                                 ͻ ͻ           
                            o                      
                 ͹   ͻ     ͼ   ɼ       Ŀ Ŀ
                                                
                    ͼ ͹     ͼ                
                 Ŀ        compo                
                        ͼ                        o
                  Ŀ Ŀ   Ŀ Ŀ Ŀ Ŀ   Ŀ ڿ
                    Ŀ                   
                                   
    

    Greetings Hugi Coders!

    It's been awhile.

    This time your task is critical. You must resurrect the Hugi Compo. It's
    been buried by neglect, and its spirit is floating away (as you can see in
    the image). You can save it by creating the world's smallest program that
    displays the accompanying ANSI file, image.ans.

    Nope, you don't get to use the ANSI.SYS driver and merely "type" it. That
    would be too easy. You must make a standalone program that displays the
    image. In other words the image must be contained within your program; it
    cannot be read in from an external file. Furthermore your program cannot
    return to the operating system until a key is struck. This of course gives
    you time to admire the image without it being scrolled up by a DOS prompt,
    or worse, before it disappears altogether when run directly from Windows.
    However there's another reason for this requirement. There needs to be a
    way to check that you got every little character just exactly right.
    That's where the automatic tester comes in. It hooks itself into the BIOS
    keyboard routine (interrupt 16h) and carefully looks over your image. Any
    discrepancies result in an annoying error message along with the errant
    parts flashing on and off.

    Actually you don't have to display the exact same characters that are used
    in image.ans, but you must display the image correctly. You may display a
    block character (DBh) as a blank character (20h, 00h, FFh) if the blank has
    the same background color as the block's foreground color - and vice versa.
    You may even display a block as any character as long as its background and
    foreground colors are the same. Also, you may swap the left and right bars
    (DDh and DEh), and bottom and top blocks (DCh and DFh), if you swap their
    foreground and background colors (even though these swaps are not always
    pixel-perfect).

    If bit 7 of a color attribute gets set in all this swapping, you must make
    sure that your characters don't flash on and off. This might require
    disabling the hardware blink bit. One way to do this is: mov ax,1003h;
    mov bl,0; int 10h. You do not need to reenable this bit when your program
    exits. Beware that Windows is somewhat erratic in the way it sets this
    bit.

    To make your task a little easier you may prefer to work with the file
    image.asm instead of image.ans. Both give the same result, but image.asm
    avoids having to deal with all the weird ANSI escape commands.

    To help clarify these rules, an example program (appropriately called
    example.asm) is provided. You must call your program "entry.com".

    Send your entry.com along with its source code to Adok at:

                  ------->> cdvolko@gmx.net <<-------

    You should also include any supporting code and executables that, for
    example, convert image.ans into a compressed format. This will help others
    understand just how brilliant your program really is during the judgment
    period (explained in general.txt).

    The compo deadline is Halloween (All Saints' Eve) October 31, 2008 at the
    stroke of midnight CET. You may submit entries as often as you like up
    until the deadline. In fact you're encouraged to do so to add excitement to
    the compo.

    To avoid putting too much burden on Adok, your entry must take no longer
    than 5 minutes to pass the automatic tester on his computer.

    Besides these rules, you must follow the general rules that apply to all
    compos, which are described in the accompanying file, general.txt.

    If you have any questions or comments, please feel free to post them at:
    hugi-compo@yahoogroups.com

    Thanks for your support in this very important endeavor - and don't R.I.P!

    -Boreal
