Jump to content
IGNORED

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


CharlesMouse

Recommended Posts

Hello all.

 

I tend to lurk rather than post but had a couple of ideas for ADAM upgrades for sharing:

-I got as far as a v1 schematic and layout for a Micro Innovations compatible Dual Serial card

-Internal AY Sound chip upgrade consideration

 

The dual serial card was intended to have a Pi Zero hangaring off it; primarily to run PiGFX for a HDMI/Composite 80column output for CP/M on the ADAM, along with a secondary serial port for communications. Of course with a Pi inside the machine the options are endless. (see Apple2Pi as an example) The compatibility with a known card because I'm no programmer and wouldn't be up to writing drivers. TTL level only to save on cost, and laziness.

 

Like the idiot I am I accidentally deleted my Eagle schematic for the board. !!! :-(

 

I still have the .brd file so could still make gerbers for fabrication with what I have, and I did at least take a screen-shot of my schematic...

 

...anyway I'm feeling pretty ticked-off at the mo' and it might encourage me to continue if there was any interest or indeed suggestions.

 

For now:

-See attached screen-shots of the board layout and schematic

-Also attached is a .JED file for the GAL - If anyone has the original from the Micro Innovations board that would be great.

As already mentioned I'm no coder and my attempt at reverse-engineering the original may be no good.

-This version is intended for Slot P7, as per the original, but as I've now got a MicroFox IDE card (excellent) in that slot I was going to rework it for P6 or P5 - thoughts? It wasn't my intention to use the external expansion connector for obvious reasons...

 

PS

...related to that I'm tempted to make a AY-based sound card for the ADAM to allow otherwise ADAM-compatible SGM software to have sound.

If I get round to that I will, of course, share. The plan for now would likely be an internal upgrade, likely plugged in to the Z80 socket. Partly because I don't like having stuff hanging out of my machines, and partly because DIL-40 sockets are easy to source while leaving all the native slots free.

Thoughts welcome.

2SER2B1.JED

post-35234-0-99998500-1552866301_thumb.png

post-35234-0-22182000-1552866319_thumb.png

  • Like 1
Link to comment
Share on other sites

Strapping a Pi to the Adam certainly opens up a lot of possibilities, and it also adds a lot of philosophical questions about what makes an Adam an Adam.

 

So instead of all of that, I'm just wondering why you want a MicroSD card as part of your card... why not use the one built into the Pi? Why have a modem port when the Pi can add WiFi to the Adam?

 

For that matter, why keep the Adam at all? If someone made a keyboard/joystick interface, and a cartridge slot card for a Pi, and made it work with the Adam emulator, would I need to keep my aging hardware at all?

 

Or even keep the cartridge slot, for that matter, considering every cartridge except for some homebrews have been dumped to image files.

 

Just wondering out loud.

Link to comment
Share on other sites

Fair questions, I'll try to make more sense.

 

In the 'good old days' many computers didn't have video-out capability as such, or indeed a keyboard interface. Instead they pushed said output, and received input, via a serial port. It was up to the user to find a way to make that serial communication useful...

...then machines like the ADAM came along with their 'fancy-pants' graphics chips and keyboards so 'we' kind-of forgot about serial communication.

 

Now I'm pretty new to Coleco systems so excuse me if I don't get this 100% on the nose.

 

Being Z80-based the ADAM can run CP/M, which is nice, but CP/M likes to display in 80 columns which a stock ADAM can't do. IMO this hobbles CP/M use a bit...

...as I understand it you could upgrade your ADAM to run 80 columns for CP/M use but I understand such upgrades are rare as hen's teeth and very, very expensive even if you do find one.

 

But all is possibly not lost. I understand the 80 column solution(s) for the ADAM weren't really graphics cards as such but hardware serial terminal emulators as found as in older computers...

...now I can barely program but if the hardware existed once, so do the drivers. What I can do if knock-up a bit of serial hardware that's compatible with said drivers and interface that with a Raspberry Pi. Why a Pi? Well, a Pi Zero costs buttons, is easy to come by, isn't hard to interface with a serial connection, and crucially there's already a VT100 terminal emulator for the Pi that runs on the bare metal and so boots very fast.

 

To summarise:

-Clone a suitable ADAM serial expansion board

-Tie a Pi running PiGFX to that

-Plug one end in to the ADAM

-Plug the Pi's HDMI or Composite video in to a monitor

(maybe even plug in a USB keyboard if you wish)

...and you have a functioning recreation of an ADAM upgrade that's basically impossible to find these days. Plus the Pi's VT100 can do colour, has HDMI, and with some imagination can be persuaded to run other stuff*

 

*There's a project called Apple2Pi for, um, the AppleII series of computers that's well worth a look at to see how far the possibilities could go.

  • Like 1
Link to comment
Share on other sites

The f18a graphics chip upgrade has an 80 column mode. I think software would have to be written/modified to make use of it.

 

And the pi used the way described above doesn't change the adam from being an adam because the pi is not running the application software.

  • Like 1
Link to comment
Share on other sites

Why? Because an emulated ADAM isn't an ADAM. I use an ADAM emulator all the time, but there is nothing like firing up the real hardware to do stuff on.

 

For that matter, why keep the Adam at all? If someone made a keyboard/joystick interface, and a cartridge slot card for a Pi, and made it work with the Adam emulator, would I need to keep my aging hardware at all?

 

  • Like 1
Link to comment
Share on other sites

sigh, here come the purity criticisms.

 

@CharlesMouse - please, just do it. This is useful, and will bring the ADAM into the 21st century. :)

 

