Converting an Audio Tape Into a Digital Data Pack

If you are using an Adam computer with just a digital data drive you will eventually come to a point where you will need more data packs. There are a few possibilities available, you can purchase used ones and hope they are still good, you can buy NOS (New / Old Stock) (ANN sells them here) or you can make your own!

Getting started:

To get started making your own you will need a few things:

  1. A dual cassette tape deck, the simpler the better. Those with complicated levels and equalizers will make it hard for you to get it right. I use a $5 all-in-one system (Record, Radio, Dual Cassette) I got at a yard sale and it works flawlessly
  2. A good digital data pack to use as a master that has a holes in it for the capstan
  3. 60 minute blank cassettes. I have used Scotch, JVC and Maxwell but others will work too
  4. A simple soldering iron (or a drill with 1/4″ bit) and a utility knife or exacto-knife

Step 1: Preparing the audio and testing

We need to prepare the audio tape as follows:

  1. Turn tape over so side B is showing
  2. Plug in soldering iron
  3. When iron is hot we will melt two holes in the top of the case right below the record enable tabs, refer to the pictures and an original data pack. Do not go through the other side, just the B side
  4. Once plastic is cool use the utility knife to clean off any excess

Now we want to test if the tape will work in an Adam. Some tapes are made cheaply and they bounce around at high speed. To test it:

  1. Turn on your Adam
  2. Press Escape / WP to get into word processor mode
  3. Put in the new tape into drive A, it should go in easy, if it is hard to get in make sure the holes are big enough and that you cleaned away all the debris
  4. Press Store / Get
  5. Press VI (Get)
  6. Press III (Drive A)

The tape should fast forward to the beginning and back a few times before Smart Write gives up. You want to listen to be sure that the tape is not bouncing around. If it is do not use that tape, if it isn’t then we can proceed.

Step 2: Testing the Master Data Pack

We need to make sure the data pack will work in your tape recorder. Original Coleco data packs will not without doing a little “surgery” to the case. Before we do this check all of the data packs you have and look for ones that have 4 holes in the tape read area. The Coleco packs had 2 next to the place where the read head goes and the markings for the other 2. If you do a side by side comparison of the data packs and the audio tape you will immediately see the holes I am talking about. If you do not have a data pack with the necessary holes you can create them with a drill but you have to be very careful and pull the tape away from the hole.

Once you have located or created a Master Data Pack, put it in the tape record and make sure that it will go in correctly like an audio tape will.

Step 3: Setting up the Tapes for Copying

Before copying we need to get the tapes into position. To do this:

  1. Rewind both tapes on Side A – (on a data pack, Side A is the side without the two holes on top – the side you see when it is in the Adam)
  2. Use a pen or pencil to slowly advance the tape until the leader is just about ready to go around the roller

Step 4: Copying

I am going to use my tape deck setup as the example.

  1. Put the audio tape in the record deck. Press Pause and then the Record / Play button
  2. Put the Master tape into the play back deck
  3. Press Play on the master, the record deck starts automatically
  4. Once the master is playing stop the record deck
  5. Rewind the master a bit and listen for the high pitched sound of the data. Keep doing this till you find it and then let it play till it stops and go about 5 seconds further. Press stop and flip the tape over
  6. Rewind the audio tape the same as you did with the master, listening for the end of the data and then go about 5 seconds further. Press stop and flip over
  7. Press Pause and then the Record / Play button on the audio tape
  8. Press Play on the master

Step 5: Did It Work

If all has gone well you should now have a copy of the master on the audio tape. You can try to use it in the Adam now but I have learned that the copies are not faithful. But this is ok, we really only wanted the index marks that the Adam reads on the data pack from the master data pack, not the data. So my next step involves using CP/M to format and then verify the tape. The reason I use CP/M is that the verify actually verifies every block where as the INIT (initialize) in Smart Basic only initializes the directory. You can use Smart Basic if that is all you have, or even TDOS or File Manager.

Over the past 2 days I have made 12 Audio Data Packs, seven from older audio tapes I had and 5 from brand new ones. Of the older tapes, 2 failed. Of the new tapes all 5 worked.

