ChaosPad V1.1
Full screen

Server Notice:

hide

32c3-talk-7468 Latest text of pad 32c3-talk-7468 Saved Jan 12, 2021

 
Hallo Du!
Bevor du loslegst den Talk zu transkribieren, sieh dir bitte noch einmal unseren Style Guide an: https://wiki.c3subtitles.de/de:styleguide. Solltest du Fragen haben, dann kannst du uns gerne direkt fragen oder unter https://webirc.hackint.org/#irc://hackint.org/#subtitles oder https://rocket.events.ccc.de/channel/subtitles erreichen.
Bitte vergiss nicht deinen Fortschritt im Fortschrittsbalken auf der Seite des Talks einzutragen.
Vielen Dank für dein Engagement!
Hey you!
Prior to transcribing, please look at your style guide: https://wiki.c3subtitles.de/en:styleguide. If you have some questions you can either ask us personally or write us at https://webirc.hackint.org/#irc://hackint.org/#subtitles or https://rocket.events.ccc.de/channel/subtitles .
Please don't forget to mark your progress in the progress bar at the talk's website.
Thank you very much for your commitment!
======================================================================
 
 
Amiga. I think for a lot of you, it is perhaps like for me, a reminder of the youth, perhaps your first computer even was one. OK, some of you may be a little too young. Some of you perhaps have grown so young when they had an Amiga. That's the nice thing about Congress. It's such a nice mixture. So today, all of us get a nice introduction and how the hardware design of our Amiga works and how to program it. And I will give you one very, very small spoiler. You didn't program it was Java. So please welcome Laura. Was a big round of applause. OK, welcome, everybody, from my side. Thank you for your nice introduction. Welcome to my Wintech talk here. So we are actually going to talk about something that's happened to roughly about 30 years ago. So it was really hard work for me to prepare that, because at once upon a time, let's say in the middle of the 80s, I knew a lot about Amiga and Amiga programing and stuff like that, but I forgot more or less everything. Well, five years ago, there was a talk. I don't know if it was exactly five years, but a few years ago there was a talk about the 64 computer. So I think everybody knows that in here. It was a great talk, and that was the inspiration for me to give a talk about the Amiga computer, but it took some time to, well, launch this well, OK, it started like this. OK, so it's pretty full in here. So as I said 30 years ago, I think at least 50 percent in here are here because you had an ambiguous spell. So please raise your hands. Who had an arm on your computer? OK, that's at least 50 percent. OK, under 50 percent in here are here to learn something about the history. So probably you even weren't born at that time. So it started out. It started on my attic. I well, was opening. You see, there's a lot of dust and looking for if there are some hardware and software and so on and try to find something about the computer. Well, and I found a lot, many thanks to my brothers who delivered some computers to me. So actually one
 Amiga five hundred and 1000 because my own computers didn't work anymore. I have one also, but it doesn't work. I was unable to well launch it. OK, before we dig into details, I try to show something to you. So in real I have here the famous Amiga emulator. Um, you know, it's, uh, it's called. You a e so some people say it's a Unix Amiga emulator, but actually originally it was called the unusable Amiga immolating. OK, why was it called unusable? Because the hardware was so powerful that in the middle of the 90s when this emulator was programed, it was unable to emulate anything in accurate time, let's say an accurate time. It worked, of course, but very slow. And it even doesn't work on my computer very well. But OK, let's see what happens. So there is a piece of software that I wrote somewhere around 90. It takes a long time to load because it's a disk drive. It's not real, it's an Amelita distress. Everybody knows that. OK, that's typical Amiga style, what what can we see here? We see here in the middle there is a you see picture which is somehow moving. Then we have the starfield, the moving starfield background here. Every let's say our software had something like that. Then there is a Sprite coming in here. And there is a strong line, of course, it moves OK, on the original model, it's really smooth. It's not perfectly smooth in here, but but that's because of the computer. And then we'll see. There is a second scrolling line coming up here. Hopefully. I take some, but their sound also, but actually it doesn't matter. We can't hear. Yes, I'm not connected, just believe in their sound. OK, so you see there is a second scrolling line and it makes it weird, it's not just straight, it's it's a sign or something like a sign moves very smoothly here. OK, so now I stop this. Remove that any. OK, so go here. OK. So let's continue with this this intro, this intro that you've just seen that I have written that on myself about 1990, 1991, I was a member of a Cracker and
 Spreyton group, Bad Boy, as probably some of you at the time then. And one important thing that to demonstrate your programing power was that all those Broeder groups and KRACKER groups programed intros like this where everything was moving and and colored and fancy like that to demonstrate their programing power. So it was usual at the time that. OK, so let's have a look at the history of the Yamila computer. So at 1984, that was the first chaos communication Congress. So excellent. Doesn't have to do anything with their mere computer. But it's just to show you let's see what happened during this century. The first Amiga actually appeared in nineteen eighty five. It was the 1000 model. And then they had to follow up models. It was the 500 and the 2000 model, which were more or less the same actually. So the one had more capabilities for expansion and slots and so on. But the basic hardware was actually the same. And many years later, so 1990 appeared the Amiga three thousand model, and then later they came up with that's not completely some other models like the twelve hundred, which I think is your here. Yeah. OK, so twelve hundred it appeared in 1992 and the Amiga 4000 model. OK, what happened then. You know all those two computer games here. I mentioned them because those two computer games were the first computer games in my opinion, which ruled the market which were on the IBM compatible market, the first computer games that were comparable in power to the media computer Amiga computer games. Well, OK, what happened then. Nineteen ninety four bankruptcy of the Commodore, a company. Um, so actually we don't really know. Yes, we know officially. So the reason was that they did a huge investment in further development of computer hardware, so specifically the graphics hardware and so on. But what they did not see is that other vendors didn't sleep in at time. So that's from nineteen eighty five to 1994. It's nine years. So some more or 10 years. And the other ve