-Thom

 

No, not at all. I was really trying to find out what the OP's reasoning for this was, and what some of the hardware choices are.

 

I still have my physical Adam, with quite a few add-ons as well. Having said that, I use emulation 2/3rds of the time because of ease-of-use.

 

Where will I be in 5 years? Hard to say, depends on my options. This is one more option that I'm actually quite interested in.

Link to comment
Share on other sites

Why? Because an emulated ADAM isn't an ADAM. I use an ADAM emulator all the time, but there is nothing like firing up the real hardware to do stuff on.

 

 

Don't worry, Joe... I agree with you. I was just trying to sort out a few questions, and the OP answered all of them.

 

I love the old physical computers. Been thinking of adding a 5.25" drive to my TRS-80 Model 1, just 'cause I miss the sound the drives made. There are many superior replacements available but the old way is foremost on my mind.

Link to comment
Share on other sites

Thanks for the interest chaps, I think I'll keep plugging away at this one now I'm feeling less annoyed for loosing my Eagle .sch file.

 

For the concerned I'm not proposing a total brain-swap, just a convenient way to re-create an upgrade that's pretty well impossible to find these days.

FWIW: My personal interest in these old machines is to see how far I can upgrade / hack the original hardware, in a sympathetic fashion. There's certainly a place for those who want to keep their machines 100% original, and equally a place for those who want to go bananas... although personally I'd prefer it if machines that are gutted for uses such as retro PC cases are ones that are otherwise beyond repair.

 

A quick, dumb, question if I may..?

I made the above design to work in slot J7 as that's the slot the card I cloned was intended for. As I now have a MicroFox IDE card that's no good to me and on further thought I think I'll take a crack at using J5 instead - I've already soldered an extra 64k to the motherboard making J5 redundant for memory expansion, and I may want J6 for adding I/O or ROMs in future...

 

...well, I can't for the life of me remember where I found the pin-out for J7 and now can't find the pin-outs for J5 or J6 - AFAIA the TRM lists the slot signals but not the pins and I'm a little wary of the schematic I have. Can anyone help?

 

Thanks.

Link to comment
Share on other sites

Using J5 (Slot #3 the Memory Expander slot) will be an issue for a most ADAM users who already have a 64K, 256K or 512K Memory Expander in that slot and there are a lot of 3rd party apps and games that require expanded RAM. I understand full well that using J7 (Slot#1 for IDE, Serial or ADAMLink Modem) is an issue especially for those with the IDE Interface and CF Card by MicroFox, but it's easier for me to live without the IDE setup versus Memory Expansion especially with the SD Drives (VDD and ADE) that are available.

 

Have you considered the side Expansion Interface although that would eventually lead to wanting to have a case for it like the AutoDialer or Opcode SGM.

  • Like 1
Link to comment
Share on other sites

@tschak909:

:-) I'm rather hoping this board, when I'm hopefully done, will be right up your alley. Both serial ports will have headers so there's no need to use a Pi as a terminal emulator if the secondary 'modem' port isn't suitable...

...a lot of this is going to ride on if I managed to reverse-engineer the GAL of the card I'm cloning properly - I really do suck at coding.

 

