Hello and welcome to another Commander X16 update video. So, we have a thousand more of
these in production as we speak and I'll get into that more in just a minute, but for the moment
I just wanted to let everybody know in case you don't make it to the end of the video, that we're
actually taking pre-orders for those right now and I'll put a link down in the description. I
think there's about 250 of them already spoken for. But if you want to get your name in,
now's the time to do that. I have a ton of other updates to tell you about, so let's dig into it.
Kevin and I recently took a trip to Mouser Electronics. Since we live nearby,
it made sense to just go pick it all up. We filled Kevin's car up pretty full,
even had to use the frunk. Believe it or not, there are 321 individual parts needed to build an
X16 motherboard by itself. if you multiply that by 1,000 boards, that is 321,000 parts we needed to
buy. Mouser is usually our default choice, but we did source parts from all over the place. This pie
chart represents a breakdown of dollar amounts spent at each vendor. Interestingly enough,
we did buy the 6502 processor and support chips directing from Western Design Center. And,
of course we got the PCBs from PCBWay. Now, I should mention that PCBWay is actually NOT
sponsoring this video. At least not directly. They are, however, sponsoring the Commander X16 project
by giving us a very generous discount. And, I'll do whatever it takes to get the costs lowered on
this project so that more people will be able to afford it. So, a big thanks goes out to PCBWay.
OK, so a few quick things to get out of the way. I've shown the X16 working with Commodore
disk drives in the past, but many people asked if you could use a printer. And well,
nobody had tried until recently. So here is the X16 printing to a Commodore IEC style printer,
and as you can see, it works fine. Kevin also recently connected a parallel printer up to the
user port. And while the kernal doesn't support this directly, he wrote a little program to print
something to the printer, and that works too. Ok, now I want to show you the latest case from
Lazer3D, which is a 3rd party product. This is the original prototype case, that I've been using
for a while. But I've gotten in a newer model. Even this one isn't exactly finished, but it's
closer to being finished. I will reiterate that the computer does not come with a case,
and we do not currently have a case of our own. It's a standard Micro-ATX form factor
so you can put it in whatever case you want. The Lazer3D case is available in different colors.
This one, is black for example. Anyway, so what I'm going to do is move this board over to the
latest case. As you can see, this lines up much better with the ports. One of the new features is
this reinforcement bracket, which should help if you are sitting a monitor on top of the case. I
also want to show you the buttons, which actually light up. So here's power. The button on the right
is the reset button, but also doubles as a drive status light. So, much like the old Commodore
drives of the past, when you have a drive error, such as a file not found, the light would blink.
And we have that same behavior here, only its a blue light. Hopefully someday we can make that
a red or orange light. But anyway, it works! Notice that the new board has a right angle
connector. This is for cartridges or any sort of external bus device that you might want to
connect. Unfortunately, this case doesn't have a slot for it yet, but here's a photo
of a prototype at lazer3D and you can get the idea how it is supposed to look eventually.
And now I want to show you a new addon card. This one is an extra video card. Basically just a
duplicate of what is on board already, but will be controlled from a different memory addresses. It
only has VGA and S-video as there is not room for the composite port. But, if you need composite,
it will also come with this little pigtail which creates composite from the S-video jack.
Now, a lot of people have asked how you would install a card in this tiny case,
and I've been promising a riser card. And now here it is. So you just stick the card in here like so,
and then you can fit it down inside. Unfortunately, there's no sideways slot in
the back of this case yet, so I had to cut out my own, and it looks kind of ghetto. But don't worry,
we plan to have that corrected in the future. We don't have much of any software developed for 2
monitors yet. But here's a little program I wrote in BASIC. Basically, it just activates the card,
copies over the font data from the other card, and then copies all of the text on the screen, giving
us a duplicate of the first. Although, clearly, as you can see, these monitors operate independently.
Oh, and check this out. The card has an IO selection on it. Technically you could add more
than one of these to the system. So here's how that would work. This would be your main monitor
connected to the built in video card. And then you could add either one or two additional monitors.
And believe it or not, you could have as many as 5 independently controlled monitors. The catch here
is that the first 3 would be running at a full 8 mhz, but because the way the bus is designed
in the X16, the other two would be running at 2mhz. Which is not really that big of a deal,
In most cases. As far as what kind of software will eventually make use of this,
the possibilities here are endless. Kevin has also been working on a network
and serial combo card. He does have at least the serial portion working already as you can
see here, dialing out on an old school modem. So, now that I've talked about all of the new
hardware, let's talk about software updates. So, just one quick thing, we have added all of the
usual Commodore disk wedge commands. So, if you're accustomed to using things like the @ in order to
get the disk status or do disk commands, or using like the slash in order to load a file, that all
works now. So, all of those who are, you know, have been using those commands for decades on your
Commodore, well they work now on the Commander too. But, one thing that has been really the focus
lately is that I wanted to have a computer that people could sit down at the computer and actually
write code. I mean, up to this point, most of the programming has been done on modern PCs,
or you know Linux, or Mac or whatever and then cross-compiled over. But that's not the end goal.
And that's because while right now the primary market is the retro computer hobbyist, I really
feel like the larger market down the road will be the educational market for kids. Over the years
there have been a bunch of different educational computers marketed for kids. The coolest one,
of course, was the Tiger Learning computer, which was basically an Apple II. Unfortunately,
it was pulled from the market when Steve Jobs took back over Apple and cancelled
all of the licenses for 3rd party companies. All of the rest of the educational computers
have basically been crap in my opinion. That's because they include a few boring programs for
kids to play with and then usually don't offer any way for them to be creative,
or to write their own programs. A few of them over the years have actually included BASIC,
but it offered no ability to do graphics or sound, or even save your programs when
you were done. So, it was fairly pointless. I'm envisioning a computer that parents could
get for their kids that is literally incapable of doing all of the things that people worry
about with kids getting online. Everything from ultra-violent video games, pornography,
and scammers, and viruses, and all of the pressures and stuff that come with social
media and all of that kind of stuff. The Commander X16 literally can't do those things. So, you don't
have to worry about that. But, at the same time, I'm looking at a computer that doesn't hold kids
back. I've looked at some of these educational computers out there on the market and I feel like
they really underestimate kids' intelligence, and ability to understand things. I mean,
when I was 6 years old, me and my brother learned how to program our VIC-20 simply from reading the
user's manual. And within just a few minutes we were writing our own programs, and within a few
days we had actually become pretty good, despite not having anyone to actually teach us how some of
these things worked. You know, I think one of the reasons that we were so mesmerized with the VIC-20
is that it wasn't technically a kid's toy. Right? I think had we been given one of those educational
computers, even one of the ones that came out in the 90s or early 2000s, I mean, we'd have
probably played with it for 10 minutes and then we would have been bored with it, and then put it on
the shelf and it would have gone out in the next garage sale. And so I wanted to create a computer
that would bring back that magic to modern kids. And so, I made a list of programs about a year
ago that I felt we needed to create and put into ROM, since we have a lot of ROM space.
Not everything in this list is done yet, but let me show you some of the things that are done.
Eventually I want to support multiple languages, but for the moment we've been focusing on BASIC.
Basic is a very powerful language, and it is easy to learn. I learned how to start writing
my own programs on the VIC-20 at the age of 6 in a matter of minutes just by reading the manual.
Unfortunately, BASIC has an Achilles' heel, so to speak. Actually, it has two Achilles' heels. One
is the editor, and the other is speed. Using line numbers is okay for short programs. But once you
start to get into source code that is multiple pages long, it becomes completely unmanageable
for a number of reasons. One problem is all of the GOTO and GOSUB statements use line numbers,
which isn't really human readable. Another problem is lack of formatting, like tabs or spaces between
lines, and proper comments. It's also a real pain to move code around in the program.
So, let me show you what we have come up with here. At the BASIC prompt you can type MENU
to get a list of built in programs. There will actually be more later on,
which I'll talk about shortly. But for the moment we have these. Let's start with the text editor.
This has been written by Stefan Jakobson. The interface and operation is based on GNU Nano.
You can open any sort of text document. But you can also use this to write and edit source code.
Now, let me show you an even easier way to do this. if you know the code you want to edit,
such as this DEMO.BAS file here. You can just type EDIT DEMO.BAS and there you go,
it opens it right up. I know this code doesn't look like traditional BASIC, but it is. We've just
eliminated the line numbers, and substituted them with labels. Now if I press a hot key, I can tell
the editor that I want to compile source code. The only compiler we have in ROM right now is BASLOAD,
which translates this over to tokenized BASIC, but we eventually hope to add a C compiler,
and a 6502 assembler here too. Anyway, if I use BASLOAD, then I can immediately exit
to BASIC and type list, and now you can see the BASIC program there ready to run. And there we go.
This is a little kaleidoscope program I wrote. So, I think we've solved the editor problem.
So now let's look at the speed issue. Our approach to speed rests on 3 strategies. The first is
obvious, we have 8 Mhz. That inherently gives us an 8X performance boost over the Commodore
64 or similar machines of the era. So let's talk about the second strategy, better commands. In the
olden days of the VIC-20 and C64, you had to poke and peek to everything in order to create sound,
or graphics, or even manipulate screen RAM in text mode. This was inherently slow. The C128
came along and added commands for a lot of things like sprites, graphics and sound. And that made
BASIC somewhat usable beyond text applications. Well, we've also added commands to BASIC for
things like graphics, sprites, sound and music, filesystem access, and tiles. Let me give you an
example of how this can speed things up. In the past, if you wanted to put a character or tile
on the screen from BASIC you'd need a command something like this, which has some math in it
to calculate where your character will go. So if you wanted to fill the screen using a loop,
you can see how long that would take. But if you substitute the TILE command, not only is it a
lot cleaner, but its actually about 2 and a half times faster to execute. In fact, let's compare
this to the same idea on the Commodore 64, and see what sort of speed difference there is.
And so, we've added a bunch of stuff like that. Now let me give you another interesting example.
I wrote that same kaleidoscope program on the Commodore 128, using its built in graphics
commands. The code is almost identical here. And for giggles, I also wrote it on the Apple II. I'm
not sure why, but the Apple II runs this about 1.8 times as fast. Now let's look at the Commander X16
version. It's running 11.7 times as fast. Most of this speed difference boils down to the faster CPU
and more efficient line drawing routines. But, what if we could make this run even
faster? So, our third strategy is Blitz. Paul Robson coded this from scratch for the X16. And
it works just like Blitz from the olden days. So I'm going to save my little demo program
here as SOURCE.PRG and then I'm going to load blitz and run it. For those that don't know,
this basically compiles your BASIC program into a more efficient type of code known as P-Code.
So, now, let's run the blitzed version, and look at it go. This is now running 30 times faster
Eventually Blitz will be in ROM so you can blitz your programs
just by typing Blitz at the command line. So, one way of looking at this is that if
you go back to the C64, and if BASIC is considered the standard, I've always heard assembly programs
run about 100 times faster. So, Basic on the X16 would kind of slot in right about here. So, while
it's not powerful enough to do really fancy games like this. I absolutely believe you could do games
like this written entirely in BASIC. In fact, I bet you could do a game like this, and probably
even this. basically, anything that doesn't have a ton of screen scrolling could probably be done.
So, let me show you a few BASIC programs that we have now. These aren't even blitzed, these
are just running at regular BASIC speed. This one constructs a picture. This one is a ray tracing
program, which is very slow because it's doing some very complex math. This is one of the more
impressive programs, it's a labyrinth maze program that works in 3D. This is very impressive for
BASIC. It runs even faster when blitzed, as you can see here, unfortunately, there's a small bug
in the blitzed version so certain things aren't drawn correctly, but we'll get that fixed soon.
So, let's talk about some other things in this list. Matt Heffernan is working on a sprite
editor, as you can see here. It's not in ROM yet, but you can load it as a standalone program. It's
mouse operated. And it's quite powerful. The program edits what is in video RAM directly, and
then you can load or save your work. The idea is, you can use these directly in your own software,
either from BASIC or assembly language. what we are looking at here is the tileset for Planet X16.
So the last program to show here is the Hex Editor that is already in ROM. I wrote this
one myself. It's fairly powerful, allowing you to directly look at and edit system ram,
video ram, and even a file mode if you just want to edit a file and not RAM. It has most of the
features you might expect, including the ability to select areas for cut, paste, or saving to disk.
OK, so I have a few more new programs to show you. Like this firmware update program
that Sven has created, which will update the ROM, the keyboard Microcontroller,
and the Vera FPGA right from the computer. That way as new firmware becomes available,
everyone will be able to upgrade easily. I also want to show you this little demo.
It's not a full game, it's just a proof of concept to show that we could actually run
something similar to MarioKart on this computer if somebody wanted to take the time to code it.
This is Scumbotron. And this is a proof of concept for Megaman. And it actually runs in
high-res tile mode, which looks spectacular. And here's munchmania. And here's Quack. I've shown
this before, but it's improved a lot since last time. This is potions. And here's Vault of the
vindicator. It's kind of a 3D dungeon crawler. And this a recent game from a youtuber called Inkbox,
who created a minecraft like game on the X16. And I've been trying to reach out to people
to port their games to the X16, for example Jim Orlando recently converted one of his PET games
over to the X16, this one is sort of like Super Mario brothers. And while at the moment it's a
direct port of the PET version, I'm hoping he'll at least add some color eventually.
I've also been in discussion with Knights of Bytes about possibly bringing Sam's Journey
over to the X16. But it's really hard to find contact info for some of these people.
So, I'd appreciate if you guys could reach out to your favorite retro publisher and ask them
for X16 versions of their games. I'm also looking for somebody who could do any sort
of 3D game. Whether it is a filled polygon type game like some of these from the past,
or a textured game like Doom. We may even be able to offer financial compensation for
such work. So if you know somebody that can code that type of thing, send them my way!
And there we have it! So, there's 120 of them-ish, out there in the wild right now. We're producing
another thousand as we speak, and we plan to continue to produce them in batches of 1,000
after each batch sells. Now, I know a lot of people said that they're going to hold out
for the cheaper second generation unit, and you know, that's fine, but I did want to point out,
that's probably going to be like 2 years before that unit is available. And we're depending on the
sales of the 1st generation unit in order to fund the development of the 2nd generation unit. So,
I hope not too many people are holding out for the 2nd gen. I've also had a lot
of people ask about having distributers in like Europe and Australia and New Zealand
and places like that. And I've just got to say that we're basically a 2 man operation
at this point. Right? I mean, yeah, we've got a lot of people working on software. I mean,
dozens of people working on software. But when it comes to the actual hardware side of things,
there's really only two people. Actually more like one and a half because Kevin Williams is
really doing the bulk of the hardware on that. SO, I mean, it's a little bit of a stretch at
this point to ask us to have distributers all over the world. Now, hopefully, someday maybe that will
be a possibility. But it's just not yet at this point. But anyway, that's it for this episode.
I'm sure I'll be back in Early 2024 with another Commander X16 update. Hopefully we'll have a lot
more cool things to show you then. But that's it for now, so as always, thanks for watching!