ndors didn't sleep. They created cool hardware as well and well. So in my opinion it was too late. And additionally they had two extremely successful models during this century. So there was a C 64 everybody knows was one of the most successful models ever. And then they had the Amiga 500, which was so and the other models. But if 500 sold, sold most and then well, so they they hadn't to do any marketing anything. It was just successful because of the model spec rate. And that's my opinion, the reason why they simply died. OK, but the Amiga didn't die. There is further history. It's not complete here because I'd like to talk about the old the original models here. So there is the Amiga one, which is PowerPC based and it has the Armijo is for version of your operating system, version four and was further develop as some company. So here I write Hyperion Entertainment, but there were several companies involved and the license was sold from one to the next company and so on. OK, however, so it's still alive. The last version of the year four was released, I think, in 2014. OK, here's the primary models, what we have here, so that's the first one and see a meager 1000, it's a desktop model with a keyboard. Here we have the typical small Amiga 500, all in one package. So keyboard inside, disk drive inside the mouse. That's an external disk drive as well here. And this is the larger Amiga 2000 model. So from the hardware base, it's actually the same as the 500. And but it came with you, the second slot for Distri Fear, and even you could build in hardware and several other additional hardware extensions. OK, let's talk about competitors, so Amiga was not alone in the market with some other models, of course, that's not a complete list, but that's what I think it's important to mention. So is a terrorist family. So it's not just one computer. It's a family of computers. They have the same CPUSA. It's a six six eight K Motorola CPU as it was used in Amiga 500 computer on th
e computer. It was released in 1985 as well. Then we have the ACORN and Tomatis. It was also a pretty powerful computer and it had the ARM version to C.P.U. So everybody knows the ARM C.P.U today. It's still here. It's a risk type. It was released in 1987. Then we had Apple. Apple had a lot of different models, one which I consider as comparable or let's say competitor is the Macintosh series. They were built with six eight K processors well, and was released in nineteen eighty five. They were not as successful as the other computers because they were, as Apple is today, unbelievably expensive. OK, unbelievable. So they they cost three times what the other computers cost at that time. And then we have the install base and also the so-called IBM PC compatible. There were, you know, the eighty and 80, 86 and 286. I don't mention them here. So I start with the 386 type a three to six processor type models because they were powerful enough because the microprocessor is very powerful compared with, say, six eight K processor model. But the rest of the design. So everything else of the design is pretty straightforward. So there is a computer, is a bus and some some peripheral devices attached around. But no, let's say no special stuff like we have seen in those other models here. Just to give you an outline about what also happened in this century so that we a car to the media graphics area appeared in 1987. We had the always two operating system, which was also multitasking operating system, which was, let's say, comparable to the comparable to the Amiga operating system, which is in multitasking operating system as well. But we have several Unix. But Unix I do not list Unix here because Unix typically was run on the mainframe and mainframe was not something that somebody could afford for buying at home. OK, so this is about personal computers that people can could buy for at home. We have the Windows version three and nineteen ninety. It was the first version which was 
could be considered as a real multitasking system. So to the version two and one was just, well, something suspending tossed in the background and well to mention Linux, Linux, the first release more or less appeared in 1991. So we had before everything. Yes, OS version, so operating system versions of a new computer, the first one was the one that acts which were released with the Amiga 1000 different models of the 500 and the two thousand or so original versions on the 1000. You had to boot them from disk on the other models you could they were built in on Iram, on the rom chip. So you just switched on and was here. Then we had to version two, which appeared about 1990, which was available, available actually on the Amiga 3000, but it was backwards compatible. So you could build you could build in IRAM Chip into the 500 and 2000 models. And then there's new versions of it which is still available today. This is the that the acts that are some versions of around. But as I say here, it's not a Commodore. So under license. Some companies are ferd developed those Afir to develop this this operating system, which was based on a 3.0 version. This is also a PowerPC based, which is not a CPU family and it's chipset independent chipset. Independent means the Amiga had I will talk about this later, had a very powerful chipset built in. It was a custom made chipset and the operating system depended on this. And the new versions of the four X operating system was completely independent of this. So you could actually well rounded on this computer. I don't know if it works, but probably. OK, there are some books that I found on my attic, the most important is this. Here you see a mere hardware reference manual. It tells everything about the hardware. So the hardware was open. So, so open in the sense of so you knew the circuit diagrams, everything. It was very well documented. It was not allowed to build a computer like this because there were yes, it was protected, of course, 
but opening in the sense of it was completely documented. And this book that tells everything about how the hardware works, then, of course, I have here the six eight K Microprocessor Instruction Manual, which is important as well. Then here this is the Amiga basic book which was shipped with the model. There was an Amiga basic integrator shipped with it and it was very well documented here. There are some other books like this. So it's everything German. I'm from Austria, Amiga, Portofino Hall and Amiga. In turn, that's a documentation of the system calls. So it had a set, a set, several hundred system calls built into several libraries to deal with graphics with the graphical user interface, to deal with the hardware, with the disk and so on. And it was very well documented, for example, in those books, of course, there were a lot of magazines that just found one. That's a kick start. There was also another magazine which was called the Amiga magazine, and well, like a magazine, percent of the new games and some tips and tricks and so on. And I have this crap here. OK, so my laser pointers, OK, the floppy book, actually, that that was a piece of crap like like this can here it's suggested to make some jumps into the ROM. So it lists here you can see this, but that's an example at least thing where it discusses some features that were in the disk library and it's suggested to jump into dirham, which, well, you know, if new versions and the addresses will change and so on. OK, however, let's have a look at the core components. So what was built into this computer? The core was a Motorola six eight K microprocessor. It was a more or less 30 to 32 bit microprocessor in Zisk architecture. It had a 512 K ram on board, expandable up to eight megabyte, more or less, a little bit more, but more or less like this. The operating system was a preemptive Real-Time multitasking operating system. So there was no water, no other operating system besides Unix, of course. But in th
e personal computer world, there was no other operating system, more or less, who had those features. So real multitasking operating system. It had some serious parallel ports for connecting printers and modems and whatever mouse joystick and so on. It had a built in three and a half inch disk drive. And what else we have there was an expansion slot and the 500 model, there was one for the front side password can attach external hardware such as a Hearties controller, and it had analog and digital media output. And yes, of course, audio output as well. So here we should see now that's the back view of the Amiga 500 model. So what we can see here is a composite with the output. It was more or less useless. I don't know why it was here. So it was monochrome only. So black and white. This is the video output here. So it had analog and digital. So archabbey signals here. That's the connector for the power that we have here. Disk drive, parallel path and serial port. Another order than we have here, the audio output. So stereo audio to the left and right and for attaching to external devices such as mouse or joystick, that's what it looked from back side. Well, some further technical specifications, the C.P.U ran at seven to zero nine three seven nine megahertz on the European models, and the American models had some moderate frequency. So you might ask, why is this such odd frequency? This is because the complete hardware was synchronized to the video, to the video signal that was standard at the time then. So that's a powerful signal. And the complete hardware was synchronized to that video signal. And because we had in Europe, we know we have we don't have anymore. But we had in Europe the signal. And this is why the frequency frequency such an odd frequency to help us. Timing, we will see then is synchronized completely to that. Plus, they had some custom made chips, so special chips, which which did the complete stuff in heart in audio, video and everything else. Th
at's well on Ignace, Paul and Denise. It's had some processors internally I will talk about this a little bit later. Is the copper and splitter, it had several other DMA channels. So for those who don't know what a DMAs and traditional design you have, a CPU and CPU accesses the bus and everything attached, only the CPU. And if you have a DMA channel, then there is another device wherever you can also access the bus. So which means in parallel, of course, not perfectly in parallel, but several devices can access the bus and a memory that's DMA well and DMA was used for audio with planes and all features, which means you could do several tasks without using the CPU. So the DMA does that, not the CPU. We have a pixel resolution of up to sixty four times 512 on the European models, more or less. So you could configure this a little bit, but that's more or less so standard resolution and the bit color depth, which is about four thousand and six and nine colors. So the graphics card, which was at the same time had sixteen colors fixed, but it couldn't display all at the same time. We have four audio channels and well, everything was interrupt controlled. Which is nice for softer. OK, about programing languages, so the main programing language will see everything was programed and see so everything. So the typical software was programed to see, of course, if their timing was essential. And we had the Sembler and of course, Amiga basic was also here for whatever it was built. It was not built in, but it came with the software and it was the book as well. And with the versions two and above, there was a rack. So it's Amiga Rex Rexes, a scripting language which was originally developed by IBM, and it was implemented in those. So it's, let's say, comparable to Witchel Basic or something like that. You could script a lot of stuff with this here. That's a typical see header off a function. It looked like this is current curtaining Hammond Ritchey. See, because, you know, to see
 Eighty-Nine Standard appeared in 1989. So this is before. OK, let's have a look at the CPI, the CPI with a six eight case CPA was one of the most powerful CPU's at that time. And I think that's the reason why it was built in so much computers. It was actually released in 1979, which is pretty early compared to the other C.P.U competitors like Intel, for example. They hate the 88 88, which is a 16 bit CPA with an eight bit buzz, OK, six beat up quotes and also Canale instruction set, which means you could combine any addressing mode with every other addressing mode. So this comes in handy for programing. It's perfect for programing. It's really perfect for programing. If you want to programing assembler, of course, in C, you don't see that it had 12 different address mode. So Ritchies to register in direct and memory, direct and so on. OK, it had a nearly thirty two bit ayalew. So that's the C component within the CPU who actually does the operation. So the addition, multiple of multiplication and stuff like that so nearly is because it wasn't perfect, but clearly it had eight registers for data. It registers for address including the stack pointer which was the last address register. Of course it had a system status which registers all our CPU's half as well. It had a very sophisticated interrupt structure. So 256 different interrupts were possible, not just external hard interrupted. Also, you could define software interrupts, which allowed to actually implement your own instructions. And it appeared to have a user and supervisor mode, so that's the first step into real multitasking systems used in supervisor mode. So it's the CPU operates in the user mode. There is a limited instruction set and the supervisor mode where you can do everything. And that's necessary if you want to implement real multitasking with the, let's say, prevention, that some user land tasks access something else in the kernel. For example, the same concept was implemented in the entire worl
d into two eighty six, I don't know exactly the year, but more or less at the same time. It had externally a 16 bit database, and this meant that you always need at least to bust cycles to fetch a whole to 32 bit worked into the CPU. So externally, just 16 bit and 24 period response externally, which gives complete a total address space of 16 megabytes. Well, that's an example for our typical six eight K assembler. Well, looks like every other assembly, it's AT&T Syntex, which means from left to right. OK, more or less like Intel here. Yes. You see that that w and that Elvir that indicates the size of the operation of the operation. So 32 bit or 16 bit or HP 20. Follow up, but also there were some follow up models, this was the sixty eight or 10 model which had a virtual memory support. The six eight K didn't have virtual memory support, which would be necessary for good operating system. Then we had to six to eight twenty, which had a real full twenty third stupid idea and externally 32 bit bus and a memory management unit. So that's the memory management unit is in my opinion, the biggest lack of the Amiga computer because it had so the original model. So Memory Management Unit is necessary for preventing access to, let's say, disallowed memory reach and so that the kernel could lock a user, a user land process somewhere into a specific memory area. The Amiga didn't have that or the original model didn't have that. Yes. And then came some other models. That's not complete. You see it continuous here. OK, that's the main part of the Amiga five hundred, what we see here is on the left side here, that's the CPU. So it's still packed, 64 pins, six to eight K processor. Then here is the ROM. Actually, that's an extension I built myself here for for the new kick start. So that's the ROM here. Down below we have the dynamic ram. So it's a 512 K here is the Ignace. So that's one of the core parts of the custom chip set of the custom chips here than we have here, Paula, wh
ich was mainly used for the audio DMA and audio output. What else do we have here? This is Denise. Denise is responsible for the video output and the video dimir than we have here. What else? This is Gary. So Gary is, let's say, stupid boss controller. That's the complete boss arbitration for communication between those chips. And here are two CIA. So they called it CIAs that when you think the CIA means complex interface adapter, basically it's a typical peripheral device. Ciotat some parallel Io's. It had some serial ports and some interrupt logic and stuff like that. So basic peripheral device. What do you need, what you need in a computer. This is the disk drive. Well, yes. And here's the connectors where I showed you the picture before from the back side. I yes, that's that's a two megabyte extension, so one step back here is a connector. You see, you could plug it in here something. It's the internal connector, for example, this year. So that's a two megabyte internal ram extension. So actually, it's one that eight megabyte you will see. Then why slow ram? OK, we'll see why it's low ram. This is this was about 200 euros, so. Twenty five years ago for two megabytes, OK. She over half the Amiga two thousand model, so the hardware, it's more or less the same. We have here the six to eight K processor here. Here is the RAM that we have to Gary. And here we have the sorry. Here's the RAM. And here is. I don't know why it is scary, and then we have Denise and Paula here to CIAs. This is this was called Buster. So it was a specific device which controlled here the extension boards, although the real Amiga extension boards are these here that the lower one. So. OK, it doesn't work, I go here to these one are called sorrow slots, so they were connected to the boss of the Amiga computer and those slots here are ISO slots 16 and eight with ISO slots. So you could insert a bridge card which had a, for example, at 286 CPU on board, and then you could add a standard to IBM 
compatible cards in here into the outer ISIS forces, which are connected. There was no connection to the rest of the system here. We had a slot for a core processor, like a floating point unit. And on this side here is another connector. It was a connection to the video hardware and it allowed to add a specific video card with which you could synchronize the port. So the whole Amiga ports to the external video clock. And what you could do with this is mixing, mixing, mixing video signals. Yeah, OK. There is this controller. OK, so here I have a hardware block diagram that looked like this, so that's actually a wire, more or less a wire diagram where we can see here on the left side. And CPU's, here is the database address and here the three three custom-made chips which were connected through a bus here as well. And to your below, we had the 512 K built in RAM and, well, expansion ports and so on. But what's more interesting is this here, that's a functional block diagram. So this actually shows here on the left side the CPU and this is what we today call the front side bar. So that's actually the CPU bassets, the data and the response directly connected. We had the two CIAs for the, you know, several ports and so on. Here's the kick start. So that's that's the ROM which which had the operating system in it here, the connection to the expansion Connector expansion connectors for external hardware. And here in between there is bus arbitration. So let's say some logic. And on the right side here we see the chips. So the custommade chips, it's Ignis Ballentine's. And what they actually did is they built actually two computers into one into one model port and they were completely separated by this logic here. So this was the custom chips which had their own plastic that could communicate to each other and of course access the what was called the chip ram. It was called Chip Ram because the chips, the custom made chips could access the chip rum and was completely separat
ed from the CPU. On the other side, the six eight CPU had connectors for external parts arbitration. That means it was possible that other devices outside could access the bus, which was necessary for the DMA, of course. OK, so if the CPU here so the six to eight CPU wanted to access this memory, it had to request this to go to the bus arbiter and say I'd like to access the bus now and the bus arbitrate. The bus operator could say yes or no. OK. And that's actually so. So what? What the power of the computer made. So we had the custom chips, which were a computer for themselves, and they had to wait for the CPU or whatever. OK, this is the memory map off the computer we had we have a total of 16 megabytes, so that's a 24, but that's a 24 bit to address here. So here on top. So at the at the lowest addresses, we have feared the chip ram. So this is the ram that you've seen before where the chips can access new models, could access the next 512. So that's one megabyte and even newer models. So with the X, so there was a bit big fat Agnese and exiguous, however, could even access in total two megabytes of memory. The chips could access this. So on the previous diagram, that's the chip that was on the right side. Then here is a whole of eight megabyte other config space. That means that's a memory space which was dedicated to the extension hardware. OK, and as the previous diagram showed, the chips couldn't access that. Then we have some the CIA's here and this is. This year is internal expansion's not one, not five and two hundred and fifty six k that was so I'm sure this again here. That's here. It wasn't the internal boss of the chips and the memory, so so the address allocation was done in that way, however, and that's why the actually the internal mammary expansion just had one that eight megabytes here because the other addresses were reserved for something else. OK, then at the end of the memory, we had 256 K rom for the version, one of the operating system and t
he new operating system. So to add up to two up to version, a tough version, two, we had an order 256, so 512 in total. OK, have a look at the custom chips. They had some special function registers where he could control them. Mainly, they did the interrupt control of everything here and the bus control. So all chips together, OK? The bus control means controlling who accesses the bus because always just a single device can access the bus. So those control this. There was a bit playing the audio of this made in here and the glitter and the copper. So which were special special processors will which I will explain immediately, said a bit plain. Daymo is the DMA, which is responsible for displaying whatever something. OK, it had several resolutions here, so 200, 320 to 640 times 512. So that were more or less the standard resolutions. You could have up to six bit planes and the planes actually selected the colors. So the colors were not stored like it is today in the modern graphics card directly. So the planes were decoded, the color register and a color register then holds the color actually. So and within the color register you could define the color. So it's three times for Bitzer, which makes up four thousand ninety six Total Colors, and it has some special notes. It's a dual playfield mode. I will show that in the next slide. Then it had to hold and modify hame. So hold and modify mode with this mode could display all colors at the same time and rarely use top flight mode where it could display 64 colors at once. So at the same time. Here you can see how the pit plaints works at a bit, plaints is a memory regions', just a memory regents' containing the bits for one bit, OK? Of course, mammaries spight oriented, not beat up, oriented to one bite, always contains eight bits. And the hardware then took all those five planes overlayed them and took out those one bit of each bit plain and those together give the address off the color register and the actual color the
n was stored within the color register here. OK, so that, that is not the color, that's the number of the register which then contains the color. Here we have the dual playfield Moat's and dual playfield military hardware combined to separate play fields, which mean you had to separate. Visual object software and hardware combined them like it is shown here, to hit typical gaming, gaming, few of whatever. Here you have a tank here, whatever. So there's one play field, which is the display where you see everything. And here's the background image and the hardware then combined both together. And there is a transparent color where the second plane was was added from from the hardware itself. OK. Yes, we had spritzes. So I'm not sure if everybody knows what a Sprite this Sprite is a graphics object. Which is added by hardware, so it's not combined with the CPU somewhere, it's just a piece of hardware, it's just done by hardware. So it's a small image which is added to the total image by hardware. So do you mean computer had eight independent sprites? By default, each had two bit planes. So which means it's three colors because one is transparent. You could also combine two sprites and you had just four, but each Sprite then had 15 colors. So four bits is 15 colors and the transparent color. But you had the possibility to reuse DMA channels in a later time of the screen buildup. OK, so if you have in the upper portion of the screen eight sprites and you could reuse it in the lower portion again, so then you have more or less 16 or how how many you even can program in your software. And it had a hardware based collision detection. So a collision detection is important. If you have several sprites, think on a game there's something moving and if they collide, then something happens and something explodes or whatever you gain some whatever health points or stuff like that. And the collision actually of of the two sprites were done by hardware. So during during screen build
 ups or during combination of planes, it compared each bit to each other. And then it recognized there is a collision and there was a registered special function retros. That's a custom chip register where it could ask for was the CPU and see, OK, there is a collision now. Well, OK, that's this generation how how this generation actually works works like. We have up to six planes and the six planes, planes are memory programed, so there is not a fixed address. So you put the stuff somewhere into the chip memory and then you assign a value to the chip register and say, OK, this plane starts there and there and they are in there. So there was no fixed address. That's true for the sprites as well. And you could, of course, pixel push position them, not just bytes because about eight pixels, of course, and the media hardware reads the bits determines priority. So which is higher, which is lower. So which is which bit plane is above which other plane than it chooses to color from the color registers it generates the beam color. So what you actually see on the screen and it generates or it detects collision if there is a collision. OK, the copper is one of the important core processors or one of the most. It's been synchronized. That means the whole system, as I said in the beginning, is synchronized with the video signal and informal times. The video signal was generated by video beam who was drawing. OK, I think everybody knows that. And the whole system was synchronized to that, OK? And the copper was synchronized to that beam so that copper knew at every time where exactly the beam is. And that's important for smooth graphics, because if you don't have that, it starts to flicker and stuff like that. What you've seen on the Intel test-Drive implementation sounds like that it had three commands. The wait to move and the skip instruction so you could wait for a specific beam position and then move. So right. Data to some to some register. So you could add a specific posi
