> 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

Reply via email to