Jump to content

Interest in Dual Serial / 80Column (CP/M) Board for the ADAM?


Recommended Posts

You're most kind.


I have to admit I know very little about CP/M but want to learn and my ADAM would seem a reasonable vehicle to do so... and 80 column support would be preferable for CP/M use.


Yes, the ADAM keyboard remains fully functional. USB keyboard functionality is just a bonus as you get that for free with the PiGFX (Github) firmware I'm going to use to drive the Pi. I'm at least familiar with that side of things as I helped my daughter build a RC2014 a while ago.


One of the 'interesting' aspects of this project is I'm both quite new to ADAM ownership and am a total n00b when it comes to CP/M. It would be very nice if this project goes without a hitch but there's usually some mistakes to fix along the way...

...the 'fun' bit bit for me will be if I can tell the difference between issues with my hardware and my simply not understanding how to set up CP/M in 80 column mode on the ADAM.


I'll certainly continue to report on progress, and possibly be asking for advice.

Edited by CharlesMouse
Link to comment
Share on other sites

Looking good!


Many thanks...


Yet again I've shown what an idiot I can be. I don't usually make this many mistakes, honest!



All plugged-in, MicroSD in place with PiGFX firmware on board... Flip the power and...

-No magic smoke, good.

-ADAM boots properly, good

-Go to HDMI output and there's a flashing cursor, awesome!


The next step should be working out how to use the MIB2 drivers and we have 80 columns. :-D Well, as it happens the PiGFX firmware will drive any screen size you like so if that causes the ADAM confusion I might try a re-compile with it fixed to 80x25.


...and then the video from the Pi Zero goes out!


Funny, it's usually "cake or death" with this kind of thing. Power off, pull the board out and do a bit of IC fondling to see if any are warm. Nope!

Ok, disconnect the Pi and power via a USB wall-wart. Nope!

Hmm, grab Pi from my 3D printer and see if I killed another MicroSD card... Yes, so badly that when I tried putting said MicoSD in my laptop it locked up, funny I've never seen that before.

Try my printer's PI's MicroSD in the ADAM's Pi. Nope.


Hmm, let's have another look over those schematics... Oh, (many rude words) I mirrored the GPIO header! The poor little thing was getting 5v through it's 3.3v line but still managed to run for a few minutes before it popped taking the MicroSD card with it.


*SIGH* yet again.


I'll say it again, I don't usually make this many silly mistakes. Honest!


So further modifications to my schematic and layout, a little bit of tidying while I'm at it, and I'll send another order to Seeed. As I'm nearly out of MicroSD cards (Pi's do love killing the darn things even when I've done nothing stupid) and I need another Pi I think I'll not patch my current board but wait on the new ones.


-A small delay before I return to '101 ways to c*ck up PCB design'.



My AY sound board is complete so lets see if that one can kill off my ADAM entirely!

Link to comment
Share on other sites

I own a working MIB3 card that has a dual serial and one parallel port. It allows 80 column text in TDOS or a patched CP/M 2.2 usign the 19.2K serial port and up to a 19.2K using a modem. Plus I have a laser printer connected to the parallel port at up to 19.2k. A improved dual serial and parallel card would offer port speeds up to 115K with special software.


The picture you are displaying in post 27 is a FCC and CE certified Raspberry Pi somehow connected to a dual serial card (Which means this product can be resold in the USA and Europe).

The Raspberry Pi version 1.3 you have attached has a USB and HDMI output, wow? Also a reset button.


We have never had a USB and HDMI port on the ADAM computer that is as easy to add as a plug in card. Awesome. Yes the ADAM has had HDMI output with a direct modification on the motherboard but never a add in card.

If EOS 6 or EOS 9 was patched to work with the HDMI output, then 100% of programs that were ran would have a HDMI output including ColecoVision games. However perhaps the HDMI output is only working for TDOS and CP/M at this time.

Edited by HDTV1080P
Link to comment
Share on other sites

Using a sound chip in this card that would make the ADAM 100% compatible with games that use the Super Game Module, that is awesome.