@NIAD:

:-) Thanks for the feedback. Yes, I think you're right. It's just I don't like having things dangling out of my machines, hence my reluctance to use the side port...

...but I guess that's an excuse to design a case too!

I have to admit I upgraded my ADAM with an extra 64k by piggy-backing RAMs over the originals. Even more memory would be nice, especially if that proves useful for CP/M or TDOS. I must see if I can find a schematic for that too, if I can find one.

 

Might I ask a question? This card is a shameless clone of the MI_2SERB1 card as it's design suited my needs and as I suck at coding I didn't want to get in to trying to write my own drivers - especially as I'm really new to the ADAM...

...as mentioned above I'm not at all sure I did a functional job of reverse-engineering the GAL for that card. I don't suppose you know if there's a place where I can download the origial .JED file for use in my own GAL?

If that's not possible / not on I quite understand. I can always keep my fingers crossed that my version actually works... of as a last resort do it in TTL.

Edited by CharlesMouse
Link to comment
Share on other sites

@tNIAD:

:-) Thanks for the feedback. Yes, I think you're right. It's just I don't like having things dangling out of my machines, hence my reluctance to use the side port...

...but I guess that's an excuse to design a case too!

I have to admit I upgraded my ADAM with an extra 64k by piggy-backing RAMs over the originals. Even more memory would be nice, especially if that proves useful for CP/M or TDOS. I must see if I can find a schematic for that too, if I can find one.

I hear you. I prefer to keep everything internal as well, but when you gotta go outside the box.....

 

There is no way to piggyback anymore RAM onto the motherboard as you did with the first 64K expansion. I am pretty sure that the ADAM can handle an additional 128K of expansion RAM without the need for a memory addressor, but once you go to 192K and larger, a memory addressor is needed.

 

Might I ask a question? This card is a shameless clone of the MI_2SERB1 card as it's design suited my needs and as I suck at coding I didn't want to get in to trying to write my own drivers - especially as I'm really new to the ADAM...

...as mentioned above I'm not at all sure I did a functional job of reverse-engineering the GAL for that card. I don't suppose you know if there's a place where I can download the origial .JED file for use in my own GAL?

If that's not possible / not on I quite understand. I can always keep my fingers crossed that my version actually works... of as a last resort do it in TTL.

You will have to ask Bob Slopsema (adamcon) or his son, Doug. I know they looked into cracking the GAL for years with no luck.

Link to comment
Share on other sites

Thanks again NIAD :-)

 

Ahh, so the GAL was locked to prevent reading..? That's a shame. Oh-well I guess I'll have to keep my fingers thoroughly crossed with what I've done.

 

A quick moan (I do like an occasional moan) before I get on with developments. I know I'm very new to things-ADAM so feel free to educate me if I've gotten the wrong end of the stick...

...what possessed the ADAM's designers to design their expansion slots this way?

-Four places for user expansion (great) but all different sizes and/or wired up differently - why..?

-I know the Z80's pins aren't arranged that logically but did the ADAM's slots have to be so 'random'?

-Is there a reason why Coleco couldn't have gone with a standard pin-out for all the expansion slots, preferably arranged a bit more logically?

 

Oh, and you could say I'm just stupid but after re-checking my v1 layout, getting very confused, and then cross-checking the schematics by way of my ADAM and a multimeter it turns out I got the pin-out all wrong. *sigh* So I spent the better part of this afternoon writing out what I believe to be the correct pin arrangements for J5-J7 and then committed those to an Eagle .lbr file.

-Again, you could rightly say I'm just stupid but as Coleco was good enough to publish a pin-out for the side connector would it have been any trouble to do the same for J5-J7? (In case any are wondering my mistake was to assume the slots are arranged in the same manner as the side-connector: Up one side and down the other, but actually the ADAM's slot pins alternate.)

 

Progress:

I've re-spun the design to use Slot J6 as that won't interfere with MicroFox's IDE board, or a memory board in J5. Again that's just my preference for keeping this neat and tidy.

-Are there any commonly used cards that use J6, other than serial/parallel ones?

-There is the small issue that I need a way to neatly bring the HDMI/Composite signals out and optionally serial and USB too...

...I know, just do a side-port version.

 

post-35234-0-74077800-1553392062_thumb.png

post-35234-0-24292800-1553392075_thumb.png

Link to comment
Share on other sites

