Some time ago I had already rebuilt the B.I.-80 display adapter. This in itself very good 80 column card has only one serious disadvantage: It does not allow any other extensions. And especially the Commodore CP/M module, which would benefit most from 80 columns, is left out.
There are few cartridges, which knew how to use this disadvantage for themselves. Among others the EX-80 Plus from MK Datentechnik Berlin. This has an expansion port in the form of a looped expansion port. And it is compatible with the Commodore CP/M module and allows to use the CP/M version 2.2 with 80 columns.
The module came on the market between 1984 and 1985 and was distributed by Decam Meßgerätebau Ettlingen and Jann Datentechnik Berlin.
There was also a specially adapted word processor called Protext-80 for this card.
A replica must be made
Unfortunately, one finds factually no information about this extension. There is only a test report from 1985 in the April issue of the magazine 64er.
It took a lot of research to get some information and a handful of pictures from the front. On still live websites there was nothing to find, the best source was still the Web Archive Project.
In total I found 7 pictures, a very poor copy of the manual at that time and the firmware of the card. That was the starting point for the attempt to rebuild this card.
But especially the book “The CRT Controller Handbook” by Gerry Kane from the Osborne/McGraw-Hill publishing house gave important hints.
And last but not least the already successful rebuild of a similar 80 column board led to success.
A big advantage was that pretty much all 80 column extensions were based on Motorola’s reference design. There are always slight variations, but basically the core design of all cards is the same. And there are quite a few schematics on the net, even from other computers, which always show a similar basic design.
Which components were used on the EX-80 Plus, I could identify quite easily by the photos. And most of the components are exactly the same as those found in the reference design, as well as in many other similar cards.
So I was able to create a basic schematic pretty quickly.
Then came the more complex part.
The card has a few small features that distinguish it from other cards. Some of them were easy to solve, others were a bit more tricky.
With the help of a logic analyzer I tried to find out what the firmware does during initialization. Which addresses are called, which registers are set, and so on. That was actually the most effort. On a breadboard I put the puzzle together piece by piece.
That took me a good 3 months of time. But this way I could refine the schematic more and more. Fortunately, you can exclude many possibilities from the beginning. For example, to connect only two inputs, as never bring a result.
But in the end there were still some question marks, which could be solved by trial and error.
What was missing for me at the end was the character ROM. This I could not find. So I created one myself, or two. Because the card can switch the character set. First the original C64 character set is included, and second a version with special characters and german umlauts.
That was the most annoying work. Unfortunately I didn’t find an editor, but had to do all this by hand.
All in all it took a good 6 months until I had a schematic that was mature enough to finally have a board made.
To be able to search for errors, I left a lot of space between the components. Especially since I want to make the board much smaller later, or put all the TTL stuff in a CPLD.
The first PCB
This is how the first version of a circuit board was created. It is not exactly compact and already takes up a lot of space. But for testing and measuring this is rather advantageous.
The first attempt was unfortunately not crowned with success. The MC6845 display controller initialized, but only one character was displayed.
But the C64 didn’t crash, I could type blindly and get back into the 40 character mode.
After some searching I found the error and had to re-route some traces on the bottom side with enamelled copper wire.
And the second try looks much better:
The character set
Basically the card works, which is already a great feeling after all the work. But the character set is still not right. I became especially aware of this when I started CP/M. Instead of letters, I saw only special characters there.
So I had to take another look at my self-made character ROM.
So I put together another character set and wrote it into an EPROM:
You hardly do it right…
…it already looks much better:
Time for CP/M
Even if I had already anticipated it, the exciting part was still the booting of the CP/M module.
I took my version of the CP/M module because it is faster than the original. Especially since I will probably integrate both on one board.
The CP/M is fast started and presents itself in almost familiar way, except that right now still so view.
This is the normal standard version of CP/M 2.2, which came with the original Commodore CP/M module.
But since I know that the question will come up: Yes, my CP/M module has configurable memory management. So if at some point someone comes along with a “special” CP/M version that is tailored to other memory areas, my module has been prepared for this for a long time. I only need to unlock that and then this will also work.
For testing, I again used the proven Mandelbrot set. The programme is available as source code under Turbo Pascal.
So I started Turbo Pascal, loaded the code, compiled and executed it. This way, a small stress test is run over everything at the same time to test the stability.
And the best thing is that the output is in 80 columns. It looks much better than with a software emulation.
I’m sure many people are now asking where you can download everything. The short answer is this: It’s in the making! 🙂
As a first step, I will make the board a little smaller and more manageable, and thus cheaper to produce. Especially since the errors will have been corrected there.
The circuit board has already been developed and I just need to have it manufactured and tested again.
If everything is OK, I’ll upload the whole thing to GitHub. Then everyone can download the Gerber files there and have circuit boards made.
The next step would be to make the whole thing much smaller. My idea is to put all the TTL stuff into a CPLD.
Then I could either make a plug-on version of my Z80 board or put both together on one board. I’ll have to see, I can’t say for sure yet.
My idea would even be to pack everything into an FPGA. Unfortunately, there’s not much affordable stuff around at the moment that would come into question. But I’ll keep that in mind anyway.
Suggestions and questions are welcome!