Hopefully one day the HDMI output would work for all ColecoVision/ADAM programs, however for now it sounds like the HDMI output is just a glorified serial video output for TDOS and CP/M 2.2. What is the resolution output of the HDMI port? (480i, 480P, 720P, 1080i, 1080P)?


Back in the late 80’s I sold my 80 column text terminal and was planning on purchasing another one. However some of these used working terminals cost over $300. The advantage of your HDMI output is that now I can go purchase a low cost 720P 19 inch HD flat panel with a HDMI input for only $88 at Walmart that well offer much better quality then any old terminal.


Edited by HDTV1080P
Link to comment
Share on other sites

I just noticed this 21.5 inch 1920 x 1080P HDMI computer monitor at Walmart for only $84. Much better then a used serial computer terminal for $300+. 100% of all TV’s and computer monitors are now HD quality with a 16:9 screen ratio. If the ADAM HDMI output does not support 16:9 ratio then 16:9 displays are backwards compatible with 4:3 ratio sources with black bars on the left and right to maintain the original screen ratio.



Edited by HDTV1080P
Link to comment
Share on other sites

Ah, I'm so pleased you like and can see the possibilities of this board. Certainly the sky's the limit:

-If I can just stop making so many mistakes

-Someone with interest and good at coding wants to play (hint, hint)


For now what we will hopefully have is a MIB2 compatible board that also brings a Pi Zero for VT100 video out and USB keyboard in.


May I direct you to a video of one of my Appe II computers. It's basically running the same kind of set up but the software involved is far, far more interesting than a plain old VT100 emulation. Called Apple2Pi, although my version of the software is a bit special even if I say so myself,


If the driver software on the Apple II could be ported to the ADAM (yes, yes, 6502 to Z80 will be a proper pain) then you would get the whole shooting match (Pi side) essentially for free. All the stuff you've mentioned and a good deal more besides.



For now a little time must go by while I wait on the fixed boards I've ordered this evening... unless impatience strike and I break out the Kynar again.

Edited by CharlesMouse
  • Like 1
Link to comment
Share on other sites



Further thoughts on possibilities:

This design uses serial for it's connection so that needs to be kept in mind when considering connection options. Serial can do an awful lot - VT100 display for now, but see the Apple2Pi project as to how much two a way serial connection can provide.

I'd say for an 8bit computer that would be pretty much everything, and indeed as the ADAMs expansion bus is a serial protocol I expect not a great challenge for a talented coder, which I'm not.

For a fast bit-mapped display - I guess the TMS9918 with it's own RAM sort-of communicates with the rest of the computer via a serial interface and so could be reproduced with a Pi going through it's UART but I suspect not quick enough...

...that's not to say a Pi-based bit-mapped graphics / HDMI isn't possible, there is an HDMI board for the ZX Spectrum that does precisely that job:

-I imagine you'd connect enough of the PIs GPIO pins to the same lines on the ADAMs bus that the TMS9918 sits on, maybe a bit of buffering and certainly a bit of level logic required.

-A custom firmware on the Pi to emulate the 9918 and produce the video out.


In the former case I expect I could whip up an interface pretty easily, but in the coding would be waaay beyond me, I guess the software components would be something along the lines of:

-Someone who knows how to program the 'metal' of a Pi - maybe Hogglet over on the *. forum or the author of PiGFX

-A state machine to snoop the ADAMs bus for communication and handle transfers over the GPIO - maybe that could be lifted from the ZX Spectrum HDMI interface

-TMS9918 (or better) emulation - F18a core suitable?

-The Pi can act as local VRAM

-Some code to wrap it all together...


...that would indeed be an awesome project and you'd potentially have an F18a-like implementation using off-the-shelf components. Back to reality:

-All of that can be 'fudged' to a certain extent over serial as the A2Pi software does - The Pi acts as both a 'super multi-device expansion' and/or can use the host computer's I/O for it's own purposes and emulate any system within it's capability.

-Of course on the ADAM that would require porting / recreating the retro-side communications software...


,,,for now the best I can do is make the board and have it run PiGFX:

-MIB2 compatible serial

-A colour VT100 terminal for TDOS / CP/M

