Read in: IT ๐ฎ๐น EN ๐บ๐ธ
This is the video transcript. Read the original article with all the details โ
Good morning and welcome back to the ValorosoIT channel, the channel dedicated to vintage computers and electronics! Today we see a conference recorded on the occasion of Varese Retrocomputing 2023, in which Francesco Sblendorio talks to us about how to create and maintain a BBS for Commodore 64, but also for other computers, nowadays. Among other things, Francesco Sblendorio has already been a guest of the ValorosoIT channel in a video in which we connected a very old dot matrix printer, a Commodore MPS 803, to a modern computer with Windows 10. So, if you don't know what a BBS is, if you know what it is, but you want to delve a little deeper into the discussion, how we connected with computers 40 years ago, how we connect today with modern computers and how we can connect today with vintage computers, Follow this video to the end, you will have all the answers you need! Please, if you like the topics I discuss on my channel @ValorosoIT and are not yet registered, I invite you to subscribe and activate the notification bell. It doesn't cost you anything, but it really makes me very happy! Happy viewing!
So, the idea was to create a BBS. For those who don't know, you're all quite old... well, there's also a young guy... the BBS is, so to speak, a system for connecting one computer to another, so to speak, sorry for the simplification, in the pre-internet era. So before the internet, we connected via telephones. So there were these things called modems, the ones you see today, called WiFi modems, it's not a modem, let's say, it's more of a router. However, there were these objects which are modems, they worked like telephones, they sent analog signals to other computers via the telephone line. To do what? To do what we do today with the internet: to have services, to connect to some bank, to make reservations for plane or train tickets, this type of service. But not only that, there were also amateur BBSs. Amateur BBSs allowed the exchange of files, typically pirated, and allowed communication via messages, as if they were actual emails. You could chat, there were online video games, all clearly in a text interface. So, with computers of the time, therefore with Commodore 64s, even with PCs, with Amigas. And so, at a certain point, I had this idea of โโreplicating the experience, let's say functional and aesthetic, of the BBS using modern means. It all started when I worked at JobRapido. JobRapido is a company that practically manages this job posting portal. And I simply had a colleague, younger than me, who made fun of me. He said: Ah, you like computers, let's see if you can make Job Rapido work on the Commodore 64. And I, unfortunately, take things seriously and after a week... this is my colleague. So there was Quick Job on Commodore 64! And from this joke that was born... from this joke that... well, I don't know if he did it to me or I did it to him, the idea was born. That is, why, instead of making just a specific site work on the Commodore 64, don't I develop a library, a product that allows me to bring any type of content onto ancient computers, where the only limit is imagination? And so the idea was born to create this... essentially this library, which allows you to create anything. And so it is my BBS which I will then present to you... So, this is a quick overview of the mechanism I described before: therefore, it was pre-internet, there is the telephone network in the centre, on one side and on the other two vintage PCs, let's call them vintage PCs, connected with a normal telephone. Nowadays, classic BBSs still survive that run, physically, on Commodore 64, on Amiga, on PCs, physically connected with modems. In addition to working via telephone line, they also work via the internet. So, what happened?
It happened that the people who manage the classic BBSes, which in this case are represented by the icon at the top left, connect their phone, the cloud with the phone, to the internet and today's PCs, that is, today's PCs connected via current mechanisms such as WiFi, USB, Ethernet, connected to the Internet, are able to access the BBS service. So, one of the advantages is that instead of having only one user connected at a time, they can have 10, 20 or a little more. I said to myself: But I want to develop a BBS without having to rely on the limited power of an ancient computer. I would like to do this, or rather no, sorry, I would like to do this: therefore replace the main actor, the server which is at the top left, with a modern computer. In this way the architecture is completely modern: therefore we have both a modern computer on the server side and ancient computers on the client side, but with modern mechanisms for connecting to the Internet. This was the idea.
Let's move on. Here, modern mechanisms for connecting ancient computers to the internet. There are WiFi modems. This here is a classic modem, today it is no longer sold but many have been sold. It's Pasquale De Luna's, I bought it from him. It is a WiFi modem on user port. What is a WiFi modem? It is nothing more than a microcontroller, which can be an Arduino, it can be an ESP32, an ESP8266, there are many, simply mounted on the circuitry that allows you to connect old computers, in this case the Commodore 64, to the user port with ports, with connectors. Then, by adapting the microcontroller signals to the C64 user port, it is possible to communicate with it. Clearly it must be programmed: a firmware is needed which must be written on the microcontroller, and it becomes a real modem.
Another system, for the Commodore 64 in this case, are the compatible RRNET cartridges, which is a protocol created today to connect the Commodore 64 to the internet. It allows you to do various things, apart from connecting to BBSs, there are multi-user games, distributed games that use this interface, which is very powerful. Let's say that for BBS it's a bit exaggerated, it can do many more things. Another system is the EasyFlash 3 which, via USB port, can connect to a PC that provides internet connection. And then there is the Ultimate II+, a cartridge that many know, which among other things allows you to connect via the Ethernet port, you see it on the right, there is the Ethernet port. These are various ways to connect a Commodore 64 to the internet.
It is these objects below are represented by these physical objects.
Clearly some software is needed to run the BBS, and therefore on the server. There are many classics, and this site (bbdsocumentary) collects some of them. But here, the limit of these software is that they are quite limited. That is, you can do a certain number of fixed things: you can implement a message board, email-type messages, there is a file section, but it is very complicated to customize. What I wanted to do, for example with the JobRapido site, is to implement my own content from scratch, then say exactly what to transmit and what to take and then present the user with a result with unlimited computational power, therefore running on today's computers.
These, however, are software that run on vintage machines. And then there's this one here, which is my BBS project, my BBS library project, on Github. Ah, here are some business cards. If you want you can take them, but I also have them, as many as you want... here there are just seven, but I have so many. And it is the bookcase project that allows us to achieve, precisely, what I was saying: it is a bookcase that is suitable for people who do my job. I am a programmer.
So I wanted a tool that would allow a programmer to express himself freely using his own language. In this case it is written in Java because it is a language that I know well, simply for that, not because Java is particularly more or less suitable than others, simply because I use it for work. So, those who know Java can very quickly use this library to distribute their content via a Commodore 64, but not only.
These are the requirements to use this library: a JDK, which is practically Java, any machine, Linux, Windows or macOS, which will act as the server. Enough, that's all that's needed. Required skills: clearly knowledge of Java, basic concepts of the Internet, TCP, but more basic concepts, and then a knowledge, if you want to develop on the Commodore 64, of how PETSCII coding works, therefore which codes are used to change color, to move the cursor, for, in short, graphics, which is called PETSCII and therefore semi-graphic characters.
Why do this? Because many say to me: But why are you doing this? But why?
Because it's fun, from my point of view. So, to have an extra channel to distribute your content. So, in addition to having your beautiful site with WordPress, you can show it off on a beautiful Commodore 64, and that's cool. This is what I think. A current use of the Commodore 64: So imagine your beautiful, very modern house with the corner with a Commodore 64 giving you the news. For me it's nice, maybe he'll say: It's strange, but two things don't eliminate each other. And then above all the fun, let's say this is the reason why I wrote these things, to explain why.
This part, this slide, is very technical, let's say, but for those who have programmed in Basic, this slide shows what needs to be written: the only instructions to write to produce a BBS that asks your name and says Welcome. On standard output? Basically you see it as standard output, but in reality you write it on the BBS, but you don't see anything there, usually nothing is written. So the library, sorry if it's a very technical interlude, does nothing but abstract, so it allows you to give very simple instructions to do something that is very complicated underneath, but the result is immediate.
Let's take an example: it is written there, you see the gray part is the fixed part that must always be written, but we ignore it. The black part writes CLS, i.e. Clear Screen, clear screen, print This is your brand new BBS, print an empty line, print Enter your name, clear the input, write Readline and write Benvenuto Peppino. That is, in 10 lines I have built a very simple BBS, but it is also very simple to write in it. So, all the underlying mechanism with accessing the Internet, maintaining the state, there is nothing. To write a BBS simply tell the program: I want you to view this and request this information from the user. This is the principle.
Add imagination, skill and everything you want, and you can do complicated things like a Strength 4, for example. Clearly, it is one thing to make a Hello Word, it is another thing to make Forza 4, but the principle is exactly the same: behind the Forza 4 code there is nothing more than the game logic and the display logic of the boxes and dots, there is nothing else. Let's say, the strong point is precisely this: by adding imagination you can view news sites.
This, for example, is Wired. Wired is a WordPress-based site. So what did I, Java server side, do? I did nothing but read the news via JSON feed from the site created with WordPress, I reformatted them, gave it a format compatible with 40 columns, I designed the logo, and it was done. You can run any WordPress-based site on the Commodore 64. Il Fatto Quotidiano is based on WordPress, so I only designed the logo, the rest of the code is identical to the one before. I mean, they're two different things, but it's the same thing, there's no extra code. This is me watching Teletext, because, let's say, it's very relaxing.
Let's say, Teletext. RAI, how did I view RAI Teletext? In my opinion they forgot, because the Teletext section is abandoned, but it provides XML RSS feeds, it's called. So I did the same work I did for WordPress, but for RSS, and Teletext is ready. Once you write the code, you can reuse it an infinite number of times and you can basically do a lot of things. Imagine reusing the same code.
What is this? I wanted to reproduce the functionality of classic BBSes in the file area. The classic BBSes said: Look, this is my list of files you can download. I said to myself: Okay, putting up a list of my own files seems burdensome to me, because I have to stay there and replenish my repository. So, what do I do? I provide a proxy that downloads from a site that already exists, for example CSDB. CSDB for Commodore 64 is an infinite library of programs for the Commodore 64. Then I create the component to transmit the file via the protocol that was used at the time, which is XMODEM. In this way, you see, I write the download file part in black and give it the address of the file to download. Then, with my XMODEM, I won't go into details, but the fact is that that command sends the files to the connected client in the format it expects. Being the request, I can download from a website that provides HTTP files, so the Commodore 64 can directly download programs from anywhere, obviously it depends on how I programmed it. I don't know if I was clear. I mean, I realize that it's not for everyone, let's say, language.
And this is the result. I created the CSDB, I went and scraped what happens on the CSDB, I obtained the web addresses, the URLs of the addresses, and then the program is downloaded. A demo of all this is available upstairs. I have an entire table dedicated to the BBS. This is the project, I repeat, of the library in Java. And here the slides end, but the story doesn't end, the story continues. Because what happens? In adding functionality, I then also added a chat. There is also a chat. I met my friend Nicola, who I met through the chat on my BBS. With it, new features were added, for example the famous Videotels, the French Minitels or the Italian Videotels. I said to myself: But why shouldn't it also work on Minitel? The difference between the Commodore 64 and the Minitel, the only difference is the protocol used. So, instead of PETSCII, which I was talking about before, there are different codes. It was all a crazy amount of research, because the documentation of these protocols is a compliment to say that it is fragmentary. There are documents written by people who have been dead for 20 years that are on forgotten servers. We managed to recover the contents. There are codes, written in C, and by studying these codes, I was able to understand how to reconstruct the signals I need to send. So, let's say, it was a lot of research. I would call it a work of philology, because it involves interpreting what was once read and followed by machines that no longer exist today.
Then what happened? It happened that my friend Claudio Parmigiani, with the Apple 1 replica, told me to make it work on the Apple 1 too. Okay, okay. I studied the Apple 1 and the protocol. At that point the BBS also became compatible with the Apple 1. Let's say that it became, over time, a collaborative project, therefore a very beautiful thing. I met many people, each of whom gave me something and created contributions. So, in my opinion, this project here is a somewhat small expression of what is called Open Source. Because the project is public, anyone can download it, they can contact me. We got in touch, we made friends. Everyone made their contribution, even Piero, who here behind, gave me a hand with the download issue, because he created the download of the D64 files on the SD2IEC for those who use it. So, let's say that the beauty of this project is precisely the fact of bringing together various people. Then there are also very funny stories.
For example, I was connected to the chat and talking to Nicola. After a while, there was this nickname, Greta connected. I say: But who is he? I said: Hi, who are you? And she was a robotics student who was in the university classroom. Why was it connected? Because his robotics teacher was talking about the BBS and, as an example, he was showing mine. And she said: Ah, but are you doing BBS? I said: Yes. She asked: But what is the professor's name? I looked up the name on the Internet and said: Pass it to me. He handed it to me and I started talking to the robotics professor. Basically, instead of continuing with the lesson, what happened was that this professor started chatting with me. Since the professor also recorded the lecture, he sent me all the recordings of the lecture he made. The funny thing is that, while Greta was telling me the name of the professor, who I was looking for, while talking to me, the professor realized that I knew things about him. But it's simple, his student had told me before. And he said: Oh, but this is a hacker. But who is this? During the lesson, he was scared that I knew information about him, but his student simply gave it to me. So these very nice situations are also created.
At the moment, I have also created a support campaign for the project on Patreon. Here there are some cards with a QR code that refer both to the open source project and to the possibility of contributing 3 dollars a month. Contributors also have access to restricted features. For example, ChatGPT. ChatGPT is a service provided by OpenAI. If I am on the Internet via a Commodore 64 or a regular PC, I can access OpenAI services. Through my account, you can ask questions to GPT and receive them on your Commodore 64. This is a feature made available to contributors. Also because OpenAI charges the bill, so I pay the GPT bill.
The project is open to any type of collaboration or suggestion. I like listening to users' opinions. If there's some desire or some machine that you want supported, for example, there's a user who had the Vic 20 and wanted to use it. So I made a 22 column version. With 22 columns it is also possible to play Zork. I probably should have brought it here, but I don't have it. I have it on it, but it's not connected to the internet right now. However, above there is a table with a Commodore 64 and some Minitels, ...
So it's possible to see... Ah no, let's do this, we can also show it now, a little bit of a demo, we can show it. Yes, yes, thanks to another collaborator, a friend of mine called Antonino Porcino, this is the BBS. This is how you see it on the Commodore 64. There are various sections, in Italian and English, for example the news. This is the famous Teletext, where you can see the news. You see, the dates are today's dates, so they are all up to date. I repeat, in my opinion RAI forgot to pull the plug, because it is a dead section of the site. But they continue to be updated. I don't know about TV, but the quickest thing if you want to know what happened... Yes, but these are RSS feeds... Daily, my first link in the browser is Teletext, it gives clean news, in text format, without advertising, without graphics. It's my first link, and it's very convenient for me.
Then clearly there are also games to download, they are on this part here. No, no, no, then there are people who work at RAI, so it's not like I can fire them. Ah, rightly so, there is the editor-in-chief, there is the director of Teletext. It's convenient for me. There is the download section. This is the download I showed earlier. If we look for, for example, a C64 game, a classic, he finds it and says: Which one do you want to download? He says: This one here. He tells him: Look, you take a key and download it. Clearly, we are in the browser here, so we don't download anything.
Then there are other functions, for example ChatGPT, I'll show... Here it asks for the email because clearly, if it is reserved, by paying the bill, this thing is reserved for subscribers. The password arrives on my phone. I need to see the password, otherwise I can't log in. Okay, authentication. All that's missing is the SPID!
It's nothing more than ChatGPT, but with a Commodore 64 interface.
Then, if you don't have Minitel, you can also go to the web, there's minitel.retrocampus.com and there's the Minitel edition. Translate into Italian? No, don't translate anything. This is the Minitel edition, again via the web, you can use a Minitel service. What you see above is exactly this. So you can see the CNN, with the classic interface.
Nothing, I'm actually done. I don't know if I've been... are there any questions? ChatGPT responded on Tradate. Ah, you're right, he replied. It is a city located in Lombardy, northern Italy.
If you have any questions, I'm here and upstairs too. Ah, they're also above, so you can see some of the things I told you directly above. MSX support? It's not there at the moment, but if three people ask for it, I'll do it! But if there are only two, no. So, if there is... I don't have the MSX, but I can find out if there is a TELNET client, even with 40 columns, it is possible to use the standard ASCII version. You can already use it because I support standard 40-column and 80-column ASCII platforms, ANSI, if there is a client, actually, even better because it also makes nice graphics. Apple 1 and 2, Commodore 64, Minitel, Vic 20, M10 and that's it. Oh, there's also the Prestel edition. If you have a Prestel terminal, with a telematics adapter, that's on, you can see. The telematics adapter that MSX has is available, they have tested it and it works. Oh, perfect. Now you can use it like this.
Okay, okay, thanks.