> On Aug 7, 2026, at 6:58 PM, Jim Hall via Freedos-devel > <[email protected]> wrote: > > On Fri, Aug 7, 2026 at 5:35 PM Jim Hall <[email protected]> wrote: >> >> I'm starting to work on a FreeDOS program to simulate a dot matrix >> printer, to show the output of each page in SVGA mode. (Also >> considering adding PC spkr support, so it makes noises as it >> "prints.") The first version will be a plain ASCII (7-bit) 9-pin >> printer. I'll add CP437 and ESC/P support in later versions. >> >> Here's what I'm planning: >> > [..] > > > My challenge right now is how to generate good-looking letter forms. > I'm not going to worry about this too much right now; I'm saving the > 5x8 forms in a "firmware" file, which means I can change the look by > loading a different "firmware." > > One easy way to build a "firmware" is to use _setcharsize() to set a > vector font size that gets used by _grtext(). Those are Open Watcom C > functions. Then I can print each character to the screen, and read the > screen to get the pixel values. > > Uppercase letters look okay at 5x8 size; lowercase letters are > terrible. But I might write a program to automatically try different > sizes in an attempt to "scale" the letters (like, adjust the width) so > lowercase letters will fit nicely in a 5x8 grid. I'll try that next. > > I might also try doing this in TurboC/C++. But I'd prefer to use an > open source compiler. >
Well, you could use IMGEDIT that is part of the Full install. While it does not directly support font’s under 8x8 bits, it is pretty easy to use. It’s output for 8 bit width fonts is a simple bit mask that can be directly loaded into RAM with many different tools to swap out the current VGA display font. While it can edit bitmap/raster fonts wider than 8 bits (up to 32), those use a different file format which I implemented for early versions of “the Danger Engine” for creating games and other graphics programs like the FreeDOS Credits which uses something like a proportionally spaced 12x14 font. If you are doing an 5x8 font, you could use IMGEDIT to create or modify the 8x8 font it knows. Adjust them to 5x8 and have it rotate the characters and save the font. Then with only a little work, strip out the last three bytes turning them into a sideways 8x5 font and save some bytes. If you execute it using: imgedit printer.fnt /size 8:8 It will create a new (and pre-populated) 8x8 font to start working on. Side note on IMGEDIT regarding the User Interface tools like Rotate. When using the mouse on the menu item, left click rotates one direction, right click rotates the opposite direction. Same goes for using control keys, like CTRL+T, Left CTRL one way, Right CTRL the other. Same goes for tools like flip, left/right click, vertical/horizontal. And so on. :-) _______________________________________________ Freedos-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freedos-devel
