robhagemans / hoard-of-bitfonts

turns out I like bitmap fonts
Other
1.34k stars 51 forks source link

Ciarcia's "ZAP" computer font (CRT8002) #28

Open hackerb9 opened 1 year ago

hackerb9 commented 1 year ago

So, I was reading through Steve Ciarcia's "Build Your Own Z80 Computer" from 1981 and came across a datasheet in Appendix C9 which has a font that I do not believe is in the hoard, yet.

ZAP font (crt8002)

The 7x11 font used in the ZAP 80 computer was generated by a chip called the Standard Microsystems Corporation's CRT 8002 Video Display Attributes Controller / Video Generator.

When I looked up the CRT8002 online, I found that the chip was available in a few variants: 5x7, ASCII, thin, and Katakana as can be seen here: https://rocelec.widen.net/view/pdf/r6gtaq06b2/SMSCS01026-1.pdf.

robhagemans commented 1 year ago

Nice. I had a quick look, haven't found a ROM dump of the character generator so far. Mame has this https://mame.spludlow.co.uk/Machine.aspx?name=zapcomp but it doesn't include the 8002.

Perhaps one for a rainy Sunday afternoon copying off the datasheets...

robhagemans commented 4 months ago

The CRT8002 was also used by the SuperBrain Video Computer System - there is a dump of the 5x7 character rom here: https://archive.org/download/mame-merged/mame-merged/sbrain.zip/crt8002-003.bin

hackerb9 commented 4 months ago

Excellent, it's a good font to have in the hoard.

hackerb9 commented 4 months ago

I do hope you get a chance some rainy Sunday to fill in the other sets. CRT 8002-001 (Katakana) and CRT-8002-005 (ASCII) are nicely rounded.

robhagemans commented 4 months ago

I do hope you get a chance some rainy Sunday to fill in the other sets. CRT 8002-001 (Katakana) and CRT-8002-005 (ASCII) are nicely rounded.

It's an activity that's open to everyone

hackerb9 commented 4 months ago

Thanks! I'll start doodling them in.

hackerb9 commented 4 months ago

Okay, I did the ASCII version.

all-glyphs-crt8002-005.tar.gz

That was fun, I got a chance to play around with morphological image operations to convert the scanned image into bitmaps. (The secret is: Dilate, dilate, erode, erode, threshold, and resample to 128x96. :wink:) Of course, it took a bunch of fiddling and hand tweaking of a few stray pixels, but I think I got it right.


In the PDF of the chip's datasheet, figure 5 in the "ROM CHARACTER BLOCK FORMAT" section indicates that the ROM only holds a 7x11 window into the full 8x16 character.

figure5

I expect you want the font as it was actually displayed on the screen, not how it was stored in the ROM, so I padded each glyph to 8x16. If you don't want that, use the files with 7x11 in their names.


It looks like this chip also generated 256 different graphical block figures made of octants (similar to, but not the same as, the Unicode sextants, U+1FB00..3B: 🬏🬔🬕🬖🬗🬘🬙). Are you interested in those fonts?

They fill the 8x16 character cell when each octant is set to size 4x4. Curiously, the total size of those glyphs can be up to 14x16 because they "back fill" the space between characters if the chip's timing has added extra pixel columns. In that extreme case, each octant would be set to 7x4 pixels.

robhagemans commented 4 months ago

Thanks! I've converted to yaff, checked against the datasheet (K,L and { needed retouching) and included under crt8002/

hackerb9 commented 4 months ago

Thanks for fixing my gaffs and including this lovely font in the hoard!

hackerb9 commented 4 months ago

By the way, considering only the bitmap, it looks like CRT "8002-11" should be treated as an equivalent alias for the 8002-005. And, if I'm not mistaken, the CRT "8002-018" should be considered an alias for the 8002-003

I believe that leaves, according to the technical reference, only the Katakana (8002-001) characters remain to be done.