We have a small today because I was not making it easy on myself and the exact point where
I thought it would not break, which means modern technology is not working.
Because the old one always works.
So if you're seeing the external camera, you don't need or have a...
Okay, so it's not my setup.
Okay, I'll start anyway, without...
You won't see the slide, I will, okay, just gives your imagination.
So on my, so I work in IT, but on my own time, I also do IT, like all of you, I guess.
And what I do is, I'm very, very deeply interesting in understanding the history of computing
for a main reason.
I'm younger than the average, retro computing guy, and I'm born with computers.
I didn't discover, I didn't leave the evolution myself, that's not a problem.
What I will do is, you will see the slides if you have good glasses, okay?
It's all tech, always work.
So, and I don't, now, so I'm going to be on the side, just to make sure I'm always right.
Okay, so you can follow what actually what I do is all computers on social networks,
some of you already know me, because I'm always tinkering, I'm trying to repair them,
and I'm creating exhibitions to make my collection live.
Since I'm doing that, I was always dreaming, like, someday, someday.
I'd create my own architecture, my own 8-bit computer.
And I've always been playing, since I'm restoring them, I have no electronic degree,
so I've been learning on the flight, like, doing it.
So, what I've been doing is, at some point, I've been playing with logic gates, with CPUs.
One of my preferred computers, the Apple II, I've been reconstructing, reconstructing an Apple
one, but I've not designed it, I've altered the PCB, the chips, and I just followed the plan.
So, at some point, I wanted my own.
I was also at the same time reading assembly lines by Roger Wagner, if you know that book,
I really, if you don't alter it, it's one of the best assembly book on the 65 or two you can find.
And so, all of that was on the same time, on my free time, and suddenly I discovered Beninter's channel.
I assume, most of you already know it, and I was like, oh, he made it look like it's
easy actually, maybe I can do it. So, I, like, watched all the videos he made in one day.
And then I watched all the videos he made in one other day, and then I watched them all again,
but stopping on every piece of paper he was putting out, and downloaded all the documentation he had.
And I think that's one thing I learned from him, from his channel, it's all in the dark.
The documentation is not a tutorial, but it's a specification, and so I was reading all the dark,
and at the time I was like, okay, I could do that. The documentation says it's easy,
and then you still reading the documentation and you say, oh wait, this component can do that too.
So, maybe I can do also another feature, and that's where I came with a plan of building my own
computer. I had the basic, in my head it was all simple, obviously it wasn't.
But I wanted tons of RAM. I'm repairing old computers since a long time, and RAM is the biggest
bottleneck of old retro computers. So, I wanted the most RAM I can fit in that.
I wanted it to have an expansion slot for implementation. I wanted to be able to take this computer
I will build as a base for future builds to learn something new after that. Otherwise,
I built it, and I moved on, I can die. So, I wanted it to be also as simple as possible,
because I started building a small community online, and I wanted people following me to be able
to reproduce it on their own. So, of course, I had to integrate one chip that's not made anymore.
It's just to make sure people are deserving it. And I wanted a mini-tell output, the
minute I don't know if you know that device. It's a French device. It's from the 80's, so
cool. That's perfectly in the theme. It's a decent small terminal. You can put in 40 or 80
columns. It receives TTL level RS32, 232, and it is configurable, like a VT100.
For example, you have comments you can send. It's not the same comments than VT100. We'll come back
on that. It's only, there are many, many of them in France. You can find them in all three
markets for 10 or 15 bucks. And also, the other reason why I choose a mini-tell, or at least
the terminal is I'm lazy as fuck. I don't want to write the video signal myself. I don't want
to make it currently. I just want to mess with the microprocessor. So, a terminal already has all
the third tree to translate ASCII text into video. So, that's for later the part where I can
generate video. So, what my computer would be, I started writing a plan. 65.2 CPU. I love Apple
2, as I said. Also, I had all the documentation, because I binge watched Banditers channel
about 65.2. It's also still produced. So, that's cool. The third key of RAM, that's huge.
That's like I've not been bottlenecked yet with it. So, that's really huge.
Atari controllers. If you, I don't know if you can see from the front, you can see the slides.
I'm controlling them was an Atari controller. Because it's a very, very simple controller. It's
dry contacts. You just have to ground lines. We'll come back on that. One channel does
there. A kid's a buzzer. The same time you use with altrinos. Because I just want to have sounds
really some kind of. And the the mini-tell and a lot of extension, which has the address bus
that the database and the interruption vectors. So, you cannot see it. So, that's cool.
This is the address map I came up with. There are some loss, acceptable loss. But what we have is
32K of RAM. 8K that are lost just for 16 addresses. But I didn't want to put too many
TTL for decoding. So, I had to make some compromise. An extension slot for the extension slot.
If I wanted to use just a wrong, a simple wrong, I left 8K also available with a chip select
line on the extension slot. So, if you're just the the the main goal is to have just one chip
on one PCB, nothing else. And you have an extension slot. You can run code from that. That's
actually how I run the the current presentation. And then 16 kilobytes for the internal wrong,
the system. At boot, I've built a boot menu because now that I've read what you've
gotten as book I can write assembly. So, I've made a boot menu. I've integrated
wasmon for those of who are not familiar with wasmon. It's the monitor from Steve Bosniank,
from the Apple one. And it's quite cool because you can access it in only 254 bytes. You can access
the memory. You can really write it. You can basically do whatever each value, low level, but you
can see what's going up. The Microsoft basic, because it seems now that it's not selling anymore,
it's open source. Since the last system, it's open source, Microsoft basic. First, Microsoft
open source program ever. The buzzer is playable from the basic. I've played with it a little
bit, the functions in the basic to integrate access to the buzzer. And the Atari controllers are
also readable from Microsoft basic. You can also, of course, access them from assembly,
and I've written the documentation for that if you want to. And I told you the
monitor is configurable like a BT100. Of course, there is no implementation in assembly 65 or
two to do that. So I've written library to do that. And it's still in progress, but it's
already, as you can see, working enough. For the raw extension in the menu, I've found a really cool
way of displaying if the raw extension is plenty or not. 65 or two have, let's say it's a feature
for sake of it. If you're trying to access an address, that's not linked to anything. Nothing is
responding on the address. The high byte of the address will be the response. That's due to
the internal cabling of the processor. So you just have to compare the address you're trying to
access with itself. And if it's equal, then there's nothing on the other side of the line.
So if you're trying to access the external ROM, I just try to access the first address,
which is a-o-o, and if the answer is a-o, then there's nothing. If it's not,
I've written, I've written a small metadata format. Basically, I reinvented the header,
because the first a-bite of your ROM has to be askytext. And that's what will be displayed in
the menu, just simple as that. So your program has to start at the 9th byte.
Then for the minute I've written examples that I will not go through, because you don't see
shit, and that's assembly on a 9-inch monitor, and your 8-t-purpose purple, people. Sorry.
So I'm not going through that. For the controller, the controller is pretty simple.
There is a ground, and all the buttons are on a different line, bringing it low to ground.
So all you have to do is have all your entries pulled up, basically when it's resting,
and as soon as you're pushing a button, it's going to be pulled down, and I'm using VIA.
You can be familiar with it if you're tingling with virtual computing, it's pretty well used.
It's the 65-22, so it's in the 65 family, and it's basically like GPIO for a Raspberry Pi.
It gives you controllable input outputs. So I've all my inputs pulled up, and when one is
pulled down, I know which buttons we've pressed. So why should you build one?
I encourage you to not go to my GitHub, and to not follow all the plans I've gave you.
I encourage you to build your own, and to think why you're doing that. The reasons for that
is when you do that, it's so simple, so low level, you cannot blame anyone for a mistake.
Not even Windows this time. So if something is not going well, it's either a bad wire or a bad line of
code, just it. Also, you will relearn, because you think you know it, but you don't, I can assure you.
You will relearn that abstraction is a huge luxury we have today. At this point, even assembly
outputs are an extraction, because in the end, it all comes back to the state, the electrical
state you have on each line. So even writing in exile decimal, that's a representation
of an electrical state. If you don't have that in mind the whole time, you will fight, it won't
work. It's just a simpler way, a fancier way of representing it. In the end, there is no
exer decimal number, it's just an electrical state. And so why did I do it? First, because it's pointless.
And I love pointless things. I don't, when I don't know where it goes.
Second, I want to trip and press my mother. She wasn't. She did this. And it's one of the best
procrastination excuses I've ever had. I don't want to watch dishes because I've my computer
to work on. And lastly, it's fucking fun. I can show you that the adrenaline you will get under
the dopamine you will get from that is better than any substance. So when it's working,
when you have characters printing on it. It's a shot. It's a really long. So if you want to
see this project evolving, because I'm already working on the next step, which is loading from
the cassette, you can come join me on my social networks, which are memoirs, which is French
for Rome. And, or you can go to the GitHub, memoir not, also. And you will find everything
I've documented, everything I can. Thank you for listening to me, and I'll turn things
today.