• Please review our updated Terms and Rules here

APF Imagination Machine restoration / exhibit

mrthreeplates

Experienced Member
Joined
Jul 22, 2018
Messages
143
Hi All,

In the late 70s/early 80s, as the personal computer industry was in its infancy, there were few affordable choices for those eager to get their hands on something to program. For me, an Apple II was out of the question (although I would have loved one). I could only dream about many of the computers in catalogs. So when I found a "complete" computer advertised by APF in a magazine for only a few hundred dollars, I ordered one and eagerly awaited its arrival. Although I ended up being disappointed by its limitations at the time (which I'll comment on later), it was the first computer I owned.

This computer was APF's Imagination Machine, https://en.wikipedia.org/wiki/APF_Imagination_Machine

They seem to be quite rare nowadays, so when I happened to see one on eBay, I had to have it (and paid too much). It has been gathering dust for while and I finally decided to restore it.

If all goes well, I'll be exhibiting it and a few other notable collectables at this years VCF West. I should also have a Interact model one, OSI Challenger 4P, TRS-80 Model 1, and maybe a few others. I'll start other threads on these if there is something interesting in their restoration. So drop by VCF West and check them out.

This thread will document my restoration and experimentation with the Imagination Machine along with its paired game console the MP-1000.

I also later picked up Ed Smith's book "Imagine that!", covering some of his history with APF and the Imagination Machine (definitely a good read).

I'll post more shortly, as I power up and restore this treasure. As you can see it is pretty grimy. I have plans to use the BackBit Cartridge (with the MP-1000), a Bluetooth cassette adapter (for loading cassette programs from a laptop), and cleaning up the video (possibly with some Color Computer MC4847 video kits).

There is not a lot of information about this machine, so it will take some digging I'm sure.

Sadly, I do not have the BB-1 expansion bay (building block 1), nor the floppy controller expansion, or 8k ram module. If anyone has leads on these, I'd definitely be interested. However, this is what I had as a kid anyway, so I am more than thrilled with what I have.

Please feel free to post any suggestions / comments,

Cheers,
 

Attachments

  • PXL_20260528_031817238.jpg
    PXL_20260528_031817238.jpg
    1.8 MB · Views: 14
  • PXL_20260528_032036269.jpg
    PXL_20260528_032036269.jpg
    1.2 MB · Views: 14
ok, first step, is to detach the MP1000 from the Imagination machine to see if it works by itself.

The AC power adapter checked out ok, so it was ready to power up and test. But first some info about the MP1000.


The MP1000 is a stand-alone game system, fairly decent for the time (IMO). It has a Motorola 6800, 1K of RAM and 2K (or 4K?) of ROM. The game system had a built in game called "Rocket Patrol" in ROM, and could play cartridge games.

Unfortunately, there were only a dozen or so cartridge games that were ever released. Collecting them all on eBay, could get expensive, but hopefully the BackBit Pro cartridge will come to the rescue.

PXL_20260528_205532451.jpg

The idea from APF was that you could buy a relatively inexpensive game system (their MP1000) and later add an imagination machine to get a fully functional personal computer.

31056803_2105569746136449_5184281862805127168_n.jpg

Some (like me), bought them paired together as a package deal. By the time I bought mine, they were being sold (liquidated) by Protecto, for well under $500.

apf_imagination_machine_large.jpg

The MP1000 is coupled with the Imagination machine via a fairly substantial J-Connector which both physically and electrically connects the MP-1000 to the Imagination machines peripherals (keyboard, cassette).

PXL_20260528_205318812.jpg

PXL_20260528_205328933.jpg

PXL_20260528_210313727.jpg

The Imagination machine itself added 8K of DRAM and (with an included Basic cartridge) providing additional ROM. I remember impressed by reading that the combined Imagination Machine had 23K of (total) memory. Although 9K of RAM and a somewhat limited Basic (more on this later), reduced its ultimate appeal to me.

Both the MP1000, and combination MP1000+Imagination Machine had cartridge slots which looked identical (and physically accepts the same cartridges). However, as I'll discover later, some cartridges work in the MP1000, some in the Imagination Machine, and a few can work in either. The Imagination machine has a further (larger 50 pin) expansion connector in the back which can accept the BB-1 (building block) expansion unit. Checking this out will have to wait until I acquire more hardware. Interestingly, there are some bizarre pinout differences between all of these similar, but not identical, connectors. I'll go into more detail later.

Enough talk, let's see if the MP1000 works without any cartridge installed. It should run rocket patrol.... and it does!

PXL_20260528_205441677.jpg

PXL_20260528_205456123.MP.jpg

Ok, first up, the image quality is terrible, as to be expected.

The MP1000 outputs a NTSC TV signal on channel 3. Clearly I'll want to, at the very least, implement a composite (or s-video) mod. I've found some schematics which I may try. Or hopefully, maybe even a direct MC6847 to HDMI video mod, but this will have to wait for later.

Note that both controllers, although a bit crusty and clunky, worked fine. It is cool that each controller also has a 10-key number pad with enter and clear keys.

PXL_20260528_205627775.jpg

Then, I tried a couple of game cartridges that I bought separately off of eBay, Blackjack and UFO. The basic cartridge will only work in the imagination machine.

PXL_20260528_210222996.MP.jpg

PXL_20260528_205604380.MP.jpg

PXL_20260528_210103486.MP.jpg

Okay, everything great so far (cleanup still tbd)!

Next, I will try out my BackBit Pro cartridge on the MP1000 to see if I can run ROM cartridges from an SD card.
 
Last edited:
I am watching with interest. I restored an APF Imagination Machine last year. My cassette audio amplifier chip had died. Took me forever to find that issue.

Here is a quick video of it loading up Space Destroyers from cassette. Love the fact that it plays an audio teaser on one audio track on the cassette while it loads up the software on the other track.


Good luck!
Santo
 
Thanks Santo, yes, I saw your video! I am glad you got yours working!

I agree, one of the unique things about the APF Imagination Machine is its use of the dual sided tape head recording an audio track alongside the data track. I think both sides are mono, but I'm not certain yet. I'm sure this will pose a challenge for me as I try to play back modern wav files via my Bluetooth cassette adapter! More on this later.

The loading of the screen is also another neat feature (also found in the Interact Home Computer - which I'll also be restoring next).

Both features make loading programs from cassette a bit less painful. Then again, as I kid, I had more time on my hands.

Incidentally, I am hunting for the original magazine ad that I must have responded to when I bought my first APF Imagination machine many years ago (likely during the summer of 1981?). I've found pricing references in APF newsletters and in Compute! magazine. However, I seem to recall a bit larger magazine ad. Unfortunately some of the internet archives of early magazines aren't complete. I'll keep looking for nostalgia sake.


Screenshot 2026-05-28 194152.pngScreenshot 2026-05-28 193902.png

The price seems about what I recall ($239), as I remember it being significantly less that $500. I also remember the free trial! This was a great price for a fairly capable personal computer at the time!

Note the funny spelling of Protecto Enterprizes (sic)!!! If I saw this ad today, I might think twice about mailing them a check (especially as it was nearly all of my savings as a kid!). I returned my computer and they refunded my money, as promised. As they say, times were different then.
 
I'm sure this will pose a challenge for me as I try to play back modern wav files via my Bluetooth cassette adapter!

Playing WAV files works fine but a note of caution. I have a Bluetooth cassette adapter and two wired cassette adapters and only one of my wired adapters worked properly in the Imagination Machine. Head alignment is very important as it has to be right on so don't get caught as I did. I was using one of the ones that didn't work for testing for a while and not getting anywhere until I switched to my working one. I am certain I have used both wired adapters before in similar situations with other devices successfully.

APF IM running.jpg
 
I'm happy to report that the BackBit cartridge works perfectly on the MP-1000. It even emulates the Star Destroyers cartridge, which has a bit of RAM in addition to the game ROM.


A bit of a plug for the Backbit: The BackBit pro supports a ton of different systems, with capabilities that vary by system. You build and order and adapter that is custom to your system. Of course, there are only a few cartridges you can try, but those that don't require an Imagination Machine (e.g. like Expanded Basic and Columns), all work fine.

Note: I had some problems in the beginning (all my own fault), but had some fun examining and disassembling cartridge roms trying to understand how they worked. Apparently, the first 5 bytes are a special cartridge header. The APF MP-1000's rom examines memory at 0x8000. If it finds the cartridge signature (0xBB), it loads the address of a string which points to the spash screen text of the cartridge. After printing this, it asks the number of players and which game you want to play (if a cartridge supports more than one). It then jumps to the start of the cartridge at 0x8005.

I imagine this is how the BackBit works too. First it emulates a file browser allowing you to select a cartridge rom. Once selected, you reset the MP-1000, allowing the emulated cartridge to directly run.

I don't know why this is interesting, but it is to me.

Anyway, you can see a commented disassembly of the APF MP-1000's boot rom (with Rocket Patrol Game), here:


The rom cartridges themselves are easy to find, but use the raw .bin files with Backbit, not S19 files. You then just put them on a uSD card, and you are ready to defend earth from aliens.

PXL_20260528_205659818.jpg

PXL_20260528_205722429.jpg

PXL_20260528_205743898.jpg

And here's the proof, running an emulated space destroyer's cartridge (an impressive Space Invaders clone).

Note, running Space Destroyers from cartridge (instead of cassette) means we don't get the cool audio track intro, but at least it loads instantly!

PXL_20260528_205858434.MP.jpg

Since the MP-1000 is working perfectly so far, I will try the Imagination machine next! Fingers crossed.
 
Last edited:
Really enjoying this look into the system. I noticed that Console5 has full schematics and everything seems fairly off the shelf (if harder to get these days:) https://wiki.console5.com/wiki/APF_MP1000

Like you said, a composite mod is probably really simple. What RF modulator does it use?

Kinda want to make this my next serious clone project, although I've said that about a few machines this year.
 
Great news, I connected the MP-1000 to the imagination machine (with the Basic Cartridge installed), and it booted right up to Basic!!!

PXL_20260604_025043834.MP.jpgPXL_20260604_025258675.jpg

I wish I could say there were no issues, but the keyboard is badly bouncy and the cassette player volume knob is horribly scratchy. These will be on the list to clean and repair as I take the machine apart for service.

Next up is to try the cassette player with my Bluetooth adapter. Sadly, I have no authentic APF tapes, so I'll have to try and load software using the online WAV files I've found. This Bluetooth adapter was super cheap on Amazon and has been working great. The only problem was that the on/off button sticks out slightly on the left side. It took me a moment to realize why the tape was disconnecting from my laptop. After trimming down the button with an knife, I had no further issues.

Note: I did try a simple csave and cload from a real tape, but it didn't work. So obviously I have some problems still to fix with the cassette mechanism. I'll bet one or more belts are bad.

PXL_20260531_184729366.jpg

Actually, I had a ton of problems loading the wav files, but it was all a learning experience. I'll do a deep dive in my next post as I found the process very interesting. In the end I was able to get almost all of the wav files I found to load correctly (except for some obviously corrupted files). I picked an assortment of demos, diagnostics, and mostly games.

To load software on the Imagination machine via cassette, you use the cload command.

Interestingly, I also discovered that disc commands are included in basic (e.g. "init" and "dir"). This was surprising as I expected that any disc controller might have its own rom. However, that appears to not be the case. This is great news as likely the disc controller h/w is pretty simple, and it may be possible to recreate a disc controller and load some of the on-line disc images. Another project!

The various APF emulators were a huge help in figuring all of this out as the Imagination machine doesn't work like other computers I was more familiar with.

Back to loading via cassette, Cload is a simple command that loads nearly the entire 8K memory from tape. Cload starts with a 512 byte block of memory which is the screen buffer (located in the 1K ram on the MP-1000), then loads 0x1c00 bytes starting at 0xa400 (where the 8K DRAM lives in the imagination machine). Thus every cload command loads exactly 0x1e00 bytes. There is a header in the beginning and a single checksum byte at the end.

Since Cload loads virtually all of memory, this includes the state of basics' variables. This is an interesting choice. So if you start a program with a goto, it resumes where it left off. Presumably, run clears the variables. Although there are ways to hack the loading and saving process in a few ways to customize it with pokes. Also, if you happen to have an 8K expansion, then the files loaded and saved are twice as big, creating compatibility problems. More on all of this later as I dive into problematic wav files and my fixes.

When a cload is successful, you see a good image on the screen (usually a colorful splash screen) and an "OK" prompt. If you don't see the "OK" prompt, or there is garbage on the screen, you probably have a bad load. Reset and try again! After Cload finishes, it dumps you back in basic. You then type "run", so even machine language programs have to have basic loaders. Other computers have separate commands for loading machine language programs (e.g. cloadm on trs-80 color computers), not so with the APF.

Oh, and cload requires you to press return twice. The first return starts the tape motor running. You then need to press play on the cassette (if you haven't already), and (this is important), WAIT until you hear the header playing!!!. Then press return the second time. The tape format of the imagination machine isn't very forgiving if there is anything at all wrong with the wav file.

Okay, now on to some screen shots of the programs I got working. Many games are arcade clones. The demo "shows off" the "high res" graphics mode. The diagnostics are worthless, but at least the ram test says it passed (FWIW). For those with sharp eyes, you may notices something fun in the pictures.

PXL_20260531_183415400.jpgPXL_20260531_184019879.jpgPXL_20260531_184043186.jpgPXL_20260603_234900689.MP.jpgPXL_20260603_235431025.jpgPXL_20260603_235446683.MP.jpgPXL_20260603_235913239.MP.jpgPXL_20260604_001352223.MP.jpgPXL_20260604_001845470.jpgPXL_20260604_002014228.MP.jpgPXL_20260604_002230871.jpgPXL_20260604_002259659.jpg
 
Last edited:
Here's a few things I learned while getting WAV files to load on the imagination machine. This is mostly for myself, but hopefully it is interesting.

First, here are some sites I've found for WAV files, Cartridges and Imagination machine information:

http://hcvgm.org/index.html (probably the largest source of software, documentation, etc.)
https://groups.io/g/APF-Consoles-and-Computers (very useful mailing group, migrated from Yahoo Groups, but now seems nearly dead. Yet valuable information and files)
https://groups.io/g/APF-Consoles-and-Computers/topic/welcome/40228696 (link to migrated data from original Yahoo group, tons of information)
https://orphanedgames.com/APF/ (includes links to emulators, some have media with them)

Sadly, I worry some of these may go away, which would be a major loss.

The imagination machine cassette player seems to be a standard stereo tape deck. Data is recorded/played back via the left channel (lower track on the schematics). Audio, can be added to the right channel (upper track on the schematics) to be played back through the speaker as data is loading. There is a microphone jack on the Imagination machine for this purpose, although I haven't tested it yet. I had thought that combining data + audio was a pretty unique feature, but I've since learned that Atari computers used this trick as well. I have about half a dozen wav files with some audio which plays during loading. This is kind of fun. Space Destroyers is a good example.

As clever as this is, one thing I worry about is the cross-talk between the channels. In at least one of the wav files, I think the audio channel contributed to problems loading the data. Of course, this could be due to my cassette tape not being properly aligned.

As far as the data tape format, I found the best description here from Mame, quoted below:

"An actual tape consists of 6 sections
a. silence until you press Enter (no offset)
b. 11secs of high bits then 1 low bit
c. The screen ram (0x200)
d. The program ram (0x1c00, or 3c00 if a 16K machine).
e. A checksum byte (8-bit addition)"

A 1 bit is a single cycle at 1KHz (e.g. 1ms). A 0 bit is a single cycle at 2KHz (e.g. 500us). Thus the baud rate is roughly 1500, but obviously data dependent.

As the header consists of a continuous 1KHz tone (all 1 bits), followed by a single cycle at 2KHz (one 0 bit), this is pretty easy to mess up. Any tiny glitch in the header will cause the load to start too soon, which will completely mess things up. You will see this immediately as garbage loaded on the screen (so it is pretty easy to detect). No need to wait until the checksum check at the end. You avoid most of this by waiting until you hear the header tone before hitting the second "return" after issuing the cload. No need to rush, as you have 11s of header.

In addition, as you might expect, these old tapes have occasional dropouts, which can corrupt the data pretty easily.

Also, many of these wav files are recorded at 11KHz, 8-bits. This doesn't leave a lot of margin when trying to capture the faster 2KHz pulses cleanly.

Finally, for whatever reason (perhaps due to my Bluetooth adapter, or state of my imagination machine tape input), I had to do some signal processing on the waveforms to make the loads work.

Many of these problems are fixable in Audacity (which I used) once you avoid the WAV tapes with obvious physical problems.

My general method was as follows:

Pair my Bluetooth adapter to my laptop and set the volume to 50%.

1. Load a stereo WAV file into Audacity, attempt to load it being sure to press the second return after I hear the tone. If it works, great! Most didn't. For those that fail, proceed.
2. Resample the WAV to 44.1KHz (seems to help when running later filters)
3. Look at the beginning of the Header. If there isn't pure silence before the first header tone, then select that region and either delete it (or overwrite it with silence). Sometimes you can even hear the glitches in the header, so you know about where to look. Then zoom in to make the edits.
4. Split the Stereo track to Mono, then only process the data section
5. Select the whole data track. Run a low-pass filter with a cut-off at 2100 Hz, and 48db fall off.
6. Join the tracks back into stereo.
7. Test the cload again.

This seems to work in almost all of the cases. When this isn't enough, I have also tried various other filters including a high-pass filter (at 800Hz with 48db fall off), applying distortion (to square up the waveforms). I mostly experiment until I get something that looks reasonable and loads.

One thing I haven't fully understood is how important phase is in the data stream. When you look at the first 0 bit after the header, some wav files seem to have a positive going edge, others have a negative edge. I'm not sure this matters. It would be interesting to disassemble the basic cload routine to understand better how it samples the incoming waveform and converts it back to 0 and 1s.

I have noticed that the emulator (VAPF) seems to have a fairly robust data recovery routine. Mame might as well, but I haven't tried it.

If anyone has a good technique on how to clean up the wav files, perhaps even automatically, I'd be very interested. However, the above technique worked pretty well for nearly every file that wasn't damaged.

First of all, here is an example of relatively clean WAV file (left channel only), showing the end of the header (1KHz steady tone) and beginning of the screen data. You see the stream of 1 bits through around 13.590s, then the one 0 bit (a single cycle of 2KHz), following immediately by the stream of bits for the screen. This is pretty typical of what the WAV data looks like (and it clearly isn't perfect). Obviously, the cleaner the WAV file, the better the chances it will load correctly.

Screenshot 2026-06-04 170620.jpg

Here the header is corrupted mid-stream (within the 11s window), note the complete drop-out between 4.7s and 5.1s. However, as long as some header remains, this can be easily cut out or regenerated:
Screenshot 2026-06-04 164846.png

Here the header is corrupted right at the start, likely tricking cload into starting the data load too early. Again, the solution is to either delete or force silence in this section. Or just wait a bit before hitting the second return:
Screenshot 2026-06-04 165404.png

And here is an example of a supposedly good WAV file, but with a dropout section in the middle of the file. You can clearly see the malformed data, and it might even be recoverable with some processing or even hand editing (I tried and gave up). For this file, I happened to find another copy among the Yahoo Group archives which wasn't corrupted. However, for many files, I only could find one copy among the sources I know of.

This brings up the problem I mentioned at the beginning. Once these files (and original cassettes) are gone, it will be a loss for us all.
Screenshot 2026-06-04 165841.png

My next step is to start taking the imagination machine apart for restoration and hopefully improvements like better video!
 

Attachments

  • Screenshot 2026-06-04 170620.png
    Screenshot 2026-06-04 170620.png
    44.6 KB · Views: 0
Last edited:
Ok, got some time to tear apart the MP-1000

PXL_20260606_230731776.jpgPXL_20260606_230722132.jpg

4 bolts in the back, and the bottom plastic shell comes off. 2 more bolts and the top plastic shell is free.

The PCB is encased in a clam shell style shield with a top, bottom and sides.

PXL_20260606_231726079.jpgPXL_20260606_231738038.jpg

The top shield is easy to remove (though the power led is wired to it). However, the bottom and sides seem to be soldered down. Removing the bottom shell will be a bit more work.

I think it is funny how the power and reset switches poke through the bottom and the top shield only covers three quarters of the top. Weird.

PXL_20260606_232051228.jpg

Everything looks in good shape, no leaking capacitors as far as I can see. However, I'll test them later.

The first thing I want to try is a CoCoVGA. This is a TRS-80 Color computer to VGA adapter (interstitial board) that plugs into the MC6847 socket (with the MC6847 then plugging back into the CoCoVGA). As the Color Computer (1) uses the same MC6847 (and MC1372) as the MP-1000, I'm hoping the CoCoVGA might also work in the MP1000.

Per the CoCoVGA documentation, both the Semi-graphics and RG6/CG6 modes (that the MP-1000 uses) are supported on the CoCoVGA.

You can read all about the CoCoVGA here:


An interesting side note is that the TRS-80 Color Computer supports bit-addressable high resolution graphics (up to 256x192), and requires 6K of ram for the frame buffer. This obviously won't work on the APF MP-1000 with only 1K of DRAM, yet several of its games utilize 256x192 resolution (like the built-in Rocket Patrol game).

So, how does the APF MP-1000 do any graphics with just 1K?

Well, for the highest resolution graphics mode, the 256x192 screen is divided into 32 horizontal boxes by 12 rows. Thus, each box is 8 by 16 pixels. Half of the 1K dram is used to define up to 32 of these boxes (objects, or effectively primitive sprites). Most of the other half of memory is used to store the bytes representing the screen (where each byte determines which of 32 objects is used). This works well for games which have lots of repeating on-screen patterns and allows the programmer to move a lot of pixels efficiently. However, there isn't much space left in the 1K for the game logic, but other game systems (like the Atari 2600) made due with very little ram.

You can read all about how this works in the Imagination Machines' Manual (chapter 8):


If you look at some of the MP-1000 cartridge games (including Rocket patrol), I think the graphics aren't half bad (given the time period and hardware resources available).

Now, back to the CoCoVGA. Keep in mind that I bought the CoCoVGA almost 7 years ago and it has been sitting unused. One problem is immediately obvious, it is way too big to fit. I had to use a stack of sockets and remove the reset switch. Obviously, it is optimized to fit into a Color Computer, not the tiny MP-1000!

However, I MacGyver'ed it in as I'm still curious if it works at all:

PXL_20260606_234212592.jpg

First, hopefully it didn't break the RF output... Nope, not broken but still awful looking:

PXL_20260606_234320901.jpg

Then, I switched to VGA, and the colors and sharpness is a night and day improvement! Yeah! This is just as sharp as an emulator.

PXL_20260606_234343725.jpg

However, there are some problems right away, the text shading isn't quite right. Also, later I'll see that the border colors don't match.

Keep in mind that the CoCoVGA firmware might not be up to date (there is almost certainly a newer version from when I bought mine). However, since it physically won't fit, I probably won't mess with the CoCoVGA much.

The above is the semi-graphics mode, let's see how graphics looks. As before, here is the cruddy RF output of Rocket Patrol:

PXL_20260606_235558987.MP.jpg

and now the VGA output:

PXL_20260606_235611723.MP.jpg

There are clearly a few more problems here, but hey, at least it works! And furthermore, it is still super sharp!

The red hash marks flash dynamically and almost look like noise. Also, the borders are lost. The CoCoVGA has a couple of buttons that affect its output, but this is about as good as I could get it. If the CoCoVGA was being actively developed, this might be fixable.

I did notice that the Rocket patrol game clearly messes with the MC6847's video modes while the scan lines are drawn, as you can see it change the background color in the RF image. The top band (~1/5th the screen), I assume is semi-graphics mode given the text and scores. The bottom ~4/5ths is graphics. This must be tricky to code. There is a full disassembly of the MP-1000 bios, so this should be easy to confirm.

Anyway, what's next? I am looking at an alternative to the CoCoVGA called the CoCoDV (if I can find one, they are out of stock). The CoCoDV is much smaller, so might actually fit with more MacGyver work. It also directly outputs HDMI, which is nice.

Otherwise, I'm also looking at the various composite and S-Video mods. These won't be nearly as good, but have to be some improvement from the stock RF performance.
 
Last edited:
Back
Top