Good Luck 🙂

P.S. The beautiful woman in the pictures is my wife Heather <3

P.S.S. Let me know if in the comments if you try this and the results you get.

MakeRRom – a simple utility

Based on a conversation I had on FaceBook and after reviewing the disassembly of the program written by Stephen Munnings in 1985 called GameSave that would dump the contents of a cartridge plugged into the Adam to a file in CP/M that you could then execute I have created a newer hybrid version of this: MakeRRom.

MakeRRom (Make Run-able ROM) is a program written in Turbo Basic, an old MS-DOS compiler created by Borland that I have been using for almost 30 years. MakeRRom will take a PC file that contains a ROM cartridge dump and create a CP/M (or TDOS) compatible program that you can then import into a disk image for use in the ADAMEm emulator or copy over to your real Adam. Unlike GameSave you do not have to have the cartridge and you create your files on your PC.

How it works:

The heart of MakeRRom is a 32 byte Z80 assembler routine that handles setting up the Adam to execute the file as if it was a ROM cartridge:

The program MakeRRom then takes this code, appends the code for the ROM cartridge and then saves it as a .COM file to be used in CP/M or TDOS.

When you run the created file the Z80 code will copy the appended ROM data to 8000H (the upper 32KB bank of RAM) and then copy the small loader called JumpCode to the top of memory and execute it. JumpCode in turn sets up the Colecovision OS7 Rom in the lower 32K bank and jumps to the cartridge start point.

How to use MakeRRom

MakeRRom.exe is a 16 bit program so you may need to run this either in DosBox or on an older PC. To use it, copy MakeRRom.exe and the ROM file you want to work with into the same folder. Then at the dos prompt type:

C:\> makerrom filename.ext

And after a few moments it will create a file called filename.com that is your ROM file and the loader.  Then you can use the process I described here to import it into TDOS or CP/M.

In the download below I have included a copy of the Cabbage Patch Kids Adventure ROM called patch.rom and the resulting patch.com file. If you use Debug to view the ROM file and the .COM file you will see how the first 32 bytes of the .COM file are the Z80 loader.

Cool – but why do it?

The simple answer is because I can. The more complex one? I can download all the Colecovision ROMs online, batch convert them into .COM files, import them all into a TDOS IDE image, copy the image to compact flash and now have all of them available to run at anytime on my Adam 🙂

Downloads:

How to connect a Mega Copy

Here is a quick post on how to plug one of the rare Mega Copy devices into your Adam. A Mega Copy was a device that was plugged into your Adam in between the Adam and the second data drive. When it was used it allowed you to copy a data pack onto a blank audio tape. A very useful thing to be able to do!

Below are pictures of how you connect it. Look closely to determine the alignment of the cables, do not plug them in backwards, you may end up ruining the device.

Once connected, turn on the Adam and boot the Mega Copy tape or disk.

Fixing a Bad Video Screen

If you come across an Adam that has a lot of static, sound issues, or no display on either channel 3 or 4 there is a simple fix for this. It requires opening up the system to get to the Colecovision board. To do this:

  1. Unplug the memory console from everything
  2. Remove the expansion slot cover
  3. Remove any cards in the expansion slot
  4. Unhook and remove any digital drives and empty drive face plates
  5. Turn over system and remove the 4 screws that hold on the face plate and the 8 screws in the recesses on the bottom
  6. Flip back over and remove the face plate and the top cover
  7. Now that you have the system open remove the 2 reset buttons, they just slide off and then remove the screws holding the top RF shield in place
  8. Towards the back of the Colecovision board you will see a metal box. This is the RF Modulator. Pop off the metal cover and you will see this circuit board

For the next step you will need a plastic screwdriver. A metal one will conduct electricity and can short out your computer.

Once you have the screwdriver, reconnect your Adam to the TV, plug in the keyboard and hook up the power supply from the printer then turn it on.

Using the plastic screwdriver, slowly adjust the Channel “B” alignment screw clock wise or counter clockwise till you have a good signal on both channel 3 and 4.