-Oh, and I happen to have my name down on the F18a waiting list.

Edited by CharlesMouse
Link to comment
Share on other sites

Sorry if this sounds a bit basic, but what is MIB2?


On a side note, a Raspberry Pi solution for the TI 99/4A computer has also been developed called TIPI, currently providing file storage, internet access, mouse support and more options in the works like FTP, using either the side expansion port or the peripheral expansion box. Lots of possibilities there, and it's all a question of programming.

That said, at what point is a vintage computer no longer "vintage"? If we utilize all the possibilities provided by a modern SBC, wouldn't that vintage computer become nothing more than a slave to the modern hardware and lose its soul?

I tend to belong to that latter camp...

Link to comment
Share on other sites

May I direct you to a video of one of my Appe II computers. It's basically running the same kind of set up but the software involved is far, far more interesting than a plain old VT100 emulation. Called Apple2Pi, although my version of the software is a bit special even if I say so myself,



Looks to me you don't need much programming help :) Interesting choice of music for the video by the way...

Link to comment
Share on other sites


Looks to me you don't need much programming help icon_smile.gif Interesting choice of music for the video by the way...

You're most kind but TBH 'my' implementation of the A2Pi software was mostly an exercise in sticking Lego blocks together:


-A2Pi software + goodies + emulators

-RetroPie over the top + some mods to play nice with the other stuff

-Custom boot screen...

...much cursing (Linux)


I'm glad you liked the choice of music, it seemed appropriate to me icon_biggrin.gif I sing a bit (mostly Rat Pack style) and quite like Postmortem Jukbox's arrangements of modern songs.


MIB2? Not a basic question at all, if I hadn't been on the lookout for schematics to crib I'd have never heard of it - Micro Innovations Dual Serial Board


So the Ti community uses Pi's too? I'm not surprised. Dirt-cheap, readily available, and bendable to all sorts of applications... if I could code there's all sorts of things I'd use them for.



Ah, the vintage vs modification debate... always good for a heated conversation. For what it's worth my view has gotten more 'conservative' as the years have gone by, currently:

-If it's broken and not fixable then it's fair game. But don't butcher a working retro box and try to pass on surplus parts to others.

-Fix and resurrect what you can.

-There is no limit on 'period' upgrades and modifications, including modern stuff made with older tech, as long as some sympathy is applied.

-When adding modern components it would be 'polite' to do so in such a way that said upgrade could be reversed without much issue.

-Try not to rob the machine of it's essential character. eg: an ADAM booting in to Windows would be 'wrong' but leveraging modern components to improve the experience is fine.

Link to comment
Share on other sites

I wish you would have based your design on Micro Innovations flagship top of the line MIB3 card. The MIB3 card has two serial ports plus one parallel port and a boot eprom socket. The parallel port is used for Laser printers and the boot eprom socket allows programs like ADAM's Desktop to boot up instantly when the ADAM is tuned on instead of SmartWriter. Also the boot eprom socket allows any program to be installed for instant booting over Smartwriter.


Without the boot eprom socket, people well need to use ATARIMAX's USB or SD cartridge for instant booting. The parallel port is import, however all new Laser printers in production use USB only and no parallel ports anymore. Therefore maybe one day a USB hub could be plugged into the ADAM's USB port and with the proper driver a USB keyboard and USB Laser printer could be connected.


Perhaps on a future board a parallel port and boot prom socket could be installed (or better yet a SD card reader in place of the boot prom scoket).

Edited by HDTV1080P
Link to comment
Share on other sites



It's a very fair point. When I started out with these projects I was very new to the Adam... I tend to do this kind of stuff mostly for fun, but also as my way to get to know the system. As a result I wanted something that I hope:

-Will work

-Be compatible with available drivers

-Have available schematics for me to crib from


Having done a bit of looking I really wanted to base my attempt on the MIB3 for the very reasons you mention but try as I might I couldn't find a schematic. So I went for a MIB2 clone as it was good enough for my purposes and the code for the GAL was available too - a big help for working out the logic.


