View Single Post
Old 30th Apr 2019, 11:53 pm   #180
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,485
Default Re: MK14 schematic revisions

I missed those, although a CLS routine is not a difficult thing to do - just fill the screen area with either 0x00 in graphics mode or 0x20 (Space) in text mode.

I have been meaning for years to do something more than just the static text display with that VDU demo jig - I changed the demo code a couple of days ago to put the VDU into graphics mode for probably the first time since it was attached to the MK14 at least 40 years ago. There appears to be a small problem with my timing in graphics mode as there is some interference / flickering on two of the vertical pixel lines. I'll have a look at it again if I get time.

Getting a PIC to react to a change in address and supply the data meant to be coming from that address at the same sort of speed as an SRAM was surprisingly hard, as I remember.

One problem is that the VDU takes the RD line low for the whole of the time it takes to read one horizontal line's worth of text or graphics RAM, so there's no falling RD edge each time the VDU wants some new data. It just keeps RD low, changes the address it's sending out to the host RAM, waits a short time for the new data from the RAM to settle and reads the next data in, repeating that until it has read the data for the whole line. Then, RD goes back high.

When RD falls low at the beginning of the line I do the first address read and data output. The rest of the read address / output data cycles on the line are timed by watching for changes of state on the VDU's A0 line.

The (theoretical) advantage of using a PIC to do this is that, in the period outside the time when the VDU is demanding to be fed data, the PIC could spend a bit of time manipulating / animating the screen ram contents, whereas if you use an EPROM to store a test image it will just be that fixed image - although you could store a different text page or bitmap image every 512 bytes in a very big EPROM and run a binary count-up on the remaining address pins, either slowly for a 'slideshow' or quickly to do a flicker-book 'animation'. (My animation skills are definitely not up to that).
SiriusHardware is offline