Hi Jim Michaels, > sorry - the context of using dpmi was in relation to the problem of having > only > 512K for a font. or is that a video card limitation, and you would otherwise
That is a misunderstanding. You can have a hardware font with either 256 or 512 characters, not kilobytes, in VGA. Many text mode apps write directly to the text screen of the VGA hardware and expect the hardware to do the font. In the 512 character case, the 9th bit of the character number is in a bit which would otherwise set blinking. The text screen in this context is a memory area with a two dimensional array of characters and char properties. Only apps which do not write to the text screen can work with larger fonts at all. In the examples discussed in the DOS Unicode thread, UTF-8 encoded text is sent to a driver such as a CON driver or the BIOS TTY functions. The trick is that in UTF8, multiple bytes can be part of the same character. This allows having 1000s of different characters displayed, but of course you also need a big font to make full use of this. In particular the "JKC", Japanese Korean Chinese, parts of Unicode fonts are big. On the other hand, if you just want dozens of accented and umlaut chars for "western" text, a much smaller but still larger than 256 character font can be used :-). You could use a 512 character font in such a case and let your "UTF8 CON" trap only the non-ASCII chars and the manipulation of the 9th bit of the character. That might give you a bit of compatibility with apps which write directly to the text screen, as at least ASCII parts of their screen would still look sort of okay. > have to go into some sort of graphics mode in order to implement full UNICODE, > as Microsoft did with windows? (sounds of OpenGEM creeping in) well, maybe > some > sort of VESA video driver like linux does. can you borrow drivers from linux? You can of course use anything which lets you handle a big font - reading it from disk or ramdisk, putting it into XMS, EMS, DPMI memory, compressing it etc - to put a big Unicode font in action. However, as you already mention, this means that you will actually have to run in graphics mode. Which is not a big problem in DOS if you need ONLY graphics. The problem is that graphics are slower than text and - more evil - that as said, many DOS apps will directly write to the text screen buffer. But of course when you are in graphics mode, writing to the text screen does not have the expected effect of automatic hardware font based display of the text that you wrote... A workaround would be to "trap" all writes and then let software "manually" paint the graphical shape of the characters which got updated in the text screen buffer. This can be done and has been done e.g. in Desqview but it makes things even slower and you still run into the problem that the contents of the text screen buffer cannot represent text in a font of more than 256 (or at most 512) characters... So what does Windows and Linux do? Simple answer, they do not let apps write directly to the graphics card at all. Because apps always have to send their text to a driver, Windows and Linux can use arbitrary fonts. Yet even there, old apps which assume that each character is one byte will have a messed up layout in UTF8 where each Unicode character can need more than one byte... With well-behaved DOS apps which also write to drivers such as CON instead of directly to the graphics card, you get only as far as with old Windows and Linux apps. Only when you modify modern DOS apps to explicitly know that in UTF8, several bytes can be part of 1 character, only then and only for apps which write to e.g. CON it is possible to use a full Unicode font in DOS. Because such fonts are big, the necessary Unicode CON drivers will have to use slow graphics mode instead of the fast hardware text mode and they will have to use EMS, XMS, DPMI memory, a ramdisk or similar to store the big font. As you see, this is a long story :-) But I must say that I forgot what came out of the discussion a while ago. It was not clear to me WHICH size of font people wanted to use and whether they wanted Unicode display, keyboard, file names, URLs or other aspects of Unicode support... Maybe somebody can refresh our memory? Thanks :-) > by the way, I have an implentation of OpenGem 5 that is a complete Open Source > implementation. version 6 does not run. :-( Did you ask our GEM expert Shane (shaneland.co.uk afair) already? Regards, Eric ------------------------------------------------------------------------------ Protect Your Site and Customers from Malware Attacks Learn about various malware tactics and how to avoid them. Understand malware threats, the impact they can have on your business, and how you can protect your company and customers by using code signing. http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel