 This was a session R, QI and B. Welcome back to the stream of kia.tv and now we will have the next talk. If you've got any questions, please put them on Twitter, Mastan or via the rocket chat. If you want to know how to do that, just go on to the streaming dot meetuponccc.de page, press on channel chaos zone and below the video, there is a category chat and there you find all details. Exactly. And the next talk will be in German. I don't know if there will be an English translation, but there will be. So you're currently listening to it. And it's called DIY during lockdown. A computer with a CPU by little Alex. Have fun with little Alex. And maybe with Martin. See you then. We want to speak about Digatron today, which is a little project which I've run across. This is Martin and I'm Alex Ander. We both from YouTube from Oakland and we've been working in the chaos zone. Now we wanted to present a little bit what we've been doing the lockdown for about a year I've been working main or large part with old computers. And at some point I've come to the location where I want to really understand where they're really deep in hardware would be working. So I've come across several projects where people were building computers from the 70s with their circuits. And then I've started doing a few things myself. And then beginning the year I find a project where people were building a complete computer unfortunately one of these two developers always had already died at that point. And people who are selling the kit to do it were no longer available. So I just came up and said, All right, I'm just going to build that myself. They all stand in parts. And then we started. And then each of us built one. So what is a gigatron? So we'll skip this. So as Alex said, it's built from TTL standard components. And therefore we use a computer that doesn't really have a core processing unit, but just some standard components. So of course it is good as our project gigapron.io. And in this picture, you can see an image of this. Yeah, here on the desk, we also have got one, as you can see now. Exactly. This gigatron was designed for myself at California and of August. And from 2018 to 2020, this kit was available, but it's no longer built. But fortunately, it's open since 2020. So it's the source code, the PCB layouts and everything else was available. But now also the handbook and the parts list was available. So it wasn't too hard to actually rebuild this. So if you look at the effort, that's easy to do on the weekend. It's also not so ultra hard to solder. So SIMPEDE is good. Some experience soldering. Somebody can do that for beginners. Probably it's not a good idea. That would be my approach cost wise. What did we paste? So I think I had lots of things available. So it was below 100 euros. I think the parts were 50. And then there's of course the PCB and there's the glass and the acrylic glass. So casing, you've got to decide what you do. The boards themselves, you can actually cut for you. The layout is free available. So that's what I did. I just ordered a few. But you can also find them online auctions. So some people did 10 and then just giving them out. You've got to decide for yourself. But I just had them made for myself. There was no issue. They were quite easy. So any kind of made to order company should be able to do this for you. So let's just have a look at the technical specifications. So the CPU that we're using is an 8 bit CPU. So therefore this 8 bit for instructions. More for chain instructions made of several parts. And the architecture is called a Harvard architecture, which you can see in the hardware quite easily. So there is a ROM, which is the components. This is where the program is running. And then there is an SROM, which is the component here. And this is where our data is saved in runtime. And that's exactly what the Harvard architecture, so that program memory and data memory are physically separated. The whole thing may be important to mention. The entire system is an 8 bit risk CPU. So it's a quite simple CPU. But in the end, it can execute one command per frame. So that makes it quite performant. The only core issue is that it's really limited. So it can load data from ROM and can do some logical basic functions and or XOR and CPU can add and subtract and it can do loops, if and things like that. But the core issue is that with these 8 instructions, programming is quite hard. So it is possible to really even if you can call this as the calculation system, but it is possible. But it is quite painful. It's not fun. And then there are no high level languages to box us. No, I don't think. But what you could do through virtual CPU, then, of course, you can visit a different specific language. So the solution that you would do when you wanted to have a quite fast CPU that has just can do just very little things. The next step is to base a virtual CPU that so the software emulated V CPU in 16 bit. And there you have a fun human architecture. So that means you've got a Harvard hardware based simulated the human architecture that's running in the 16 bits. And why fun human architecture can do that to V CPU is running completely in the RAM. So therefore, of course, it can access it however it likes, of course, can self modifying code or something else what you can do in the new architecture that all works here. Right. So there's different sorts of possibilities to get output. So there is graphics of a VGA as a tree connected to the normal monitor. So there's RGP with 64 colors, three point of millimeters, headphone block. And there is a serial port where or controller that you can can add. This is for input. And that is originally built for an S controller. Because if I understood it correctly, an S controller were available at large numbers and easy to buy and therefore developers just build this for this controller. So the idea is legitimate. You've got this input output. It was really never really planted project, but it was more as a fun and there's a serial protocol that worked. So people just used it. But if you really want to set a proper computer, that's of course something different that you would want as a game controller. So therefore, there is this little thing here that's called plug emack plug phase. There's nothing else as a little admiral who takes the PS to protocol and to the serial protocol. And then you can just plug it in here with power supply via the computer. And you can also use it memory, but let's talk about later. So for understanding this thing, we need a little bit what binary logic is. And that's what we all do that fast and much through this. So it's really warm that we expect for many people already know what we're talking about here. But we're just adding this in in case somebody is interested. So many people are more software oriented and have never really looked at the architecture of computer. So binary logic, that means electrical potentials are binary circumstances. So it's one zero. So five volt is one and zero volt is logically zero. So one could say if you have a power supply with a plug switch when the switch is closed and the lamp's on, that's the logic hold circumstance one. And if it's open, then it is logic. So situation zero. So there's some semiconductors like a diode. So that is currently only few in one direction. And it's stuck in the other direction. So depending on how you put that in there, either the bulb will be on. So that's a power through or it doesn't. So therefore the light is zero. And there's bipolar transistors. So this is a component that's current through depending on the control circuit. So depending on the circumstances, you can use a higher main circuit than the control circuit. So therefore you can have an increase of the current. And there's two types of transistors NPN, they put powers through when the control circuit is on and PNP where where it's let's pause through when the control circuit is off. So here we have two different types that use these effects for this control system, PNP or NPN. We both just have to agree on the logic if it's positive five feet or if that is one or if that is all minus five feet. So whenever there's transistors now here, we have NPN. This is how it looks as a control circuit. So on the left, we've got the NPN transistor is letting current through the left side. If it's plus, then the lamp's on. And if it's minus current, it's off. All the PNP transistor is exactly the other way around. There's also a unit polar somewhere like this. Generally, they are similar. It doesn't depend on a control circuit. So it just depends generally on the current. And there's two types of unit polar transistors. So there is an N channel one whenever there's a control on positive or negative control power. There's a logic eight, which you can create by putting this into series. The concrete circuit then depends on the logic. So building it using diodes is different from building it from transistors, of course. For example, we have an end gate. And if both of them are both of the entries are on one, the exit is also on one. And then all the exit is one. If one of the two entries is one and XR is only if and exactly if one of the two entries and exactly one of the two entries is one, then the exit is one as well. So there are different names for this one. But yeah, we have a few of these standard gates in this machine as well. You can also combine these to build some basic memory and the like. And but that's basically the main components of every computer. And yeah, combining these gates, you can also create more complex systems. For example, flip flops that are able to remember states. You can also build something that adds together two binary numbers. And that would look something like this. Those are standard gates that are by combination, by being combined in a certain way, create complex behavior. And yeah, these combinations, they are known, have been known for decades now, you can create any number of things. And basically any CPU can be built this way. And any given complexity can be built. We are also showing some of these things that are built. And this example is a two bit tool adder. So an adding machine. So any calculation can be done using these gates. Yeah, we were talking about the option of building these gates from simple electronic components as well. And there are different gate classes. For example, the diode resistor logic that would consist of diodes and resistors. And depending on how you build them, you can have a logical and or a logical or seen here on the left and on the right. So depending on the voltage, if the voltage is on both entries, then it's yeah, so on the right side, there's the or and on the left there's the end. You can also build these using resistors and transistors. And then it looks a bit different. But it's completely equivalent. So the functionality is the same. And yeah, we have to say the further we go, the less power is actually used. So in some of these versions, there's a lot of rather high current. And if you want to build something very complex, that's possible. But you're suddenly you very soon will need a lot of power, you'll need your own power plant. And this logic is a lot better, but you're still using current to to decide what's running. So you still need a lot of power. We sometimes have diode logic. But yeah, we will later get to the CMOS logic. So the next step is the transistor transistor logic. That's basically similar to the normal transistor resistor logic. However, this circuit consists of multi emitter transistors. So you don't only have one emitter, but you can have two or three. And using that you can create logical connections with just one one part. So you get a smaller footprint and you also need less current. And then there's the 74,000 logic family. Those are logical standard components also already integrated into an integrated circuit or an IC. And that comes back to the DTL row. So that was a TTL logic. And those are as far as I know, mostly CMOS. So they hardly need any current. They're usually called 74, then a short hand, depending on the technology, and then the name of the part. So there could be a CMOS, then a shunt key, there could also be a TTL, I'm not certain about that now. And yet they are also available for different voltage levels. We are usually working five volts here. And this logic family, it provides a lot of several gates on one IC. So for example, this chip has four gates. So instead of building it yourself, you have a lot of these in this. So the 74x08 would have four and gates. And you could use these four gates directly. Of course, this is also available in a bit more complex version. For example, the 74x283, those, that would be a four bit adder. So if you remember the adder using two bit from earlier, this is the same but for four bits. And if you then compare this with a few and gates, this IC has more gates than the first one because it's a more complex function. And it also is available in more complex. So for example, the 74x883, that would be a 32 bit ALU. But we did not use these. So we did not use a complete ALU in this machine. So the logic is really built in logic gates. And it's important for being able to understand the system. So the more gates you are, you combine into one chip, the more difficult it becomes to understand how everything works. And that's why I really like this project because it's not using two complex ICs. So yeah, it's not using ICs that are too complex. And yeah, this is also everything available in different technologies. But that's not really relevant now. Yeah, so this device has an EEPROM right here. It's a normal standard EEPROM was it 1040 or 1024. And it's an EEPROM that for TTL or CMOS, well, it's known, it's nothing fancy, it's just a normal part. You can basically use any old standard EEPROM. You don't have to change anything. And here the VCPU and a few programs are in there. But that's part of the Harvard architecture. Then we have this module, ESPROM 32K. And unlike today's RAM, that is static RAM. And what we have in our computers, it's dynamic RAM. And this static RAM is usually is built using capacitors that are accessed using a transistor. And of course, you have to refresh the capacitors because it's leaking current. And using SRAM, this is not necessary, because the SRAM is used is built together using logic gates that we've showed earlier. So it needs voltage continuously. It's not like DRAM where you can just write something and then leave it alone and then read it out. But this continuously needs current to keep this date. And the reason for SRAM is that you can make it a lot simpler. So the circuit gets a lot simpler. Yeah, control unit. Well, we called it a control unit. This area is all the control logic implemented. On the slides, you might be able to see it a bit better than on the Yeah, so here the diodes, they define how certain commands are encoded in binary. And if a command is loaded from EEPROM, then the diode network decides what part of the circuit gets addressed and with what parameters. Yeah, that's that's that. Okay, next we have to program program counter that works by so in the EEPROM, you have all the commands in a row, and the operations, including parameters and the computer needs to know what instruction is the next one to load. And for that, we have the program counter. And normally it works by loading the next instruction from the program counter, then the program counter gets increased by one. So in the next step, it then loads the instruction, the program counter is pointing to. And so jumps can be implemented using the program counter. So if you have an if then you could either start a next command or the one after and you can do that by adjusting the program counter. Good. So then the timing generator or the tech generator, that's just a quartz. Nothing fancy, just a simple part. But it's amazing how that works with the rather slow timing. But yeah, the quartz exists, but it's rather rare, actually. Why you need this frequency, it's a bit early now to talk about it, but it's about graphics. And the hardware has to be in sync with the display. If you choose another text or another timing, then the picture does not fit to the display anymore, and it can't be displayed anymore. If you if we build a serial output, then it would be less critical, then the timing would just have to fit to the to the interface. So yeah, we were deciding on a rather strange timing instead to get make that easier. Then we have the power supply. Not too difficult either. We have a mini USB for voltage entry. Then we have a standard diode that can shortcut if there's too much power on it. We have a capacitor that cleans up the power supply. And then an LED that shows us if there is power or not. And if the power is too low for a certain time, then there's a reset signal that leads to the chips starting up properly. Because if that were not given, and the chips would start up at 1.2 volts already, it would be an undefined voltage and it would be outside specification. And it might even work. But some might work, others might not. And it would just be unknown. It wouldn't be known how everything started up. So that looks like a transistor that's actually something that decides now is the time to go and now is the time to stop it. So this gigatron uses a pipelining structure for the instructions. So there's two registers that gives instructions and the connected data. So in one so in one attack, that's the data is taken registers and the second one it is get executed. So this pipelining approach means that otherwise you would need to have parts of the system or CPU to to wait and with the pipelining, they are separated in smaller part instructions and then they can be executed sometimes in parallel at the same time. So here with this approach, we can load and execute non-structure at the same time. So theoretically, by this, you can increase the frequency. So the registers, they set up for here. In this case, we've got some printing on the wall. So it looks nice and you can remember what was where, but you of course don't have to do that. So it's x and y register as multi-purpose registers. So you can just save values there and read them back. This registers is a counter, which is good also something to do with the video so it can iterate addresses faster and the accumulator is a register as part of logical unit. So the calculation unit is responsible for creation the VGA signal. So there's no extra chip or component that creates a video signal or the audio. It's all the CPU. If you could call it that, which is responsible for that. I think calculation system is probably a better idea to say this here. This is these two. So the idea is that there's also buffering and access to the control systems. And it's also the registers who are doing this, this whole gigatron has an 8 bit bus. So all the components connected and this buffer is to make sure that it's first read from the bus into the buffer. And then from the buffer, the actual evaluation is done or something is first written to the buffer. And then it is on Britain on the bus. This is the arithmetic logic unit, which is part of several multiplexers and two ramships. And interestingly, this means these are all the instructions that the gigatron can do, which are part of their arithmetic logic unit implemented. So I found this process in a scientific paper from I think it was 1982. So at that point, somebody publicized this kind of circuit. So in the D we say it was handed around. So if you really want to have a look at this plan, it was publicized, it was completely over the frame of this talk. But it is possible to have all those can to really understand the functions of this process. And you can really understand every single function here. But through logic analyzer or at an oscillator, you can really see what this thing is doing at the moment. And that I found really, really fascinating about this part. So this was for me the, the most amazing part of this thing. This is two ICs for addressing memory, which is this system supports several modes of addressing memory. So it could either be coming from the X register, or this address comes from the Y register. And all these components are just multiplexers. Then give the pins of the memory address to the pins. And this is here the IC for the input. And this is how the input is going to be handled. The output part is a bit more complex. So there is no, it's actually not very complex, you could say. So it's still simple. We have the issue of leaving the digital world and have to go back into the analog world. We've got to create analog signals, which humans can understand. Because we are not digital. So there's several outputs. One of them is the LEDs, which can be accessed. And there is this audio plug output. And then there's a calculation output that works for the VGA output. So the audio output is a simple digital to analog converter with a network of resistors. And the current dividers that are there then actually create a signal. That's the CPU doing is no extra sound circuit. So this is all being handled by the CPU. And the same is with the VGA output. So the VGA signal is red, green, blue, and the second section signal. And here you can see why it has such a weird quartz. It is because the these synchronizing and core signals are all matching. It has to be this frequency. And also here the 34 colors the system can do are being regulated by the resistors for every color separately. So it's 264 colors to mixing them. So the output is very simple by VGA. So every single simple VGA monitor can show data source signals from this device. So software wise, so there is just a hand through sort of standard games you can do. So it's, there is a ROM that is that's running here for the Harvard architecture is is open source. So you can just download it and change it to create own things with it. So the games here are these are the classics. So there is an image program for image viewing. If you this is at the level of an early 1980s computers to be being able at 64 colors was a reasonably high resolution. You can actually look really, really good. The images I have to say. So if you look at the ZX 81, what kind of references can do this is really surprising what this can do. Yeah, good. The classical say a classic mandible fragile. And of course, I just want to work this as well. Very practical. So I learned a lot with the thing I played around what's going on right now. What's going on? You should maybe explain what's monitor is. It's a monitor which I can look into the memory itself. So from the VCP is not the account look at the what's happening in the Harvard architecture. But I know that and I can monitor just severely. So correctly, there was much you can also write. Yes, it can also write into the memory. And then of course, the most important thing, you can of course write your own programs. At this point, there's a project that want to create more performant basic dialects. But I haven't tested this. Have you? No. Okay. Yeah, this thing is really cool. So at the beginning, we already said that there is a serial connection. So ours too, it's really true. So it's really something proper tires. So that you can talk was it probably you need to have something. There is something tiny, but you could also use an Arduino or some other Atomol. It is possible to use the memory of the Arduino as a mass memory for this device. So here it's I think 325 bits or something like that. Good. Just about 300. But of course, you can use a larger one, then you've got a few kilobytes, where you can take something theoretically, you could you could put a large atomol, you could even make a connection to an SD card. But in general, you can use a serial port to transport software you've written to put it on the device or take it off. Okay, then let's show what this thing can do. It's running with five volts. Normal USB power supply. It's got about 100 milliamps of power. One other thing that's interesting to show you functionally, so the calculation systems actually once creating the screen input, so actually creating the screen. But if you have a good look, you can see these black bars, the background of this is set to CPU. So it's not CPU, it's the calculation work is basically creating the image and paying these points. It can actually not do anything. So it's kind of do that while jumping back. And the black bars above and below the screen. I can tell the device shows all lines. It can only calculate software when it's not having to show anything. So it can ask him to show me everything. And I can also tell you to leave out one or two bars. Now it's just one out of three lines shown. And this way the system is quite fast. And this way it's quite slow. So let's just open a program called a racer. It's a very classical racing game. You can see I take a few lines away. This is her. So and of course now it's running much, much, much faster. And now I'm out of the road. But that is significantly. How does it accelerate with a so the issue is the current implementation is that it loses one key when another is pressed. So accelerating and controlling the reaction is not possible at the same time. What's also nice to see is here was another implementation for man on the road. How long it takes. So he's now started at the top and is and if that take a sense, he has just much, much more time for calculating. And of course, comparatively faster, the whole thing goes. But it keeps the pixels still in memory. So I can have them calculated fast. And then when he's done the result, I can show the result in full beauty. But I don't think we'll have the whole Mandelbrot. Appleman. Okay, I think probably now I'll take street for minutes. No, this way takes about an hour. So we already decided that we want to show the pictures. So this is who remembers an old CT from the 80s 90s. It's a German computer magazine. This picture was basically the standard to demonstrate the graphics capability and for a computer of this size. This is really amazing. I was really surprised when I saw that. Those are other games, you know, the usual stuff what I really like, or find exciting as basic. You can actually write basic code. The usual things, a print, the hello world, regulatory. I have a German keyboard. And it's usually set to a German keyboard, but not in basic. I forgot about that. So I created a loop and here also you can see that the speed changes drastically depending on how many lines you are actually showing. What else could we show? Maybe the was monitor. What would you like to show there? Yeah, the was one is actually was delivered with the Apple one. What? Why the shortcuts again? I don't know just enter the press. And then it shows you the value. Yeah, you could do some other things. That was a long time ago that I used this. Yeah, so in RAM, there is nothing there right now. But for debugging, this is quite useful. So the was one is able to do more. It's a rather small program, I think 400 bytes or something. But using that, we can really look into the RAM. There are also things that you can write to read into it. And also that it could show the corresponding letters. But I don't really remember right now how that was possible. It's a nice program. You can find it for all kinds of devices online. It's nice for having a quick look up. Well, I can't think of anything else. So I can just let this run. Here this takes so little power that you can even have it on full resolution without making a difference. Yeah, we have a sound. The sound doesn't sound too bad. So audio doesn't sound too bad for being so simple. Yeah, the blinking lights, you can also program those. Yeah, all in all, it's a very nice system to understand how to create a computer using very simple logic. And you can have it as complex as you like or go as deep as you like to see what is happening. Now, well, think we're done. Thank you very much. Well, thank you for the talk. And we also have the speakers available for questions. So let's begin. Let's jump right in. So we have a question from ISE. So what's the status of the native force of the system? For the system? And we are missing sound. We have another question from Quest. How good is the VCPU compared to Suite 16? We are missing sound though. Okay, we are working on the speaker sound. So the question for native force, and we cannot immediately answer that. So how similar is the VCPU to Suite 16? So I know not really a lot about the v16. I've worked with this one. And I can't really answer that. What and maybe can you? I don't know Suite 16. So it's not really possible to compare. So I say that here what was interesting more was the hardware, so not the software so much. But really, of course, we're going to have a look at the software. Okay, thank you very much. Then there was also the wish to receive the slides. They should be linked in the file plan and the schedule as well. So that should be the case. Or is anyone against it? No, that's fine. Well, okay, Suite 16 is apparently the VCPU of Apple Basic. Okay. Well, okay. So those were basically the questions from the chat. Apart from that, most people want to think for a very nice talk. I want to hand that over. And yeah, well, if you like the talk, you might like the next one as well. I could imagine. Because at five p.m., it will go on here with the talk retro computing, also with little Alex and Martin and Marcus and a small note from your translators. As of now, this following talk will not be translated because it is during our meeting. So no translators.