Version information
Version 1
A simple putChar + putString code that I originally wrote back in 2007 it was just to see if the BMF files could be rendered on a DS. No screen shot for this test, as it was very basic, and I did not do much apart from get the code working.
Version 2
The image above – again using custom code that was gprintf() as a way to use a printf like code to produce the console like output. The information displayed on the screen shot is from the font header and the information for the font data for the letter A. As can be seen in the screen shot the font is an 8 pixel high line (LineH) the size over (SizeO) and size under (SizeU) the base line is a little confusing (-8 and –6 respectivly) and I’m still unsure how to read these figures, but since I’m not using the base line, I’m ignoring them for now. There are some errors in this font – mainly if you look at the number 6’s there’s an error with rendering the first two lines of the font data, this error was not spotted until recently, and it has been fixed in the latest version of the library
Version 3
Changed the default font to a mono coloured font (the font actually has 2 colours, but the second colour is used mainly to smooth the font a little). Also added support for the background colour to be changed to one of the standard ANSI colours. The way the background colour was applied is not uniform to the font, as can be seen to the font glyphs at the bottom of the screen shot. The red backgrounds to the font, is due to me selecting red as the background, and for version 3 of the library the font’s do not have full transparent / opaque drawing. One thing that can be seen from this example is the amount of data that is saved for each glyph of the font – look at the space taken up for the characters A and _ as you can see the letter A has more data stored in it than the _ has, this decreases the size of the fonts and is one of the reasons I’m using the ByteMap Font file format for the library.
Version 4
Version 4 of the library did not have anything major added, in fact I started to play with the code to see if I could get the bright colours added and working correctly. I did and I found a surprising side-effect of the way I was coding the colours – you can have bright background colours as well as bright foreground ones. This is not normally an option for MSDos based ANSI codes, but it is possible using ANSI codes, but not the way I’m doing the code here. I’ve got a fix to put in to change the way the colours are applied to the fonts as this feature is not intended, and I’d like to have the library try and stick to normal ANSI escape sequences as much as possible.
Version 5
I added two codes to swap between the two default fonts which is <ESC>( and <ESC>). These codes are mainly for swapping between the mono colour and multicolour fonts, but this is the start of a long process in adding support for some of the codes that are in the ANSI escape sequence. I also added changed the test output so that the multicolour font was used in the second and third colour grid – this is allowing you to see that the font colour selection in the ANSI escape sequence is not just for the mono coloured font. I also started to add support so that the user could use, unfortunately the way I was swapping between fonts meant that you had to manually set the font each time you wanted to change the font – not very ANSI.
Version 6
This version has support for up to 10 fonts (the 2 default and 8 user fonts) each font can be selected from within the iprintf() function call using pure ANSI escape sequences. The font’s are all top aligned at the moment, and they may stay like that for the next few versions of the library since the font’s can be different sizes if you mix and match on the same line you may have problems with overwriting of the font for a previous line if you use a smaller font at a new line or at the screen edge.