Getting Software on to a Minimal Adam System Part 2

Understanding the Adam Link Modem and Eve Serial ports

When the Adam was introduced by Coleco there was also available the 300 baud Adam Link Modem. This modem was installed in the second expansion slot and allowed the Adam to access bulletin boards and information services using a regular phone line. The modem only operated at 300 baud when the standard of the day was 1200 baud and soon after 2400 baud.

To fix this issue many serial expansion ports were released by third party manufacturers that could access higher speeds and allowed you to plug in faster modems. These expansion ports are hard to come by now but if you do run across one you may wish to get it. The standard for the time was the Eve serial board and this is the one I have an will be discussing along with the Adam Link Modem. I will not be giving specific code in this article, just pseudo-code. I will show real code in future articles.

Adam Link Modem (aka 8251)

The Adam Link modem is a combination of serial port and modem in one and there are designs online that will allow you to convert it to a serial port if you want. The main chip is an Intel 8251 PCI. This chip technically can handle speeds up to 64K baud but is limited by the crystal in the modem to a maximum of 1200 baud with modifications. Communicating with 8521 and to the modem is accomplished through two ports, the data port 5Eh and the status port 5Fh.

Eve Serial Port (aka 2651)

The Eve serial port is a full function port that allows you to plug a modem or other serial device into and can be used to speeds up to 19.2K baud though in actuality it works best at 9600 baud or less do to a lack of a hardware buffer. The main chip is a National Semiconductor 2651. Communicating with the 2651 PCI is accomplished through four ports, the data port 44h, the status port 45h, the modem port 46h and the control port 37h.

Initializing

To initialize communications we need to output commands and data to either the 8251 ro the 2651 to get it set up. We are going to assume we are using 300 baud with both but you can use faster speeds 2651 later if you want. So to initialize the port we would do the following:

8251:

; Get the 8251’s attention

Send 80h to port 05Fh
Send 80h to port 05Fh
Send 04h to port 05Fh

; Set up the baud, clock rate, number of bits, parity and stop bits

Send 04Fh to port 05Fh

; Set serial lines RXE, TXE and RTS to make sure modem is hung up

Send 25h to 05Fh

2651:

; Set the mode to 8 bits, no parity, 1 stop bit, 16x asynch

Send value 4Eh to port 46h

; Set 300 baud (for other baud rates use: 35h = 300,
; 37h = 1200, 3Ah = 2400, 3Eh = 9600, 3Fh = 19.2)

Send value 35h to port 46h

; Reset the flags RTS, DTR and enable R/T

Send 37h to port 47h

; Clear any incoming characters

Get byte form port 47h
Get byte form port 47h

Send a character:

8251:

; Keep reading status port till high bit is clear

Loop:
Read status port 5Fh
Jump to Loop if bit 7 is not clear
Send character out port 5Eh

2651:

; Keep reading status port till low bit is clear

Loop:
Read status port 45h
Jump to Loop if bit 0 is not clear
Send character out port 44h

Read a character:

8251:

; Get character if there is one

Read status port 5Fh
Return if bit 6 is clear
Read character from port 5Eh

2651:

; Get character if there is one

Read status port 45h
Return if bit 1 is clear
Read character from port 44h

 

Getting Software on to a Minimal Adam System Part 1

Hello everyone. I would like to apologize that it has been awhile since I last posted, life gets in the way. I am going to start posting more often now that things have settled down.

This post starts a series that will look at getting software into a bare minimum Coleco Adam with just a data drive, an Adam Link modem and either, Smart Basic, Smart Logo or CP/M on data tape. The reason I want to do this is to help you understand what you can do with this system without adding new hardware or spending a lot of money on software.

We will look specifically at adding software to the Adam using this bare configuration. I selected this configuration because this is how I started out and I see a lot of systems selling that have this basic settings. I will also explore how to do it without an Adam Link modem using just the joystick ports and a EVE serial port if you happen to have one.

As I post these articles feel free to ask questions and if you have a different minimum setup let me know. The articles will be in the following order over the next few weeks:

  1. Understanding the Adam Link Modem and Eve Serial ports
  2. Using CP/M (or TDOS)
  3. Using Smart Basic
  4. Using Smart Logo
  5. Using the Joystick Port
  6. Transferring Files to the Adam

AViD My Current Project

Prototype AViD
Prototype AViD

