2 ms·
:Retro PC bias ahead: You don't know how many times I re/designed 8x8, 8-9x14, and 8-9x16 fonts as bitmap constants in Pascal, C, and assembly in high school.
by 1letterunixname 3y ago
:Retro PC bias ahead:
You don't know how many times I re/designed 8x8, 8-9x14, and 8-9x16 fonts as bitmap constants in Pascal, C, and assembly in high school. Writing programs to extract fonts from CGA/MCGA/EGA/VGA-compatible BIOSes was fun. If you were feeling sporty, you could write a keyboard-activated TSR to the same in another program. It would pause the current program, transfer control to yours (or chain the call to the saved CS:IP of the original interrupt vector at [0000:n*4]), and then you would ordinarily POP DS, POPA/AD, STI, IRET.
And the old Norton Utilities / FreeBSD gpm 512 character drawing trick where 2 code pages were simultaneously visible by sacrificing 1 bit of foreground color. There is an artifact in using it as a graphic cursor because the right most pixel and the one before it are duplicated because the underlying horizontal resolution is 720 px (not 640 as before) and 80 characters wide. Since most text glyphs don't occupy the right-most pixel, there's no harm in cheating and reusing fonts from 640x400 (not 480) pixels. Interestingly, most graphics cards could draw text somewhat properly in graphics modes with int 10h (video bios) or 21h (DOS services) calls, but it was very slow. It was faster to bitblt pre-rendered raster fonts in graphics modes.
https://en.wikipedia.org/wiki/Terminate-and-stay-resident_program https://en.wikipedia.org/wiki/Terminate-and-stay-resident_pr...
https://en.wikipedia.org/wiki/Bit_blit https://en.wikipedia.org/wiki/Bit_blit