tion, modify some, let's say, the Sprite address, so you could start and use prior to the specific address of the beam. And it had skip instruction which with which you could skip if the beam was already behind the location where you were waiting for OK, it could even modify its own registers. So its own program. So it had its own program, which was called the Copper List, and it had passed priority over Deflater into CPU. So that means if there was urgent access to the pass because only a single device can access the bus at one time, the copper got priority to fulfill its task. Then we have to plater, which is the second very important processor in the computer, so Plater actually means block image TransFair. So it was a ADMA system which could copy image blocks from A to B and image blocks the interesting about image block. That's not a linear memory space because if you just cut out the piece of an image, then you have behind there is something that you have to skip and the plate and what's possible to do that. And that was also responsible for the smooth moving graphics user interface so you could move the windows around. And that was really quick. Everything done with the splitter, the filter actually had three DMA sources, so you could copy from three different sources, combine them in some specific way. So it was able to to define 256 different boolean functions, to combine the bits from those three sources, and then it rotated to a specific memory destination, which is the fourth the fourth memory for the channel. Additionally, had the possibility for shifting and masking because, as you know, memory, spite or intent and not bit oriented. But if you want to move just a single bit, then you have to do something. And this was done in hardware as well. So big shifting is this and masking if at the end is something that you want not to copy, it had a descending and an ascending operation mode, which is important if you want to copy overlapping memory areas. So y
ou have to copy in the right order. If you don't do that in the right order, then you will get some crap on the display. It could fill areas and it could draw lines. Everything in hardware. You didn't you did not use the CPU for that. It was everything done by the printer. OK, here's an interesting diagram that's that's a bus timing and it looks a little bit weird, I know, but copied this from a book. So this line here is the bus timing and this so here that's a continuation of of here. OK, that's a complete bus timing of a horizontal line of the beam on the screen. So not on the screen. So all you have on the screen here also an area where you don't see it. That's a complete bus timing here. What we see here is time slots. So here to the gray and here and here and here. Every slot is one bus cycle where whatever device could access the bus, OK? And the timing was here made in such a way that the even cyclist that's here and here. So in between the different cycles. So this this is an even cycle and this and this and this was used by the CPU and this was done in that way because the six eight K needed to pass cycles for execution of instruction and first cycle. It fetched the instruction. And the second cycle, it did nothing on the bus, it actually executed the instruction. And so because of that, they combined through the leaf that with the hardware that in the second cycle the hardware was accessing the bus. So the CPU more or less, actually didn't see that somebody else is doing something OK. But as you can see here, the black here and here and here and here, that's a bit plain, DMAE. So we have here to beat planes one, five, three and so on. So they're more or less no cycle's free for the CPU. So the CPU was locked out from the memory. So you have to wait actually for the chip from the chip. Ram was attached to the custom chips and because of that it was called slow ram. OK, slow Ramiz, because the chips were accessing the bus here for the display and it couldn'
t access it anymore, and that's that's why it's called slow ramp compared to the fast ram, which was in this eight megabyte Otakon space. The chips had a nexus there. And that's why that's that's why it was called slow and fast ram. OK, audio hardware, it had four independent eight bit audio channels with about roughly about twenty eight K sampling rate WI, which gives an audio frequency of about yeah, let's say, 15 kilohertz audio frequency and had additional support for frequency and amplitude modulation, which you can additionally do with those channels, with those channels function based. So you feed one audio channel with the sample and the second audio channel with the function that modulates the first, the first channel. First channel of course it was interrupted interrupt. And so if the sample data was at its end, it generated and interrupted the CPU can could feed and you address into into the audio registers. So here, a brief interrupt summary. Everything was interrupted, interrupt controlled. And that's nice because the hardware tells you you is the CPU, so the hardware tells the CPU. If something is to do so, the CPU doesn't have to wait for it. So we have the vertical blank interrupt. That's pretty interesting. That's if the beam is finished with display here in the right lower corner, then it generates an interrupt. And while the beam returns to the left upper corner, there is time for the CPU because during this time the bit demo isn't doing doing anything. That's about four twenty six five thousand six hundred cycles within this cycle. So you could do a lot of stuff. So in the intro that I showed you before, it runs smoothly because most of the control stuff is done during this vertical plank and everything else is then done by the hardware. We have to interrupt, we could wait for specific themes, the audio interrupt, as I just explained, we have a bleeder finished. So if the platers was ready copying something, there's a disk interop. The disk was t
he disk was also Ditmar driven. So the data transfer was not done by the CPU. It was done by the same channel as well. The CIA is, of course, generated and interrupt, as usual, four year old data ready or whatever. And we had here some external interrupts for the expansion ports. OK, finally, some data about the floppy disk, which was the default well, storage medium for the computer, was a flexible disk controller, so it was not completely fixed hardware or whatever. You could program it in several ways. It was possible to attach up to four disk drives and you could actually access simultaneously accessed several drives. And it was nice to copy software because you had three disks, so three drives to write and one to read. At one time the standard format was eight tracks, two sides, 11 sectors, which gives about one eight hundred and eighty kilobytes. And because of the controller being so flexible, it could read even other formats, such as the IBM PC format, which was then at the time then used, which with just nine nine sectors here, for example, the file system was originally called so original, it was called just filesystem. But later it was then called old file system. It had four hundred and eighty eight bytes per sector, so actually had of course 512. Uh. But 24 at the beginning were used for arrow checking or stuff like that, so it was well designed for a floppy disk drives, which, yes, every as as I remember, every third disc was corrupt, OK? And then later they developed the fourth file system, which was mainly made for the hard drives, and then they filled up the 24 bytes with data. So. So you got some additional data to store on the disk drive. Yes, so a brief introduction into the Amiga. Hardware. Are there any questions? Sorry for the question was a quick. Great. I know my mike. So, yeah, OK, OK, I have a question regarding the sprites. You said it had a collision detection. Yeah. What's that like on the 64 where you only knew which Sprite was involve
d in any collisions? Or did it also tell you who collided with whom? Something in between. Something in between. So is it combined always to Sprite? So you could you then had to programmatically find out which Sprite it was, but you had four Sprite and so you could find out. In pairs of two, which Sprite collides to the address. OK, OK. Any questions? Do we have any more questions? If so, please stand up and go to the mikes about Isold. Do we have a question from the Internet? Now, I have a second question then and then the copper wait, come on. Yeah, you didn't specify if that could wait for lines are also for, first of all, positions. So you could could actually wait for it here. It's not four lines. You could actually for specific a pick for positions you could wait. OK, I think we don't have any more questions, and we are also more or less at the end of our time, so thank you very much. Thank you. What's really amazing. Perhaps one of he, as a person, will take out his or her old Amiga again and, yeah, play around with it again after this nice trip down memory lane.