To adjust the audio we need some sound. The best thing to use if you have one is a game cartridge that plays music when you turn it on. Put one in the Adam and pull the right reset to start the cartridge. Now using the Audio subcarrier alignment screw you can turn it a little clock wise or counter clockwise to fix the sound.

Once you have done all this you can unplug everything and put it back together.

Turbo Pascal for CP/M and TDOS

I just finished making a CP/M (TDOS) data pack for Don in Canada containing Turbo Pascal 3.0. It was a little project getting it from the Internet into an emulator and then over to a real Adam. The steps involved were:

  1. Find and download the software software (Duh)
  2. Arc all the software using PKARC
    At the time of this post I am waiting for a new Compact Flash adapter otherwise I would have used the method described in the Making Tapes and Disks post to get the files on to a tape. But since I can’t at this moment I instead copied the archive to the Adam using Hyperterm on my XP system, a null modem cable, the serial port and QuickTerm on the Adam in TDOS. Once I had it on the Adam I could continue:
  3. Unarc the archive in TDOS
  4. Use the PDTINS.COM file to setup the terminal for Turbo Pascal. The Adam uses a Heath 19 emulation in TDOS but I learned that the Lear Adam 25 works on the adam too

After this I took a freshly formatted CP/M tape and copied the files to tape from the CF on the Adam.

Downloads

Making Tapes and Disks from Images

If you are like me eventually you are going to want to copy images to real media to use on your Adam, or copy real media to images for archiving or emulator use. There are a number of ways to do this.

Note: I have included all the programs and files needed at the end of this article

1. Disk and DCOPY

If you have a disk drive you can use an older PC with a double density 5 1/4″ drive*, MS-DOS and DCOPY to make an Adam disk from a disk image. DCOPY can create a disk image from an Adam formatted disk or create a disk from an Adam disk image.

*To make sure that your 5 1/4″ drive can do double density you can use the program TESTFDC which will test the capabilities of you drive and tell you what it can and can’t do. You can also use the MS-DOS command FORMAT ?: /1 /8 where ? is the drive letter (A or B). This will format a disk so that it is ready to use with DCOPY, if the format fails then odds are your drive can not do the lower capacities.

Creating an image

To create an image from a disk, insert the disk in your floppy drive, we will assume, it is drive B, then at the dos prompt type:

C:>dcopy b: /t:40 /s:8 /h:1 filename.ext

Where filename.ext is the name of the image you wish to create.

Creating a disk

To create a disk from an image, insert a blank disk in your floppy drive, we will assume, it is drive B, then at the dos prompt type the following:

C:>format b: /1 /8
C:>dcopy filename.ext /t:40 /s:8 /h:1 b:

Where filename.ext is the name of the image you wish to write to disk.

2. Compact Flash and TDOS

This method will let you create not only disk but tape images. The steps are a little more involved but not too difficult. To do this you will need:

  1. The AdamEm ADAM emulator that supports the Compact Flash (CF)
  2. HDD Raw Copy tool that allows your to read and write images to and from CF
  3. A CF Image that has TDOS
  4. The IDE disk image
  5. A blank 64 MB or larger CF
  6. Blank disk and tape media images
  7. A PC that has a CF adapter
  8. The Dragon’s Lair tape and disk images

If you do not have the emulator installed, unzip it to its own folder. You will also want to also unzip the HDD Raw Copy tool, the IDE disk image, blank media images, Dragon’s Lair images and the TDOS CF image into this folder.

Now open up the adamem.cfg file in the folder using NotePad and edit it to look like this:

-video 2 -da ide.dsk -idea tdos4-59.img -db diskette.dsk -ta datapack.ddp

This tells the emulator to use 320×240 video mode (-video 2), assign the image ide.dsk to disk drive A (-da) and to use the CF image tdos.img (-idea). We are also assigning drive B to a blank diskette image (-db) and tape drive A to a blank data pack image (-ta). You can substitute the filenames of real images if you are going to be making real media from the images.

