RIPFONT

RIPFONT is designed to help you extract the font from an old-style graphics card, of the type where the font ROM is hidden from the PC. There are only two ways to get the font out of such a card:

  1. Take a close look at the font, and draw one that matches it.
  2. Extract the ROM chip from the graphics card.

RIPFONT is designed to help with the first of these options. What it does is set up a font in memory. You then edit the memory font until it looks identical to the font your card uses in text mode.

Requirements

RIPFONT is designed for use on one of:

If you have a more advanced card (EGA or later) use GRABFONT instead; your life will be much easier.

RIPFONT should be run under DOS. On a CGA, you should first run GRAFTABL; this will provide default character shapes for the second 128 characters.

In use

When RIPFONT is started, you will see a display something like this:

     Choose character to edit

        000:

     Cursor keys to select, ENTER to edit
     W to write font dump to disc
     R to read previous font dump
     S/T to test with ROM font, ESC to exit

Press S or T to compare the font being worked on with the graphics card's builtin font. The display shows them alternately - first one, then the other. If you press S, it switches between the two once a second. If you press T, it switches as fast as it can. Press ESC to leave the test screen.

Note that the S/T test mode does not work on an MDA, since the MDA has no graphics mode.

If the two fonts already look identical, fine. Press W to write the font dump (it will be saved with a fixed name) and then leave.

If the fonts don't look the same, then use the cursor keys to select a character that looks different. Press ENTER to edit the character.

The font editing screen shows the character bitmap (enlarged) and the current character, drawn in text mode. Use the cursor keys to move around, and SPACE to toggle a pixel. The S and T keys work on this screen as well.

Press ESC to leave the font editor (but don't press it again, or you'll leave the program!)

Download

[C source]RIPFONT.C (15k) is the C source for RIPFONT.

[Binary]RIPFONT.EXE (21k) is the compiled program.

An alternative

If the character ROM in your CGA/MDA/Hercules card is socketed, then it's a lot quicker and more reliable to read the ROM directly than to do a painstaking job reconstructing all the characters one by one. Here's how.

Disclaimer: I take no responsibility for any damage that you may do to your graphics card, network card, ROM chips, computer, or anything else if you follow these instructions.

.
  1. Get hold of a network card with a socket for a boot ROM.
  2. Use the network card's jumpers (or setup utility) to enable the boot ROM. Take a note of its address. If you get options for how big the boot ROM should be (eg: 8k, 16k or 32k) choose the biggest possible value.
  3. Carefully remove the ROM chip from the graphics card, remembering which way round it went.
  4. Plug the ROM chip into the network card, making sure that the notch in the end of the chip is at the same end as the notch in the network card socket.
  5. If the ROM chip doesn't have as many legs as the network card has holes, then it's usually the case that the end without the notch lines up.
  6. Plug the network card into your computer. If the network card is an ISA card and the BIOS is a plug and play BIOS, you may need to go into the BIOS setup and reserve the memory range used by the boot ROM.
  7. Start DOS, preferably from a floppy. No windowing systems, no memory managers.
  8. Use DEBUG to save the boot ROM area. Something like this (;my comments in italic):
    A>debug
    
    -md800:0,4000,cs:100       ;D800 is the address allocated to the boot ROM
    Ok                          in this particular card. 4000 is 16k.
    -nrom.bin                  ;Filename is ROM.BIN
    -rcx
    CX 0000
    :4000                      ;4000 is 16k again. 2000 is 8k, 8000 is 32k.
    -w                         ;Write the ROM
    Wrote 00004000 bytes from address 271B:0100 to ROM.BIN
    -q                         ;Leave DEBUG
    
  9. Use RAW2PSF (for CGA) or MDA2PSF (for MDA/Herc) to convert the ROM dump to PSF.

John Elliott 2003-12-29