Back in 2018 I made a video showcasing the Color Maximite computer.
This was basically a PIC32 micro controller with an operating system that allowed you
to connect up a monitor and keyboard and program it directly in BASIC.
It was actually pretty darned fast, as I made a comparison between drawing lines on a Commodore
8-bit computer versus on the Color Maximite.
And I also wrote my own version of Tetris for it.
But now there is a new version, called the Color Maximite 2.
Debug live already did a great video showcasing what the new one can do.
But, I thought I’d give you my impressions as well and maybe fill in some of the gaps.
First of all, I’d like to talk about some of the upgrades over the last version.
First and foremost, let me take this thing apart and I’ll show you the board.
Gone is the PIC32 micro controller and now we have an ARM Cortext M7 running at 480 mhz.
This CPU is capable of executing 270,000 lines of BASIC code every second.
This thing can literally run interpreted BASIC as fast or faster than a computer from the
80s can run assembly language.
Another upgrade is the color.
The original Maximite was monochrome only, then the color maximite was an upgrade to
8 colors.
Now we have a full 16-bit color, which is 65,536 different colors.
And one other important change is that it no longer uses a PS/2 keyboard, but rather
a USB, which are more common these days.
The previous version had 5 different video modes.
The top 3 were the same resolution, with the only difference being either 2, 4 or 8 colors.
Then there was a low resolution mode with 8 colors for games, and last a special mode
just for NTSC televisions and monitors that was monochrome.
So, let’s see what video modes the new one has.
As you can see, the modes are very different with the default mode being 800x600.
And all 5 of these modes have many color depths you can define, going all the way up to 65,536
colors, so a true 16-bit color display.
The special NTSC mode is gone since this unit doesn’t even output NTSC video.
And these two resolutions here have been kept in order to increase compatibility with software
written on the older maximize.
The Color Maximite 2 isn’t necessarily meant as a replacement for the previous models,
as it will cost significantly more than the previous one.
You can see right now they are going for $99.
This particular board is somewhat of a prototype design.
It’s built using a waveshare board, which is designed to make it easier to prototype
with the ARM chip since it is pretty tough to solder one of those chips by hand.
However, realistically, there’s no reason these should cost any more than a comparable
Raspberry Pi with mass production, so cost could come down.
Anyway, the point is it exists along side the previous models, and for some applications
the older model based on the PIC might make more sense.
Let’s go ahead and connect this thing up.
It’s powered by USB so I’ll just use one of these phone chargers.
Next I’ll connect the VGA monitor, and a USB keyboard, and finally some computer speakers
for sound.
And now let’s power it on.
It starts up with not much on the screen.
But, like the older version you can type the command FILES for the file browser.
This will let you browse what is on the SD card, including sub directories.
It highlights any BASIC programs in yellow.
But, surprisingly it can handle some other formats, for example this picture file.
Now you can see that 16-bit color!
It can display several popular picture formats.
Also it can play several types of audio formats including MP3 files and Amiga MOD tracker
files like this one.
The music plays in the background and there is no real indication on screen that anything
is happening, though.
And of course, if you select a BASIC program, it will automatically run it.
I thought we’d try out the Tetris program I wrote a couple of years ago and see if it
will still work on this one.
And well, it doesn’t.
Many of the commands have changed to handle screen drawing.
However, all is not lost.
Apparently there is this command you can add to the start of your BASIC code called “option
legacy on” which will cause BASIC to work more similar to the previous version.
So, let’s try starting it now.
Well, it sort of works but it is confined to a small corner of the screen.
Let’s see if it plays.
And nope.
We get another error.
So, it turns out the MODE command is the one command that will simply have to be changed
manually.
So, I’ll go in here and change that to the new graphics mode that most closely matches
what this game was designed for.
And guess what?
Now it works!
The top line of text is partially cut off, but otherwise everything else in the game
works.
So that’s good news, it means you can write code on the older maximite and it should work
on the newer one with very little modification.
Now I would write something to show off the capabilities of the new one, but there’s
really no need.
There have already been a few really impressive pieces of code written for this, so I’ll
start by showing you this spinning soccer ball.
The fact that this is written in BASIC, and I don’t mean compiled BASIC, but interpreted
BASIC, running in real-time, in a resolution of 800x600 is quite amazing.
You can even do a control-C to stop the code and then have a look at the code that makes
it possible.
But, if you find this at all amazing, then prepare to have your mind blown.
I’m going to show you a 100% complete game conversion here.
This is the game known as Gauntlet.
Now I’ll go ahead and take this moment to apologize that I don’t have a VGA capture
device that is compatible with these resolutions, so hopefully it is okay to see this on the
monitor.
But I am capturing the sound directly from the source.
So, this screen is basically a big disclaimer that this game is trademarked by Atari and
Midway and so forth and this is a non-commercial product.
Let’s just hope Warner Brothers isn’t as evil as Nintendo is and hopefully there
won’t be any cease and desist letter sent out over this.
Anyway, here it is in all of its 80s glory.
There are several menu options here including the ability to change controllers.
This computer has a Nintendo Wii Nunchuck port on the front, but I don’t have one
handy at the moment so I’ll just stick with keyboard control.
You can also change the sound to 16-bit era sound.
I think I actually prefer the melody from the 8-bit era, but since the point here is
to see what the hardware is capable of, let’s stick with the 16-bit.
And now we get to pick our character, just like the original.
Now, on the surface, there shouldn’t be anything exciting about seeing this sort of
game playing on a 480 Mhz arm cortex.
But, what is absolutely amazing is that this is running as interpreted BASIC code.
In fact, just like every thing I’ve shown so far, I can press control-C, which will
stop the game.
And then I get go into the editor and see the actual basic code that makes this game
work.
It’s pages and pages of code.
It’s much easier to read than assembly language, of course.
And, you know, anyone could make changes to this code.
So, I have a few more little demos for you.
This is a partially working game.
I think this is called “Final Fight.”
All you can do is walk around and do some various fight moves, but there are no enemies
to fight and nothing else to really do.
But it does certainly show what is possible.
And the last game concept I’ll show is Wolfenstein 3D.
This is also not a complete game, at least not yet.
It’s just a proof of concept.
But you can see it works at a playable speed.
I never thought I’d see Wolfenstein 3D written in BASIC.
I don’t have any more games, but I do have one more demo to show, and it is just that.
A demo.
As in demo-scene style demo.
This is written very much in the style of the demo scene from the 90s.
And again, the only part of this that blows me away is that it is all written in BASIC.
I think this is an excellent way for somebody to get an introduction to programming as the
barrier to entry here is very low compared to learning to code on modern systems.
And clearly there is enough horsepower behind this chip that, despite running interpreted
BASIC, it is powerful enough that your imagination is probably the only limit to what you could
create.
But what I want to do now is play around with this as a micro controller.
The 40-pin connection here on the back is supposed to be the same layout as a Raspberry
Pi.
And fortunately, a standard old 40-pin IDE cable will fit in here just fine.
I’ll chop off the other end so I can get easier access to the wires.
It does help to separate them out a bit.
So, I have this little infrared sensor I’m going to test out.
I’ll just connect this up with some alligator clips, but first I need to bend the pins out
a little.
So, I whipped up this little test program here in a few minutes.
And what it does is works like an oscilloscope.
So, right now it’s showing a high signal, which is the default state of the pin.
As you can see, the white wire here is the actual data pin, and red and black is power
and ground.
So, if I touch the white wire to ground, you’ll see the signal on the screen go low for a
moment.
Now, I’ll connect the white wire to the sensor output.
If the sensor detects infrared light of the correct frequency, it will pull the line low.
You can see there is just a slight bit of noise coming in like little blips.
I could probably eliminate this with a resistor or maybe a capacitor.
But it’s fine for what I want to show.
Watch what happens when I press some buttons on the remote control.
You can definitely see a digital stream of data flowing there.
So, then I thought, “wouldn’t it be interesting to add some sound to this?”
So, this one extra line will turn a beep on or off when it hears something from the remote.
So, let’s test it out.
OK, so now let’s try it with the remote.
Very neat.
Each button has a stream of data.
Even more interesting is if I hold a button down, it will keep repeating part of it.
I also wanted to try controlling something.
The simplest thing I had laying around was an old floppy drive.
I wanted to see if I could wire it up and write a small program to move the head back
and forth.
Floppy drives are pretty simple to operate, you only need to send 5 volt pulses to this
pin to move the head in one direction, then send to both of these pins if you want to
move the other direction.
And let’s test it out.
As you can see, it works.
I thought it might be interesting to speed this up some, so I changed the keyboard repeat
rate down to 25 milliseconds to see how that might affect things.
And check it out now.
Pretty neat huh?
So, some people might be asking, “Hey David, why are you showing this, doesn’t it directly
compete with the Commander X16 that you are helping develop?”
Well, yes and no.
There is certainly some overlap with the Maximite and the Commander X16, as well as other products
like the Raspberry Pi or Arduino.
These are all different products with different goals, but some of them can certainly do the
same job.
Speaking of, we just got in the new Commander X16 boards from PCBWay a few days ago.
Haven’t had a chance to populate them yet and see if they work, but hopefully they will.
Here’s also a couple of expansion cards designed for hardware development as well.
Anyway, more on this later.
I definitely think something like this is a good introduction to programming.
Granted, BASIC isn’t really used very much in commercial environments anymore, but it
definitely lowers the barrier to entry.
I mean, for example there’s no compilers or development environments to have to install
or understand how they work.
There’s no drivers to get your serial port working on your Arduino or anything to get,
you know to get the files transferred over to the Arduino so that you can test them,
you can just program right here on the screen and immediately see the result.
BASIC is one of the easiest languages to master.
And obviously the speed is not much of a concern with the horsepower you have in this thing.
Having said that, I think if I were just wanting to use the micro-controller aspect of this,
I’d probably stick with the older version, Simply because it’s cheaper with the PIC32
and it’s probably plenty fast for that.
But, I think that if you were trying to develop games, the new one is the one you need to
use.
And, if you liked this there are a few other little computer products I plan to do reviews
I’m planning to do really soon, like this little all-in-one based android computer.
It’s got HDMI, ethernet, and USB on the back of it.
We’re going to have a look at that in a future episode.
As well as the little MINI PET, which is basically a Commodore PET made from all brand new off-the-shelf
components.
And I plan to do a review on that shortly as well.
So, stick around for those, and as always, thanks for watching!