A quick word on drive letters, numbers. There is no real consistency in how software on the Adam refers to the various drives. In Smart Basic and other software D1 and D2 refer to tapes, D3 and D4 refer to disk drives. In CP/M it depends on your system configuration, if you have disk drives then the disk drives are A and B then the tapes are C and D. If you do not have disk drives then the tapes are A and B. Many other programs refer to the tapes as A & B then the disks as C & D. TDOS lets you define the drives when you configure it. The TDOS image that is linked below is setup so that A,B,C and D are hard drives, E,F,G and H are disk drives, I and J are tape drives and K is a RAM disk. So in the above configuration shown for adamem.cfg the drives are assigned to these images:

E: = ide.dsk (The IDE boot disk)
F: = diskette.dsk (the blank disk)
I: = datapack.ddp (the blank tape)

Now double click on the AdamEm.exe file. It will either open directly into TDOS:

and put you at the A0> prompt or it will open up in the Hard Disk menu.

If  you are in the Hard Disk menu press Wildcard to get into TDOS (F7 on the PC keyboard).

Creating an disk or tape

The following may seem confusing but it has a certain logic to it:

To create a real tape or disk we first need to create a virtual image of a tape or disk image.

In other words, we need to take the image we have, attach it to the emulator configuration so that TDOS sees it as a disk or tape, then create a TDOS image of that media. Then we can copy the TDOS image to Compact Flash, put the CF into the ADAM and use TDOS to create real media out of the image.

So let us say we want want to make a copy of Dragon’s Lair on real media. I have included both the disk and tape image* so you can try both. To begin with, edit the adamem.cfg file so that it looks like this:

-video 2 -da ide.dsk -idea tdos4-59.img -db draglair.dsk -ta draglair.ddp

*Note you should use an old, unneeded game tape for this as they have a game pack directory versus a data pack directory.

After you have updated the .cfg file start AdamEm. First we will create a TDOS disk image of the Dragon’s Lair disk image using image20.com:

A0> image20 F:160 D:dragdisk

After entering the command you will be presented with a screen telling you to insert the media and press Return. Since we are using the emulated media we only need to press Return. Now the screen will just sit there, believe me it is working, we just don’t have real tape drives or disk drives to let us know this. Eventually it will say Image Written Successfully and return you to the A0> prompt. A quick explanation of the image20 command. The first parameter F:160 is the source drive, in this case drive F is the disk drive assigned to the -db image and the number 160 is the number of tracks to copy. The D:dragdisk is the drive and file we want to save the image on. If you do a dir d: you will see the image. To do a tape we would use the following command:

A0> image20 I:256 D:dragtape

I:256 is the drive I assigned to the first tape drive and 256 is the number of tracks to copy. When it completed we could do a dir d: to see the results.

Now that we have the images in TDOS we can close the emulator and exit back to Windows. Insert a blank Compact Flash card into the adapter. If Windows asks about formatting the drive tell it cancel or no. Now start the HDD Raw Copy Tool. You will be presented with a screen similar to this:

First we need to select the source, so double click on the line that says FILE and use the dialog box to select the image (TDOS4-59.img) we were working on and then click Continue. Now we need to select the Compact Flash we are writing to:

and then click Continue again. We will then see this screen:

at which point we will click Start. You may be prompted about overwriting the CF and such, just follow the prompts till it says it is done.

Now that we are done putting it on the Compact Flash, remove it from the slot and use Sneaker-Net to plug the CF card into the IDE CF adapter on your Adam and then boot it using either the IDE tape or IDE disk. After you are in TDOS, insert a blank tape or disk into either Tape drive 1 or Disk drive 1. Now at the A0> prompt type the following for a tape image:

A0> clone21 d:dragtape i:

When it is done you will have a data pack with Dragon’s Lair on it. To make a disk use:

A0> clone21 d:dragdisk f:

Creating an image from tape or disk

You can use the above method to make images of your tapes or disks, though you will probably want to use the DCOPY method for disks if you have a PC with a 5 1/4″ drive. To use the above just reverse the process so that you start out making TDOS images of the real media onto the CF on the Adam and then Sneaker-Netting the CF to the PC and using the process to make images of the TDOS images using the blank media images supplied.

Downloads:

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