Indeed, it would have been nice if the 3 internal expansion slots could or would have been identical/standardized and expansion cards could be installed in whichever one the user preferred. There must be a reason for the way Coleco designed them, but someone with the hardware knowledge such as Rich Drushel (Dr. D) or Doug Slopsema would be the ones to ask.

 

The center expansion slot (#2 as we always referred to it) is used for Parallel Interfaces which can also supply the Memory Addressor function needed for 256K and larger Memory Expanders. Some of these Parallel Interfaces also supply a Boot Prom socket for instant loading of the program on the prom such as the IDE CF driver or SmartBASIC. Micro Innovations also made Multi-Purpose Interface cards (MIB2 and MIB3) that installed in this slot that supplied everything just listed as well a 2 Serial Ports.

Link to comment
Share on other sites

My thanks again. :-)

 

For any who are interested I'm about to send off the Gerber files to Seeed Studio (my favorite DIY PCB fab house) to make a test board or two. I'll post here again when I have the boards back (about 2 weeks)

 

Wish me luck:

-Is the design actually good? (hopefully)

-Is my JED file for the GAL actually functional? (likely not but you never know)

 

I've attached the necessary files for any who want to make their own but I strongly suggest waiting until I can say it actually works. You will need the means to program the GAL with the .JED file (assuming that works) along with the usual basic soldering supplies.

 

 

Coleco_Serial_Pi_v1.zip

Link to comment
Share on other sites

Me again...

 

Having whetted my appetite with addressing and control logic (many thanks for helpful comments) I thought I'd revisit this 'design' before I sent off the gerbers to make a PCB or two...

...I was just going to be lazy and use a GAL as per the MI serial card this beastie is cribbed off. But as I'm too cheap to buy a GAL programmer, I'm not sure my .JDEC file is good anyway, and even if it all works using a GAL might put off others, I thought I'd better have a go at replacing it with 'standard' logic.

 

1) The code for the GAL:

Inputs:

A0-A7 = Z80 Address Lines A0 - A7

WR = Z80 Write Pulse

RD = Z80 Read Pulse

IORQ = Z80 I/O Request Pulse

 

Outputs:

SIOEN = Serial I/O Chip Enable

RESET = Serial I/O Chip reset

 

| High: A[0..7], RESET

|

| SIOEN = IORQ & A[7..4]==01H

| RESET = IORQ & WR & A[7..0]==1CH

 

...so I need to generate "SIOEN" and "RESET" to feed in to the serial IC

 

Attached is an Eagle Schematic of what I have in mind. The GAL16V8A is still present to illustrate it's connections. Around that is my replacement logic:

-A 7404 for inverting any expected highs on the address lines

-Two 4048's to take the address lines and any inverted inputs to make those outputs

-The "SIOEN" 4048 also takes /IORQ as per the above code

 

...now the 4048, that I've recently discovered, has only one "EXIN" and the code above suggests "RESET" needs both /IORQ and /WR. Hmm.

Looking @ the data sheet it seems I could string two 4048's together but that seems wasteful to me. I guess as could use a 7408 to AND /IORQ with /WR then send that to the 4048's EXIN... but it offends me to use a whole IC and only use one gate...

...so I'm hoping to AND those lines with a couple of diodes and a resistor before passing the result to the 4048.

 

So...

Might I ask yet another favour? Would anyone mind doing a sanity check on the included schematic?

Is the above plan workable? Does it look like it will recreate the GAL I don't really want to use?

 

Many thanks :-)

 

PS

Assuming all is good the GAL will be gone. It's just there for illustration.

post-35234-0-85854000-1554138496_thumb.png

Edited by CharlesMouse
Link to comment
Share on other sites

I have a GAL programmer but I have not used that feature yet. It would be nice to have a MIB3 compatible board go back in production for those that need a spare. Perhaps with todays technology the addressor card could be built into the memory expander instead of having to have a jumper wire between the memory expander and the MIB3 card. I wonder if slot 3 in the ADAM could handle a addressor card being built into the memory expander.

Link to comment
Share on other sites

Sadly, I believe, my Willem programmer will do most things but not GALs so on the odd occasion that I do need to program a GAL it's the old 'hook it up to a parallel port with some resistors and wire in a PSU' method. Which is a bit dodgy and a pain. Happily recent projects have, I hope, added to my understanding to the point where I can make a stab at recreating a GAL's logic in more easily sourced off-the-shelf ICs. I've nothing at all against programmable logic but I find it a pain to use for simple personal projects, especially as I like to hope others might find my projects useful and such methods can be very good as putting others off.