Now I know a little more, assuming I can get this to work at all, I'd be keen to do a version with ROM support and potentially add a parallel port too. There's room on the board for the components given there's nothing under the Pi and if I was to have another go I'd replace the Serial and Modem Headers with much smaller FTDI ports, especially as I dropped the serial driver IC's from my design. Um, I'd also add some current limiting resistors to those ports - an omission on my part, but not one I'm bothered by as I'd just warn any potential user to include the resistors in their cabling or be very careful.

...if I could find an MIB3 schematic and code for it's GAL that would make things much easier but if not I'd probably just add the ROM support and leave the parallel port as I'd have no way of knowing how MIB wired it up.


For now I'll be glad if the current design actually works.



I couldn't get my head round the way MIB are addressing the serial chip they selected so to have a chance at making a functioning board I went for the same IC and directly copied the wiring. If at some point I do get my head round it, or somebody explains it to me, I'd probably use a more modern part with any future design. At the least I'd use a SIO(2) chip as they are more available, much cheaper, and the IC Zilog intended to go with the Z80 in the first place - the functionality is much the same.

Edited by CharlesMouse
Link to comment
Share on other sites

  • 2 weeks later...

Well, I've had a notification from Seeed that my latest boards have been posted so hopefully I will be able to post some more progress in a wee bit.


Out of boredom I did yet another update for this board (maybe I should wait to see if I can actually get something functioning) to add ROM support for any future iterations. Some observations and questions:




I kind-of see why MIB went for the serial IC they did (rather than a SIO(2) that would have made more sense to me). There's no CLK line on the middle expansion connector! That rather squashes my hopes of doing an update with a more modern, or at least more easily available IC.


While perusing the GAL logic for MIB's cards to see what potentially useful extras might be worth including in a future card I noticed that while all use the same serial IC each card actually addresses it differently. I guess that means one will have to be careful which of their drivers are used with my card, currently MIB2 compatible. I wonder why..?


Part of the reason for having a further look at their GAL logic was to see about possibly adding a printer port. As I'm quite deliberately doing this with standard logic it looks like a parallel port is going to be very difficult indeed given the avalanche of extra ICs required just won't fit.


There's other stuff I'd like to consider but the lack of certain signals on each of the internal expansion ports will make such plans difficult if not impossible. (for me)





Assuming I come up with a true multifunction card which of MIB's drivers would people prefer I aimed at? A potential option might be to include a set of jumpers so my card's serial could work with any driver set, at the cost of space on the board.


I really don't see how I can find space to include parallel support if I don't use a GAL. Is there any demand for such a thing? One potential option might be to include a piggy-back header so further options can be added 'sideways'. Not neat but that will sort space issues.


Both the middle and right-hand slots have unconnected pins - I'm very tempted to add lines to some of those pins to make the internal slots more generally useful. That's no issue for me but if anyone wants to use such a potential board that requires modding of their ADAM's slots is that:

-Going too far?

-If not what / where would people like the new lines added?

...as a minimum I'd really like to add a CLK line to J6. Preferably add enough lines to make it equivalent in function to the external slot

Edited by CharlesMouse
Link to comment
Share on other sites

It's going too far, although I find it fascinating.


I doubt too many people would want to mod their Adam like that, even if it gave them cool new powers. But I do like that you think outside the box (gawd I hate that term and now I hate myself for using it LOL)

Link to comment
Share on other sites

Well I've soldered up both my new Pi Serial board, and memory board, as far as I can... waiting on some components to finish the job and then fingerers crossed with the ongoing testing.


