PDA

View Full Version : Video character ROM



MykeLawson
March 6th, 2015, 07:28 AM
I'm thinking about wire-wrapping the old Polymorphic video card and I have everything I need except the character ROM. It uses an MCN6571A, MCM6574, or a MCM6576 according to the documentation. Anyone have an idea who might have some? I couldn't see any listed on eBay, so I'm hoping that there is a surplus house out there that I don't know of, that might have some.

daver2
March 8th, 2015, 09:06 AM
I drew a blank looking on the Internet for surplus parts - apart from the usual large companies that ask for your e-mail address so that they can send you a quote... (although I only spent a few minutes looking to be honest).

The SOL-20 uses those types of character generator chips - as do some other vintage computers of the same era.

Do you want to wire-wrap "an original" (i.e. using the 'old' parts) - as the character generator ROM can be replaced with a current EPROM (providing the access time is fast enough).

Just a thought...

Dave

MykeLawson
March 8th, 2015, 02:37 PM
I have no problem with burning it to a new EPROM; but I lack the code that is in the character generator. Funny you should ask, my current S-100 Z-80 has circuitry to connect the RAM to a PC parallel printer port. The port controls the bus via BUSRQ and starts loading code starting at address 0000 (at least for now). I will also be using this same code to write the ASCII conversion EPROM for my 5x8 ASCII keypad that uses the EDE1188 Keypad Encoder IC. In fact, I just tested the software to write 1024 bytes of conversion data. Haven't wired up my EPROM burner circuit yet, but the GWBASIC code runs without any issues.

daver2
March 9th, 2015, 11:30 AM
There is no 'code' in the character generator - but a data description defining the individual characters you need. This is fully described in the data sheet (see http://bytecollector.com/archive/mark_8/My_Mark-8_Info/DigitalGroupPacket/M6570.pdf) or the VTI manual (see http://www.polymorphic-computers.com/manuals/Poly_VTI.pdf) for various examples.

The Motorola character generator has a few 'silly' voltages on it (other than the sensible +5V that modern EPROMS require - well, modernish).

You would wire the four RSx lines to A0 through A3 of an EPROM and 7 character address lines to A4 through A10 of an EPROM (requiring a 1KBYTE EPROM at most). If you used a larger EPROM - you could wire the higher address lines of the EPROM to stake pins and select different 'character sets' on the fly.

The output from the EPROM will be 8 bits - but you would only use D0 through D6 (7 bits) to feed the '157s.

Each character internally in the EPROM would be formed from bytes - corresponding to row select codes of 0 through 15. IC16 of the VTI is reset when the counter reaches 15 - meaning that only row select codes 0 through 14 are really used. The 16'th byte of each character stored in the EPROM is therefore unused.

You need to watch the 'shifted' characters. In the original Motorola character generator - bit 7 was used to indicate a 'shift character' (i.e. the normal 7x9 character dots would be 'shifted' in the character cell). This data bit was never brought out of the character generator - as it was used internally. In the EPROM implementation - you can quite happily ignore this feature - as long as you remember to code the shifted character on the correct 'rows' of the EPROM. The shifted characters are indicated in the data sheet by a small black triangle in the upper-left of the character cell.

I have done this for a different VDU circuit (a Sinclair MK14 VDU to be precise) and it worked well. It doesn't take too long to enter the character matrix in HEX - and you can do this with an assembler using the Define Byte directive and you can maintain and change the character generator at will.

The data sheet states that the access time is typically 350 ns / maximum 500 ns so any 250 ns or faster EPROM should suffice.

Quite willing to help out further if my description above is unreadable!

Dave

MykeLawson
March 20th, 2015, 03:34 PM
You know, I like your suggestion. I started a spreadsheet so I can figure out what data would need to be in the EPROM. I will just set bit 7 to zero, and not use it. It looks like the AR0-3 would go to A0-A3 and the address lines of the character generator would go to the rest of the EPROM's address lines. Sounds about right?

daver2
March 22nd, 2015, 07:26 AM
The four bits from IC16 (74393) identified as QA, QB, QC and QD would become the lowest four address lines of the EPROM (A0 through A3) and 7 of the 8 lines from IC39 (74273) would become A4 through A10 of the EPROM (which I think is the same as you have stated above).

Yep - leave D7 at logic '0' and encode the remaining 7 data bits as a '1' if you want a lit pixel or a '0' otherwise. 16 consecutive data bytes for each character (remembering that the last (16th) data byte is not used - so can be left at 0x00).

Dave