I think it's awesome that (assuming I can report back that these designs actually work) someone can say "Hey, I want one of those." Send the Gerbers to a PCB fab house, and with very minimal soldering skills have something they otherwise can't get and the satisfaction of having made it themselves.

 

I have to say I'm having lots of fun with my ADAM. It's foibles only add to the charm, but I wish the expansion ports were a bit more sensibly conceived...

...I'm always open to suggestions to try my hand at. (Please be aware that I've yet to demonstrate that any of my projects actually work) I believe the MIB3 is basically an MIB2 that this card is cribbed from with the addition of a parallel port so that could be a direction to try next.

 

Sadly, again as far as I'm aware, no one slot has all the required lines to make a single really awesome card so it's multiple cards and jumpers. I went for a 1Mb card because that was the least effort with the knowledge and information I had to hand. From what I've recently learned the ADAM can handle 16Mb - pointless, but cool enough that I'm tempted to give that a go, assuming I don't find myself reporting back on the three projects I've started so far that they don't work.

 

...rambling again.

Edited by CharlesMouse
Link to comment
Share on other sites

I have the JEDEC file for the MIB3 GAL.

Ooo, that's most interesting.

 

Um, I don't suppose you would consider sharing?

 

If I remember correctly the schematics for the MIB3 are available so with the JEDEC file it wouldn't be a huge hassle to redo the board in Eagle and post some gerbers for people to be able to make their own...

...I presume the MIB3 is out of manufacture and there might be some interest for some in being able to make their own?

 

If this card I've based off the MIB2 actually works as intended that's all the functionality I'm after but I'd be happy to do the job on the MIB3 front.

 

PS

I didn't post the (hopefully) final schematic & layout for this board, so here they are. I haven't posted the Eagle Files for any of the boards I've done as I'm not sure how useful they will be but I'm happy to do so if anyone wants them - In the past it's been a real frustration to me when I've come across the gerbers (or slightly more helpfully an image of a schematic) for a gizmo I want, but maybe want to alter, and have had to spend an age recreating the design just so I can then go forward when access to the original files would have made life much, much easier...

...having said that I'm always grateful to anyone who shares their work, in whatever form.

post-35234-0-03968400-1554463626_thumb.png

post-35234-0-79599200-1554463637_thumb.png

Edited by CharlesMouse
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

If I understand this correctly, you will be using the Rpi essentially as a serial terminal to achieve 80 col under CP\M with console redirection to the serial port in the latter?

Apologies in advance if I am way off here. Medicine is more up my alley icon_smile.gif

Ah-ha, another doctor..?

 

Sorry for the horribly slow reply. You're exactly right the RPI will be doing the job of a serial terminal - VT100 out (with colour support as a bonus) and USB keyboard in should that be wanted.

The rest of the board is a MIB2 clone, assuming it actually works. It has the same serial and modem interfaces although to keep the cost and component count down 'my' version has no driver IC's so it's unprotected TTL only. Fine for interfacing the Pi but important to be aware of for other applications - an absolute minimum of 1K current limiting resistors on the lines would be sensible.

 

The DIY game pad I made took longer to get working than I expected so I've yet to get round to building this one. News shortly... I hope good news.

Edited by CharlesMouse
Link to comment
Share on other sites

Ah-ha, another doctor..?

 

Sorry for the horribly slow reply. You're exactly right the RPI will be doing the job of a serial terminal - VT100 out (with colour support as a bonus) and USB keyboard in should that be wanted.

The rest of the board is a MIB2 clone, assuming it actually works. It has the same serial and modem interfaces although to keep the cost and component count down 'my' version has no driver IC's so it's unprotected TTL only. Fine for interfacing the Pi but important to be aware of for other applications - an absolute minimum of 1K current limiting resistors on the lines would be sensible.

 

The DIY game pad I made took longer to get working than I expected so I've yet to get round to building this one. News shortly... I hope good news.

 

Very cool! I assume one could still use the Adam's keyboard instead of having to plug in a USB keyboard?

As a fan of CP/M, I would love to see this project come to fruition. Please keep us posted!

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.

Guest
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.

Loading...
  • Recently Browsing   0 members

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