 I can start my lecture for today. I'm talking about the graphical terminal, Robotron K8918. It's this device we can see here. My name is Der Karnat, our hobby room. We called this Röhmchen. It's German for a little room. And we do a computer archaeology, some art, and some music there, hobby colleagues and I. And after some gap in presentation for me, it showed my presentations may start again with this device. And it's a graphical terminal. It's a 16-bit machine, and it's colorant. That points on my last lecture. There was the 8917 terminal, and this terminal was only a monochrome. And now we have the improved version. It's the color terminal. As usual in lectures, there is a gliderung, I don't know. We have the points of the lecture, first this motivation, why I'm doing all this stuff. And I want to present the device that I'm talking about. I want to classify it against similar devices, just to point on the device what it is, what it isn't. I'm talking about the architecture, how this device is constructed, how components work together. And I want to talk a little bit about the setup I'm presenting here, how to get this device to work. And the commands that are necessary to get this device to work, I will describe a little bit. There are graphic commands that the device understands. And we have some input commands that I want to explain. And at least I'm talking a little bit about what it is necessary for this demonstration. It's a huge amount of hardware of connectors. Some are working, some are not working. And last but not least, I want to demonstrate it. I'm real. So my motivation, the computer is not really back in life, some characters are bad. I want to research for these devices. I want to research how the hardware works, how the software works. And that includes the firmware, the operating system, the applications. And another point of motivation is just to get it to work, just like others get old timers to work, just to have the success that it runs, that you can see with your own eyes, like how this device is working. And a third point of motivation is just to reconstruct how this device worked in further times, in former times. Especially if you have a terminal, you have to reconstruct everything around the terminal if you have it not in real hardware. And that is the third point of motivation for me to do this. And another point is what can you do today with this old hardware? First point is to present it, to let it run, so that it has still a job today. And you can transfer knowledge about the system to others. That's another point, because of these devices exist, what you can do with it. And last but not least, you can explain how the functionality is. For this, you need the original hardware without it, that it's not really possible to explain. What about this device? What is this device used for? This device is used for showing graphical elements on screen. That's one point. The other point is just to input graphical data to process it on the host system. There are both ways. As in text terminal 2, on a text terminal, you can input something to keyboard. The information you typed in is transferred to the host machine. What the host machine wants to say to you goes back to the terminal. Graphical terminal works similar. The only difference is you have no characters, you have graphical elements that you are presented, and you have the possibility to input graphical data. The manufacturer of this device is VUB Robotron Electronic Dresden. It's the... We call it Stammbetrieb. It's the main department inside of this combined robotron. And now we have a slide that I have on every one of my lectures. It shows a little bit how to classify this device. There you see a list of terminals produced in the former GDR. I have this slide on every of my lectures and now. You have a point at 18, 9, 18. It's this terminal. Some of the other terminals I already presented. The other amount of terminals is future work to present them. Some of these terminals, it's very difficult to present them because they are very raw. You have no chance to get a real terminal. Perhaps the last one. And so it's really difficult to present with a little bit of original hardware with much of... you have to simulate. So they have this one. It integrates in this list of terminals. And it's the first aspect of classifying this device. Another one is this. This device differs to his predecessor car. How is it right? 8917. It's a monochrome graphic terminal that works completely different than this. It's a complete different architecture, a complete different bus system. The other aspect to classify it is the A7150. It's the same case. Nearly the same hardware components, but 8150 is a PC. It's a DOS-based 8086 PC. The architecture, how is this device constructed inside? You have a backplane. The backplane is this one. There's no logic. It's simply a backplane with some contact, some wires. And one of these boards is the CPU. And this backplane is here in the middle. You have some boards in the front and you have many boards in the back. The boards in the front, the floppy drive is situated here. These are the boards of this computer. I can show some of these boards. Perhaps this one is the floppy controller. The floppy controller consists mainly of some eProms and a Z80 V0, a serial chip. And here's the connector for the floppy. This one is called Controller Externo Speicher. It's a Z80-based subsystem controller with a local bus to the floppy. You have several Z80 in this system that controls the floppy and in the PC version it controls the hard disk too. This is the RAM board, 256 kW of RAM in this device. This board is one of the screen adapters. It's the monochrome screen adapter that controls this screen. This board has a several Z80 processor local. And if I find the CPU, here it is. This is the CPU board. You have the 8086 processor. You have some peripheral chips of the 8086, perhaps this PIC on the end. 8259, 8257, 8251 is the serial, I think. And you have the firmware, the boot code to start the computer. This is the main CPU board. This is another Z80 subsystem. It's called Graphical Subsystem. This one controls the graphic cards. It's a several Z80 with its own firmware on APROM and it makes a local bus to the graphic cards. And the graphic cards are these. Graphic cards are two. It's bound with two cards. This is one. It has some logic on it. And the other one is these. Here you have 256 kilobytes of RAM and the video output. And with these connectors, the cards are connected too. You have the main device. This one, you have a diskette drive in the terminal because you have to load some firmware from disk. The predecessor had it complete in eProms. And here they choose another kind of work. They boot a CBM86 operating system. And the only purpose of this operating system is to load the graphics firmware to make the device running. And to do the polling on the serial line to the host system. This is the monochrome screen connected to the Z80-based board. You have a color screen. The original color screen is not known in the Robotron community. No one had this one. So I can use this VGA screen, but it's only possible with some conversions. The output of this device is something nearly VGA with composite sync. So it's difficult to get this on a real VGA screen. Only some screens work. To get this device running, you need a converter. This converter has an input of current loop, 20 mA. And the output is V24 to get it run on the notebook computer. To get this work, you need to know how the serial line has to be configured. You have the typical 9600 with 7 bits and odd parity. This monitor is called K7229.25. And it's this one. This one is able to do graphics, but only monochrome. But it can be used as a text monitor too. And in this setup, it is only a text monitor. To get a color screen running, it was possible to switch some DIP switches. The documentation says switch, turn the switches to the other side if you want to run a color screen. I think they play a little bit with the intensity. Because on a color screen, you can differ between red and green. And on a monochrome screen, it's difficult. So I think they switch a little bit on the signal to get it lighter or darker. Then to get this running, I need two adapters. This is the device side. The first adapter splits the horizontal and vertical signal from the composite signal. And the other one does simply the 9 pin to the 15 pin so that you have a VGA screen. And the first VGA screen I took for testing doesn't work either. No chance. Another one met a picture but says wrong format. And this one finally worked. I had to adjust a little bit the border of the screen. But it works, it makes a clear picture, everything's okay. And now, the next point to get this running is the software side. What commands are necessary to send to this device to get it running? Fortunately, I have the manual for this. It's this one, it's a typical GDR brown paper. And in this manual is described what the commands must look like that you have to send it. And first you have to send STX, it's the byte 02. And you have to finalize every command with ETX byte 03. And between this, you have parameters. But because of the 7 bit and parity, you only have 7 bit of data that you can use. So it's a little bit difficult to construct this commands. First parameter you have to send is the command code. The computer knows what of the commands that are possible you want to send. And commands have different count of parameters. So you have to send one, two, three and parameters. And this ETX byte finalize the command so that the device knows commands completed now. If you want to code an integer value, you have 15 bit integer value and you have a sign. And now the documentation says how to code it. First bit you have a parity, then you have to send one. You have to send a sign and you have five data bits. If your integer is low enough to fit in this five data bits, it's the only byte you may send. If your integer is larger, you have to send another byte. And the difference is that you have to set a zero bit directly after the parity. So that it's possible to difference between this. So you have a flag to say the integer value is complete or another byte is following. A little bit more complicated is this with floating values. So you have to code this mantis, this exponent. And if you simply want to construct a command with a float value, you have to do a little bit of bit shifting. And bit shifting is the wrong value. You have to construct each bit. And it is of course possible to put this in a program, but I didn't do it. Every byte I send to the terminal I have constructed with pen and paper. First of the graphic commands that you have to send is openworkstation. It initializes the screen, sets some work space values. And so I demonstrated how I constructed the bits. The command code is 167 hex. And so I decomposed it to the bits, separated it to the values I need. And finally I have to send O2, 23, 47, O3. And then the command is okay and executes the openworkstation command. Then I have to put the pulley line command. And the pulley line command is command code 11. On the pulley line command I have to define how many points I want to define in this command. And if I want to define two points, then I have to send x, y coordinates of 0.1, x, y coordinates of 0.2. And it looks like this finally. What you have to send to the device to draw a line. Coordinates as floating value. It looks a little bit complicated, but all these steps are necessary to get these bytes, to construct these bytes correctly. And you have this command to, as the answer of this task. So this line of bytes you have to send to get a line, to say the device to draw a line. Another one is set pulley line representation. There is the possibility to define a type of line. To say is line solid, is it dotted, is it dashed, how thick it is, what color has it. The default color is white. So I thought a white color, it's a color, adapt the color screen. I have to do something with this pulley line representation to get, for instance, green color. To demonstrate it. So I have to execute this command. There is an index six, the index till five are predefined and index six is a new. So I have a completely new entry that defines a different type of line. And to use this different type of line that I had, so I have to set it. I can choose between every line, between an amount of line representation. And I choose my newly created line index six. And the device then draws a green line. Another point is how to do an input on this device. All I said before is that we have an output. Computer draws anything. And the other is the input. The input device is this graphic tablet. And on a graphic tablet, you can set coordinates. And the coordinates that you set are transferred into the terminal. Transfer them to the host system. So that the host system knows our user had an input of an coordinate, coordinate x value, y value. And the purpose of this is that you can digitalize construction drawings that are on paper. You can put this paper on this, your paper on this graphic tablet. Go to every coordinate. And if you have the set of coordinates, much of work. Then the computer has the complete drawing to recreate it on the screen. The research of the input methods are not really complete. I can show a little bit, but it's a golden path that is working. And if I change any of the parameters, it doesn't work yet. I have to do further research. But I hope I can show that I can input one point. First I have to do is execute a command named initialize locator. Some parameters that I don't understand completely I have to set. If I set it other way, it doesn't work. But this way it works. Next command is that I have to set the locator mode. There are different locator modes. You can set a point. You can pick something. You can input a string. There are some input classes. You can choose, but only this point I got running. And the third is request locator. Request locator means to show this cross on the screen that you can move the cross and set a point. But moving across with this graphic device, I didn't get it running. To get it running, you have to do exactly some steps on the graphics tablet. You have to reset the graphics tablet. If you don't reset it, it doesn't work. You have to do a calibration. That means you have to set this pointer to coordinate 0, 0. You have to choose the point option on the graphic tablet. And then you are able to coordinate. Only on this way it runs. And I have to think about why this golden path runs, why other options don't run. It's a to-do in research. I inserted this late because I want to say a little bit about this demonstration. This huge hardware that is here. The device, the computer that makes the slides is this one. It's called Robotron R5105. And I use and set 80 assembler program to program this graphic chip to do some colors. This computer has an RGB output, SCART. This goes to an RGB VGA converter. And the plan was to get this converter, to transform this VGA signal to an VGA grabber. And this VGA grabber is connected over Ethernet. And if this works, I have the screen, the grabber screen on the laptop. And then it would be possible to have a modern HDMI port to display the picture of this device. The trouble before starting the lecture was that this device is connected over Ethernet. And something went wrong while doing this TCP IP broadcasting. The computer didn't find the device, but everything is connected correctly on my presentation table. It worked an hour ago. And it doesn't work, I don't know. And the point on this VGA grabber device is it is capable to display this non-exactly VGA signal of this terminal. I got it running on the table, because I don't know why it's not running here. I need these very complex devices to get these old video signals, somehow to transfer it in the modern world. It's difficult to get VGA perhaps maybe run, but it's more and more difficult. And I need a tool, a setup to get these pictures running that I have a notebook. The notebook has HDMI, displays its screen, and I have the picture of my old device. That's the plan I have. I think it should work, it doesn't work, I don't know. But now the demonstration of this device. Ah, one point. To use this notebook, I have to use an USB theory converter to another converter in this. Okay, so the device is already booted. I have to switch VGA signal the hard way. So we have this screen. I can reboot the machine so that we see the boot process. Where's the reset switch? It's here, I think. Ah, perhaps we see. It's blue to black, it's a little bit difficult to see, but on text screen it's better to see. So, ah, it's difficult to see on the color screen. You have to press G and enter, and it runs a CPM86 operating system and loads the firmware. Ah, on bottom it's better to see. So this is the wonderful test screen that it shows when the firmware started. You have to wait a little bit because it's loaded from floppy. So now the system is ready. And is it possible to switch to the HDMI? Ah, HDMI, okay. This is the program called hterm that enables me to configure the theory port and to send bytes of commands to the theory port without having any code page problems, something like that. The first command I use is openworkstation. The floppy disk should work. Openworkstation loads some tables, some workspace areas from the disk to the memory. Here you see the command, like it's shown in the slides. And now I execute this polyline representation command. I choose the newly created polyline representation. And now graphics screen should show green line. Ah, is it really green? It looks a little bit, it's green? Okay, so... And so I can execute some polyline commands. And if I have done everything correct, then it will show an open door. That's the logo of our hobby room. Can you switch it around so that we can see it? Ah, okay. On the lower area, it's a little bit better to see the screen. And I can do some text too. And now I can show how the graphic tablet works. First I have to do this initialize locator command. Then I have the setlocator command. And when I say request locator, this cross should disappear on screen. Is it correct? Ah, okay. And now I go to the graphics tablet. And first I have to do is... Is the graphic tablet on the camera? What can I do just to hold it this way? So I reset it. So the lights are flashing. It initializes. I have to point to zero location. Then I have to choose point. Not to see point. And if you show on screen, if everything is okay, the screen shows a star. It was to see for one second. Do we have it on the camera, the star? I do it again. I have to reset this. I have the zero point on the coordinate system. I have to choose point. Ah, I have to re-initialize this locator that we have to cross. I forgot. So we have to cross. I have to do the procedure again. So we did see this star sign. And this way the tablet works. And it's further work to do how to get it really running. I think it must be possible to move this cross. I would think so. But it's further work to do to find out how it's running. I have a little bit of literature here. The graphics standard is GKS that they use. Graphical kernel system. And you have a German book, an English book about this. That's the standard of this graphic system. And there must be some journals from Eastern Germany. Where this terminal is presented. This setup is nearly the setup that I show. It's only the older variant of the case. And in 1986 the device was used as a peripheral device of the GDR mainframe. And in 1988 it was used with the GDR VEX system as host. The 32-bit computer of the GDR was a clone of the VEX 11780. They cloned this machine. This is the GDR variant of the machine. And they used the graphical terminal as a peripheral device on this machine too. And these are the two magazines where this device was written about it. And this journal is Neue Technik im Büro. It's Eastern German computer journal. I have finished. I have no idea if I'm in time or not. I think not. Thank you very much for coming, for listening.