DrawString Routine for Screen 13 QuickBASIC
     (C) Copyright 2016 Graham Downey

---------------------------------------------

Anyone who's ever tried designing a GUI of any sort for Screen 13 in 
QuickBASIC knows how hard it can be to get text onto the screen like you 
want. If you use PRINT it changes the background color of the text to black 
and limits where you can place the text to imaginary text cells. 

To get around this I made a new routine in x86 assembly which fixes all of 
those issues.
                           
Features:
    -Draws text in any color with a transparent background
    -Uses the BIOS font and requires no initialization
    -Pixel by pixel plotting so placement isn't limited to text cells
    -Full regular and extented 8x8 characterset supported (0-127 and 128-255)

How it works:
    When you call DrawString it calls interrupt 10h on the BIOS to locate the
    font table in memory then saves pointers to the start of the 8x8 table
    and the location on the screen the user requested the text to start.

    After this it locates the string and reads the first char, it finds that 
    character on the font table it converts the 1bpp bitmap into a readable 
    image on the screen being sure to only draw the "on" bits so the
    background behind the text stays transparent. After finishing that 
    character it reads the next one in the string and repeats until done.

How to use it: 
    The syntax of the command is simple: DrawString X%, Y%, C%, S$ 
    Where X% and Y% are your (X,Y) corrordinates for where to start printing,
    C% is the forground color for the text and S$ is the string itself.

    For example if you did: DrawString 12, 2, 1, "Hello World!" 
    it would print the string "Hello World!" at corrordinates (12,2) on the 
    screen in blue.

Notes:
    When calling DrawString make sure S$ is a string at least 1 character in
    length. If you pass a null string to the function it won't understand
    where the string is supposed to end and will fill the screen with garbage

Contact:
    Send suggestions, comments and bug reports to
    E-mail: grahamdowney1@gmail.com
    IRC:    Ham62 on ##doshelp on FreeNode

    Don't forget to check out my website:
            http://grahamdowney.com

Credits:
    Main function development - Graham Downey
    Debugging and testing     - Mysoft (Grgori Macrio Harbs)

- End of readme -