In a fit of combined madness and frustration I redesigned the board yet again to include a port extension header, along with the addition of ROM support, So it's possible to piggy-back further expansion boards on to that. I also flipped the Pi interface on to the back of the card to allow more room for cabling and the option to use other Pi's (in the latter case the composite out won't work as only the Zero has the correct header). The header also provides an easy attachment for 'my' RAM board's flying lead. I also changed the serial headers to FTDI type and added current-limiting resistors as 'my' ports are TTL only...

...sadly the redesign was done after I ordered the current board. But you never know this one might also be a dud, in which case I'll get an opportunity to buy some more funny looking coasters.


...and in a further bout of madness I've done two piggy-back boards to get the ball rolling:
-A MIB compatible Parallel interface

In the end it took lots of ICs to implement so there really was no way to add directly to this card.

-A SGM compatible AY Sound card

Addressing logic completely redone more to my liking. Annoyingly I had to add both Power-on reset and clock circuitry because Coleco in their wisdom didn't think to add those lines to the expansion bus.., bah!


The idea is you can extend the middle slot for as long as you have room, don't overload the Z80's bus, or run short of power. The latter two can be fixed with some buffering and bringing in a 5v line.



Having still not successfully tested anything I'm doing my best to get a much egg on my face as possible. I do hope the rest of my parts turn up soon.



Having fried my Pi Zero I ordered another only to get a message saying I have to wait a bit as you're only allowed to order one a month - blast! My other Zero is soldered in to my Beeb to masquerade as a second processor and the Zero W in my printer isn't compatible with the PiGFX software - sigh!

...I can see impatience is going to result in a nasty hack to bend a standard Pi to my will.







Edited by CharlesMouse
Link to comment
Share on other sites

Just out of curiosity:

The above set up should hopefully work under CP/M (and TDOS?) as a colour serial terminal, with potential future options, but...


There's another way to construct a simpler, and very fast, 80 column display for the ADAM that could work under any OS. Before I bought my ADAM I did a design for a Z80-based CP/M computer based on Grant Seale's design but never got round to making it. Part of the design was for a B/W 80 column display with limited GFX capability that requires no system memory to run - with hindsight I guess it's rather like the 9918A in operation.


The basic idea is you need 10 lines:

-D0 to D7 for passing info to the GFX processor

-Avail for output

-ACK for input


The control cycle would consist of:


Set D0-D7 and AVAIL to be outputs.
Set ACK to be an input.
AVAIL can be high or low.
Send to the display
When ACK = AVAIL the display ready.
Place character on D0-D7.
Flip AVAIL to indicate data is ready to be processed...
...you're basically sending characters or control codes and Esc codes can be sent for limited VT100 compatibility.
All this is achieved with an ATmega328, a 74HCT166, a crystal and a few passive components. As the system would have direct access to the VDP, and given I believe the 9918A can mix it's output, I think that would be enough for all the screen real-estate one could ask for. I'd also be very happy to roll a version GFX card that could be interfaced with the ADAM... the catch?
Ideally such a board would need driver software to make best use of it, but at a pinch could be driven with a few peeks and pokes. So if there's interest, especially if someone wants to write a driver for such a device do let me know.
Edited by CharlesMouse
Link to comment
Share on other sites

I am interested in this board that has two serial, one parallel, USB, and HDMI. Sounds like it is color 80 column under CP/M 2.2 and TDOS, but would require someone writing a driver to make it 100% compatible with all ColecoVision/ADAM games and programs.


At this time I am not willing to commit to donating time to write a software driver. I do have a modern programming degree however back in the 80's I only used the ADAM for SmartBasic and never really messed around with machine language to much. Also I have not programmed in several years and the last language I worked with when I did was C++.


However I would be interested in buying a few of these boards and memory expander boards in the future since in theory they would be better then anything else every made for the ADAM so far. Then in the future maybe someone would be interested in making a software driver for 100% of all ColecoVision/ADAM programs so that it would work under HDMI.


If a side expansion board was created with HDMI output then both ColecoVision owners and ADAM owners could use the HDMI output. Back in the 80’s only 500,000 ADAM computers were made and around 2 million ColecoVision’s were made. Since there is a lot more ColecoVisions made when compared to ADAM computers, and since most people using their ADAM are playing videogames like exclusive ADAM games or ColecoVision games, then there would be more of a demand for this type of product if the HDMI output worked with both the ColecoVision and ADAM computer out of the external expansion module interface.

Edited by HDTV1080P
Link to comment
Share on other sites


Thanks for your interest and perspective. Assuming these projects of mine actually, finally, work properly you'd be very welcome to a spare PCB or two - as a general rule I don't do production runs as I do this stuff for a weird form of entertainment and going in to production is far too much hassle. Having said that I'm happy to post spare PCB's on request for a very small donation to cover costs. Also, unless specifically stated otherwise, I always share my files and am happy for anyone to do their own production runs.

I have to admit I tend to go for internal expansion where I can for neatness but see your point abut there being far more Colecovisions than ADAMs. I'm pretty new to the Coleco scene and I'm more than happy to be educated but sadly I don't know it this board would be any use to Colecovision owners as it's video output and USB input run over a serial connection. I suspect this board is really only useful to people who want an MIB3 or Orphanware-like video card for CP/M but can't lay their hands on on. I'm not aware of a way to route VDP output through it...

...again I'd be happy to hear to the contrary but for better VDP output with Coleco systems I believe the F18a is the only game in town - having said that from a hardware perspective it would be a trivial matter to hook up the GPIO headers of a Raspberry Pi to the expansion connector. The Pi could then serve as any expansion hardware required, driver software allowing... one could make a software-based F18a with such a set up, the advantages being extra functionality would be anybody's driver release away and it would be very much more and be within the grasp of a hobbyist to construct without much bother. This is something I really, really like to do but the coding side of such a project is absolutely beyond me - it would be fantastic if the awesome designer of the F18a would consider rewriting his set up to run on the Pi but would he have the motivation?


On the software front I've tried to make sure this board is fully compatible with MIB's drivers so I'm hoping I've got that one covered. It sounds like my update to allow for piggy-back expansion on this card might prove useful - without using programmable logic there wasn't a way to squeeze in a parallel interface, and I hope such an 'expansion bus' will allow for further goodies down the line. On the hardware front I can certainly do a side-port version of this design, given I'm not sure if it would be useful to non-ADAM owners would there be any interest?


Out of boredom and frustration, because my projects are languishing while I wait on components to finish them, I've done a design for an ATmega-based 80 column card I mentioned above that will plug in to the side port and will hopefully output via the 9918... I think I'll start another thread about that and see what people think.

Link to comment
Share on other sites

Ideally such a board would need driver software to make best use of it, but at a pinch could be driven with a few peeks and pokes. So if there's interest, especially if someone wants to write a driver for such a device do let me know.

Looks like you would need to get into contact with William Hicks, Jim Walters or Eric Pearson. Sorry to say that you'll have to contact them thru the Coleco ADAM Facebook page.

Link to comment
Share on other sites

I agree the internal expansion cards are the best option since one does not need to design a external plastic case like the Coleco auto dialer or OPCODE SGM. However if ColecoVision owners were interested in having both SGM capabilities and a HDMI output that one day would work with all ColecoVision games as soon as the graphics driver writes a new patch and operating system then a front ColecoVsion expansion would be cool.


So in summary the front expansion port (side expansion port on ADAM) option would only be needed if ColecoVision owners want HDMI output with SGM support (also USB would be attractive to ColecoVision owners for future modern videogame controllers that use USB). Most likely a serial and parallel port would never be used by ColecoVision owners.

Edited by HDTV1080P
Link to comment
Share on other sites

Ok, a step closer...


My ADAM wouldn't boot with the latest board ordered in place. After much faffing I did a sanity check and the machine still wouldn't boot with a wholly unpopulated board - most odd, especially as the only change I made was to fix the incorrect placements of the PWR and GND pins for a couple of IC' and the Pi header...

...schematic time - no, I did nothing else.

...careful check over the boards - I'll be blowed if I can see any mistakes or indeed manufacturing errors


-Absolutely no idea-


So with a sigh I grabbed one of my first run boards and carefully reworked it to fix the routing errors, rechecked everything, assembled it, plugged in a new Pi Zero, and...


The very good news is the board and Pi seem to be working as far as I can tell, so time to install some drivers and see if I get an 80 column display. Um, two issues:

-I thought I had the drivers for the MIB dual serial board but it seems I don't

-It will be interesting to see if I can work out how to install drivers under C/PM / TDOS, being the n00b that I am.


I've had a good old Google and haven't been able to turn up the drivers, can anyone help?


Micro Innovations Dual Serial Board - the one that goes in the left slot.


Many thanks.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...