Interak Compact Flash adapter – Part 1.

I have been making good progress with the Interak-1 and having a lot of fun on the way. I have made an adapter so that I can use a modern USB keyboard. I completed the VDU2K video board that was given to me with the machine so now I want to improve its storage.

My machine came with a twin port cassette card and a floppy disk controller.

I don’t think cassette is a goer these days. It was OK back in the day for home use but this machine deserves better. The floppy disk controller will be useful but I’m rather taken by Scott Baker‘s Compact Flash adapter for Spencer Owen’s RC2014 Z80 retro machine.

Spencer is an old friend of mine and his RC2014 has become very popular, with many kits being sold through his Tindie store. As with other good ideas, RC2014 has been a focal point for other people’s efforts and Scott Baker has contributed some great projects that build on the RC2014 is very cool ways. The Compact Flash adapter is one such project.

Scott has generously put his designs out there and made his PCB designs available through OSHpark.

The bits on the bus (go up and down)

Both the Interak-1 and the RC2014 are Z80, slot based machines with easy access to the bus. The first thing to sort out is to get the buses to match.

I was given two blank prototype cards with the Interak and so one of those will do fine.

There is a possibility that I will want to add more than one RC2014 board to my machine and so I didn’t want to just solder one of Scott’s PCBs to the proto card. At this point I bought an RC2014 5-slot backplane and planned to fit that to the proto board and link between the to buses.

In this photo you can see that I have soldered a pack of short links from the Interak bus connector. These will go on to have their loose ends swapped about and fitted into the RC2014 bus.

Here you see that I have pushed the flying leads into one of the backplane’s slots. At this point I was just setting things up and testing the connections.

OK in principle but I need A bit of Vero

The problem with the approach shown above is that the backplane is just a bit too big. I could cut the top and bottom off it, there isn’t anything important there, but that would spoil it. I’ll keep it for later. Maybe I’ll build an RC2014 ad I’ll need it then.

As there isn’t anything too complicated about the backplane, I substituted a piece of Vero stripboard instead.

That fitted much better.

The CF card adapter.

As I mentioned above, Scott Baker has published his PCB design on OSHpark for anyone to order. OSHpark has a minimum order quantity of three and I only wanted one but, someone else only wanted one it seems as a blank PCB appeared on ebay. Yea, here we go.

The circuit for this card is very simple and it would be very easy to lay it out on the proto card except for the fact that CF card sockets have tiny connectors and really don’t work with 0.1″, through-hole boards. A very good reason to use the RC2014 card.

Here we have the populated CF card adapter plugged into the stripboard backplane.

Next time I’ll try it out.

 

 

Interak VDU2K progress.

In my previous post I talked about a second VDU card that came with my Interak-1. This is a VDU2K and supports 64×25 characters in its 2K of video memory.

When I finished the card and plugged it in, it mostly worked but there were problems.

Clearly the monitor ROM was expecting half the resolution and put the prompt half way up the screen but it wasn’t clear whether or not there were other problems. I needed to try and clarify is there was a hardware issue too.

To cut a long story short, I have blown a ROM that tries to clear the screen and then output every character in the character set.

The photo shows that the character set looks fine but clearing the screen has failed. This particular photo is misleading as it shows the screen filled with a single character. That is unusual. I usually see a repeated pattern of two or three characters. I’ve tried a few versions of this test. I’ve put the character set in various places but it makes no difference. The result is always that the screen doesn’t clear properly but the character set is fine.

I think the problem is somewhere in the circuit that looks after memory reads.

Outputting the character set.

;
; Now. Just dump out the character set to the screen.
;				
   ld		hl, SCR_START;
   ld 		b, 0x00
   ld		a, 0x00

loop:
   ld		(hl), a
   inc		hl
   inc		a
   
   djnz	loop

When I output a character set, I’m getting the CPU to write ascending values to successive memory locations. Just writes.

start:   ld		hl, SCR_START
         ld		de, SCR_START + 1
         ld		bc, SCR_WIDTH * SCR_HEIGHT - 1
         ld		(hl), 0x00
         ldir

When I clear the screen I’m writing a 0 to the start of memory and then using the Z80 instruction LDIR to copy that throughout the scree’s memory. In order to do that, the Z80 must read the first location and copy it to the second. It then reads the second location and copies it to the third and so on.

The LDIR has to read memory and I think that’s the bit that’s going wrong.

Further reading.

When my friend Dave got this card, it seems that not all of the documentation was available. However, thanks to a chance discovery, I had been in contact with Dave Parkins of Greenbank Electronic the original designer and he generously found and emailed the design notes for the card!

As I was reading through these notes I came across this paragraph:-

In a current Interak 1 disk system all of the 64k of RAM should be enabled. All elements of the two DIL switches on the DRM-64 card should therefore be OFF.

My RAM card had been set to just use 48K. I switched in the remaining 16K and Bingo! we have a clear screen.

The new card seems to need the RAM beneath its own. I think it has something to do with the way the Interak avoid snow on the screen. However, we are up and running now.

As you can imagine, the monitor ROM doesn’t know about the extra screen real estate but it does work and so does the keyboard.

I was recently given some other binaries to try, including a monitor that can cope with 64 columns but it needs some attention as it was intended to run under CPM from disk.

Progress! I’m rather chuffed.