I have mentioned on Facebook and on Atari Age that I am working on a way to plug a stock Adam into a PC and have the PC then act like an Adam Disk Drive (or other SmartNet device) with no additional hardware or software being necessary on the Adam. I have given this project a name, AViD (Adam Virtual Device) I am happy to say have reached a milestone in the project.

Some background on the Adam and how it communicates

AViD plugged into the USB -RS232 adapter and extra USB 5V power for keyboard
AViD plugged into the USB -RS232 adapter and extra USB 5V power for keyboard

The disk drives and the keyboard plug into the CPU and use a quasi – serial network called SmartNet. All devices communicate on a single shared transmit and receive wire at 62,500 baud 8 bits, 1 stop bit no parity. I know these details because of a single piece of paper I got in a large Adam collection I purchased The paper was from the electronics reseller Jameco which was included when you purchased a surplus Adam keyboard from them and it gives the specs and a very simple circuit diagram to interfacing with the keyboard. This shared wire and the unusual baud rate makes it very hard to connect it to a PC (or other system) where this baud rate is not supported and this may be why nothing like this has been tried before. Researching the internet I found a USB to RS232 adapter which supports this unusual baud rate. Using this adapter, the simple circuit diagram and some software I have written I have successfully connected an Adam keyboard to a Windows 7 PC and am able to communicate with it.

Houston we have lift-off

"Hello World" from the AViD plugged into the PC
“Hello World” from the AViD plugged into the PC

Now that I can read the keyboard the next step will be to switch the system and have a real Adam ask the PC for keystrokes. These can come from the keyboard or from a text file.

Down the road

Once I am totally confident in the PC “typing” to the Adam on the SmartNet the next step will be to have the PC act as a disk drive, responding to the Adam and sending and receiving data.

The sky’s the limit

Since all communication to the keyboard, disk drives, printer and  possibly digital drives goes through the SmartNet the PC can play many roles. One may be to intercept printer commands and then print to files on the PC.

How can you help?

If any of you happen to have any details on how the Adam communicates to the drives (or vice versa) or source code (EOS or OS7) that show how this is done I would be very happy if you could leave a reply here with that information or where  I can find it. I can always be reached on FaceBook too in the Coleco Adam page.

 

Null Phone Adapters for Sale

IMG_4031I am currently selling adapters that I have built that allow you to connect two computers together via modem’s without the need for any phone service. These are very simple to use:

  1. Plug phone cables into the adapter from the 2 computer’s modems
  2. Plug 9volt battery into adapter

From here you would just use the terminal programs (or BBS programs) you have on the 2 computers to get them to talk to each other.

To purchase one via eBay click here.

IMG_4029If you want a more permanent solution than the 9 volt battery you can replace it with a DC adapter, red is positive (+), black is negative. I have tested it with voltages from 4.5 volts up to 12 volts though I recommend sticking with 9 volt.

If you want to build one yourself you can look at this webpage for the details on how it works (http://www.jagshouse.com/modem.html). Parts wise you will end up spending about the same as I am selling them for.

To purchase one via eBay click here.

 

https://www.youtube.com/watch?v=i7zkYPUPjdU

Direct connect Adam to PC via Adam Link Modem

This is relatively easy to do. This web page (http://www.jagshouse.com/modem.html) describes how to create a simple circuit to simulate a phone line. Once you have this you can plug the Adam Link modem into it and it into a PC. On the PC start HyperTerminal (or other terminal program).

To connect:

  1. On Adam set modem parameters using AdamLink to 8 characters, 1 stop bit, no parity
  2. On PC type ATE1X1 then enter to the modem. This will enable modem commands being echoed to screen and tells modem to ignore lack of dial tone
  3. On PC type ATDT123456789 then enter to dial modem, a long number gives you a few extra seconds to get to the Adam
  4. On Adam select Answer then select Online

Once you have connect the connection will remain if you reset the Adam to load CP/M or SmartBasic

Replacement Adam Keyboard Cable

rj11After a little research I realized that the keyboard cable is not wired like most cables.

Standard six wire phone cable:

1 ------> 1
2 ------> 2
3 ------> 3
4 ------> 4
5 ------> 5
6 ------> 6

Adam keyboard cable:

1 ------> 6
2 ------> 5
3 ------> 4
4 ------> 3
5 ------> 2
6 ------> 1

I had to make a new cable for an Adam that I purchased that didn’t have one and wiring it like this just fine.