Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
hackerb9 opened this issue May 13, 2023 · 10 comments
Open

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

hackerb9 opened this issue May 13, 2023 · 10 comments

Comments

@hackerb9
Copy link

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
Copy link
Owner

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
Copy link
Owner

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
Copy link
Author

hackerb9 commented May 8, 2024

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

@hackerb9
Copy link
Author

hackerb9 commented May 8, 2024

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
Copy link
Owner

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
Copy link
Author

hackerb9 commented May 8, 2024

Thanks! I'll start doodling them in.

@hackerb9
Copy link
Author

hackerb9 commented May 9, 2024

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. 😉) 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
Copy link
Owner

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

@hackerb9
Copy link
Author

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

@hackerb9
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants