,(align:"<==>")+(box:"X")[It is the 1st of January 1965. You have studied Computer Science as one of the first people in the world, ready to take on space exploration. What's your name?]
(input-box:bind $name,"===XXXX===",1,"John Appleseed")
(align:"=><=")+(box:"X")[[Start your journey!->Country Choice]](align:"=><=")+(box:"X")[Welcome $name!]
(align:"<==>")+(box:"X")[You have your most important decision yet to make. You have caught the attention of the two countries with the largest space programs, who will you go for?]
=|=
(align:"=><=")+(box:"X")[[Soviet Union->Soviet Union Introduction]]
=|=
(align:"=><=")+(box:"X")[[United States->United States Introduction]]
|==|(align:"=><=")+(box:"X")[Welcome to the Soviet Union, $name.]
(align:"<==>")+(box:"X")[We are glad you chose for the best country in the world and we are working on some exciting projects in your field.]
(align:"<==>")+(box:"X")[We thought you might be interested in working on our two most exciting projects, the //LINC// mini computer or the //PDP-1// super computer.]
=|=
(align:"=><=")+(box:"X")[[Work on the LINC->LINC Mini Computer]]
=|=
(align:"=><=")+(box:"X")[[Work on the PDP-1->PDP-1 Super Computer]]
|==|(align:"<==>")+(box:"X")[Welcome to //Lavochkin//, also known as //Lavochkin Research and Production Association//, is the biggest space company currently in the Soviet Union. We just changed our name from OKB-301 and we are ready to battle the United States of America in the space race]
(align:"<==>")+(box:"X")[You will be working on either of two missions, the //Luna 5// or the //Luna 6// mission. As we would like you to work on both missions, we will do a coin flip to decide!]
(align:"=><=")+(box:"X")(link-goto: "Flip coin", (either: "Luna 5", "Luna 6"))(align:"<==>")+(box:"X")[The MIR-1 is the second iteration of the MIR computer series. MIR (МИР) stands for «Машина для Инженерных Расчётов» (Machine for Engineering Calculations) and it is intended to be used in engineering or for scientific applications.]
(align:"<==>")+(box:"X")[Since the MIR-1 is one of the first computers to be able to run high-level programs, it is interesting that you learn the state of the art programming language in the Soviet Union, //ALGOL//.]
(align:"=><=")+(box:"X")[[Learn ALGOL->ALGOL]] (align:"<==>")+(box:"X")[OGAS means //National Automated System for Computation and Information Processing// in Russian and we are trying to create a nationwide information network.]
(align:"<==>")+(box:"X")[We will create a main computer centre in Moscow, disperse 200 major computer centres across the country and we will be able to connect up to 20000 terminals to the network. It will be the first large-scale information network in the world!]
(align:"<==>")+(box:"X")[Since here in the Soviet Union we mostly use the programming language //ALGOL//, it is probably important for you to learn it thoroughly.]
(align:"=><=")+(box:"X")[[Learn ALGOL->ALGOL]](align:"<==>")+(box:"X")[ALGAMS is an implementation that works on two specific machines and you can choose which one you want to work on. It is the //MINSK-2// and the //BESM-6//, feel free to choose either.]
=|=
(align:"=><=")+(box:"X")[[Work on the MINSK-22->MINSK-22]]
=|=
(align:"=><=")+(box:"X")[[Work on the BESM-6->BESM-6]]
|==|(align:"<==>")+(box:"X")[MALGOL is the implementation that is specifically tweaked for the //MINSK-2// computer and it probably smartest for you to work on that project!]
(align:"=><=")+(box:"X")[[Work on the MINSK-22->MINSK-22]] (align:"<==>")+(box:"X")[It seems like ALGOL Alpha was definitely the wrong choice, it seems like it lost all its credibility and doesn't run on any major machines anymore.]
(align:"<==>")+(box:"X")[It is very sad, but I think we have to say goodbye and from this moment are ways will part.] (align:"<==>")+(box:"X")[You are going to be learning //ALGOL 60// (short for Algorithmic Language 1960) since we use it across all the computing centres here in the Soviet Union.]
(align:"<==>")+(box:"X")[As most programming languages, ALGOL also has several implementations. You can choose any of the following and maybe you will become a star in one of our computer centres!]
=|=
(align:"=><=")+(box:"X")[[Learn ALGAMS->ALGOL ALGAMS]]
=|=
(align:"=><=")+(box:"X")[[Learn MALGOL->ALGOL MALGOL]]
=|=
(align:"=><=")+(box:"X")[[Learn Alpha->ALGOL Alpha]]
|==|(align:"<==>")+(box:"X")[The MINSK-22 is a modified version of the MINSK-2, a solid-state digital computer. It went in production in 1965.]
(align:"<==>")+(box:"X")[It supports COBOL, FORTRAN and ALGOL and guess what you have just learned! I think you should be a master at programming this computer.]
(align:"<==>")+(box:"X")[Even more positive news, it seems like the space agency is looking for someone to program their //MINSK-22//, this is an opportunity you cannot decline!]
(align:"=><=")+(box:"X")[[Take the job!->Lavochkin Introduction]] (align:"<==>")+(box:"X")[Like its predecessors, the //BESM-6// is transistor-based, one of the first of its time! It is also the first computer to every reach 1 million instructions per second, a huge milestone.]
(align:"<==>")+(box:"X")[The BESM-6 is widely used in the Soviet Union for control tasks, however, one of those control tasks might be very interesting for you. I am talking about working at the space company //Lavochkin//, they need someone for their //Luna 5// to help with the control.]
(align:"=><=")+(box:"X")[[Take the job!->Lavochkin Introduction]] (align:"<==>")+(box:"X")[It is the 31st of January 1966 and we are ready for take-off, it seems like it is a success! This is going to be the twelfth attempt at a soft landing on the moon.]
(align:"<==>")+(box:"X")[Once close to the moon, it seems like all the systems are perfectly well designed and it lands! We have created the first spacecraft to land on a celestial body!]
(align:"<==>")+(box:"X")[We have achieved something great and your next challenge is ready, you will continue with the Luna program and work on the Luna 15!]
(align:"=><=")+(box:"X")[[Continue in the Luna program->Luna 15]] (align:"<==>")+(box:"X")[The //Luna 6// mission is already being planned as a backup for the //Luna 5// mission. We can never be too sure when having a space race.]
(align:"<==>")+(box:"X")[It seems like the //Luna 5// mission failed and it crashed because of gyroscopic failure, it's good that we had a backup! We will fix the gyroscope issue and we can start the mission!]
(align:"=><=")+(box:"X")[[Start the mission->Luna 6 Mission]] (align:"<==>")+(box:"X")[The //Luna 5// mission's goal is to land on the moon and be the first spacecraft to do so! We will be lifting off on the 9th of May 1965, so we will have a couple of months to prepare the final pieces.]
(align:"=><=")+(box:"X")[[Start the mission->Luna 5 Mission]](align:"=><=")+(box:"X")[добро пожаловать в советский союз, $name.]
(align:"<==>")+(box:"X")[We are glad you chose for the best country in the world and we are working on some exciting projects in your field.]
(align:"<==>")+(box:"X")[We thought you might be interested in working on our two most exciting projects, the mini computer //Mir-1// or a decentralised computer network //OGAS//.]
=|=
(align:"=><=")+(box:"X")[[Work on Mir-1->Mir-1 Computer]]
=|=
(align:"=><=")+(box:"X")[[Work on OGAS->OGAS]]
|==|(align:"<==>")+(box:"X")[//LINC//, an abbreviation of Laboratory INstrument Computer, will be the first mini computer ever.]
(align:"<==>")+(box:"X")[You will be working at MIT, and you will be working on the control console and the keyboard interface. It will be one of the first computers ever to have these.]
(align:"<==>")+(box:"X")[One of the most exciting features is that it contains a control panel, allowing you to step through the execution step-by-step, making it one of the first debugging consoles!]
(align:"<==>")+(box:"X")[After you're done with this work, I'm sure you can work on every single project but I heard the //IBM System/360// is very exciting!]
(align:"=><=")+(box:"X")[[Work on the IBM System/360->IBM System/360]] (align:"<==>")+(box:"X")[You will start working on the //PDP-1// computer and we intend it to be the strongest computer ever created.]
(align:"<==>")+(box:"X")[We expect the computer to have a whopping 9kB of memory, capable of storing more information on a single computer than every before.]
(align:"<==>")+(box:"X")[For creating programs, we will use paper tape so get familiar with writing your programs on that. Also, the system will have a graphical display, however, if you want to change a single frame it take approximately 30 seconds. //We have heard rumours someone is creating a game for it using the graphical interface, so-called Spacewar!//]
(align:"<==>")+(box:"X")[After you get familiar with the //PDP-1// you can move onto arguably the most highly anticipated project ever, the Apollo missions at NASA where they are trying to put a man on the moon!]
(align:"=><=")+(box:"X")[[Work on the Apollo 1 mission->Apollo 1]] (align:"<==>")+(box:"X")[The machine you are going to be working on, the IBM System/360, is supposedly the first computer to be used by scientists and is suitable for commercial uses.]
(align:"<==>")+(box:"X")[You will be working on the first version of the System/360 and it will be have a memory of 64kB! We will also ensure that there are multiple versions available, each with different specs, this will allow users to switch easily between machines!]
(align:"<==>")+(box:"X")[After you're done with your work here, I have something important to show which might shake up the world, it's called a floppy disk.]
(align:"=><=")+(box:"X")[[Start working on the floppy disk->Floppy Disk Development]] (align:"<==>")+(box:"X")[Welcome to NASA! You will be working on the //Apollo 1// mission, which will be the first crewed mission of the Apollo program.]
(align:"<==>")+(box:"X")[We have been testing lots of spacecrafts, however, this is very different because we will be needing to carry humans with us into space.]
(align:"<==>")+(box:"X")[You will be working on the command module, including the computers and everything surrounding it. You will need to ensure everything is safe and sound, ready to fly into space!]
(align:"<==>")+(box:"X")[The planned launch date is the 21st of February, but we need to perform a crucial test of all the electrical components. This will happen on the 27th of January and I want you to be there!]
(align:"=><=")+(box:"X")[[Go to the test->Apollo 1 mission]](align:"<==>")+(box:"X")[The //Apollo 5// mission will be the first mission to use the so-called Lunar Module (LM) and you will be the one to work on this huge project!]
(align:"<==>")+(box:"X")[The lunar module is supposed to be the spacecraft that gets released the moment that we are in orbit around the moon. It is probably the most exciting and dangerous step of the mission so it needs to be done perfectly!]
(align:"<==>")+(box:"X")[We will see you back at the launch of the //Apollo 5// mission and now get to work!]
(align:"=><=")+(box:"X")[[Start the Apollo 5 mission->Apollo 5 mission]](align:"<==>")+(box:"X")[Welcome to the team for the //Apollo 11// mission, which will hopefully be the first mission to put humans on the moon safely!]
(align:"<==>")+(box:"X")[The //Apollo Guidance Computer// will be one of the most important aspects of the mission since without it we will not be able to land on the moon, so you will be really important.]
(align:"<==>")+(box:"X")[The //Apollo 11// mission is set to launch on the 16th of July, so get back to work and we will see you at the launch!]
(align:"=><=")+(box:"X")[[Start the Apollo 11 mission->Apollo 11 mission]](align:"<==>")+(box:"X")[We have been struggling getting enough computational power inside the command modules of our spacecrafts. All the current computers are either too large or not powerful enough and thus we need you to help us design a computer for that purpose.]
(align:"<==>")+(box:"X")[The computers will be responsible for the start, course corrections and most of the landing up until the last part.]
(align:"<==>")+(box:"X")[We need you to design the instruction set for the computer, something which is important not only for the Apollo missions but it might also influence what computers in the future will have as instruction sets.]
(align:"<==>")+(box:"X")[You will need to know assembly since this will be the only language we will support, it will be difficult, but it will be worth it.]
(align:"<==>")+(box:"X")[After you have created the //Apollo Guidance Computer//, we want you on the team for the first mission where we actually want to put a man on the moon! We need your intricate knowledge of the computer for programming it.]
(align:"=><=")+(box:"X")[[Work on the Apollo 11 mission->Apollo 11]] (align:"<==>")+(box:"X")[The floppy disk is supposed to be the next big thing, allowing people to store data really efficiently. They are only going to be 8 inches in size and will be able to store a whopping 80 kB!]
(align:"<==>")+(box:"X")[I have heard that if this becomes a success, they are planning to make it smaller and go for a size of 5 1⁄4 inches, but this is far in the future.]
(align:"<==>")+(box:"X")[For now, it might be interesting for you to check out any of these two projects, I think they might be interesting to you. The first is an incentive to create a new type of operating systems for a computer, since they are becoming more powerful. The second project is trying to create a decentralised network of computers, pretty exciting stuff!]
=|=
(align:"=><=")+(box:"X")[[Work on a new operating system->UNIX Development]]
=|=
(align:"=><=")+(box:"X")[[Work on a decentralised computer network->ARPANET]]
|==|(align:"<==>")+(box:"X")[Welcome at Bell Labs where you will be working on the UNIX operating system. It will support multitasking, multiple users and we will limit the functionalities to the absolute minimum to support customisation.]
(align:"<==>")+(box:"X")[Our aim is to make it perfect for programmers, allowing sotware to be run and tested easily on it. This will allow future developers to have a better workflow than we are currently experiencing.]
(align:"<==>")+(box:"X")[We have tried creating an operating system before, however, it just did too much so we will focus on singular tasks at first. And hopefully over time it will become a huge success!]
(align:"<==>")+(box:"X")[//You worked on UNIX for the rest of your career, becoming one of the most well-known developers in the open-source community. You contributed to the operating system that almost all current supercomputers run and it is the biggest open-source project to ever exist!//](align:"<==>")+(box:"X")[You are going to be working on ARPANET, it will hopefully be the first decentralised computer network on a large scale. We will try to connect multiple universities together in an aim to make communication easier.]
(align:"<==>")+(box:"X")[The original idea came to be by Bob Taylor, who wanted to enable remote access of computers, allowing a person to execute commands from wherever they are.]
(align:"<==>")+(box:"X")[Computer should be able to connect without an issue and every computer should be able to leave the network without causing problems.]
(align:"<==>")+(box:"X")[Since we have the basic structure of the project ready, there are two things you can work on implementing, so we will do a coin flip to decide!]
(align:"=><=")+(box:"X")(link-goto: "Flip coin", (either: "File Transfer", "E-mail"))(align:"<==>")+(box:"X")[We have been developing this system called //e-mail//, it stands for electronic mail. In 1966 someone developed a system to send messages to another user on the same computer, however, now that we have ARPANET we want you to help develop this across the network.]
(align:"<==>")+(box:"X")[Since the system only supports a single computer, we need to differentiate between users on different hosts. This is your first task that you need to think of and let's get started!]
(align:"<==>")+(box:"X")[//In the end, you worked for several years on the e-mail protocol. You thought of the idea to use the '@' sign to differentiate between users with different hosts. After you developed the e-mail standard, you worked on multiple features regarding e-mail at big companies including the forwarding and BCC features.//](align:"<==>")+(box:"X")[Glad to see you have chosen to work on file transfers. You will help develop the file transfer protocol, or FTP for short.]
(align:"<==>")+(box:"X")[We have formed the general idea of FTP and it has two modes, active and passive.]
* In active mode, the client starts listening for incoming data connections from the server. It sends the FTP command to inform the server on which port it is listening. The server then initiates a data channel to the client.
* In passive mode, the client uses the control connection to send a PASV command to the server and then receives a server IP address and server port number from the server, which the client then uses to open a data connection from an arbitrary client port to the server IP address and server port number received.
(align:"<==>")+(box:"X")[There is lots left to do as we will be implementing ASCII support, different file types and much, much more.]
(align:"<==>")+(box:"X")[//Eventually, you finish working on FTP and move on to the communication protocol TCP/IP. You will eventually become one of the most influential people for online communication.//](align:"<==>")+(box:"X")[The Luna 5 is the first spacecraft to actually leave earth in 2 years from the Soviet Union, it is a miracle!]
(align:"<==>")+(box:"X")[Everything was going fine for the first day, however, it seemed like there was a fault with the gyroscope, causing it to spin uncontrollably during its course. It ended up crashing into moon and all our hard work was for almost nothing...]
(align:"<==>")+(box:"X")[Our next project where we need your help is preparing a future mission, the //Luna 9// mission. Let's go!]
(align:"=><=")+(box:"X")[[Start working on the Luna 9->Luna 9]](align:"<==>")+(box:"X")[The //Luna 6// launch is a success! Second time in a row we are off to a good start, let's hope everything goes well this time.]
(align:"<==>")+(box:"X")[During the mission it seemed like there was a mistake in the software that did the course correction it steered off of the trajectory and it missed the moon. We'll have to try another time.]
(align:"<==>")+(box:"X")[Our next project where we need your help is preparing a future mission, the //Luna 9// mission. Let's go!]
(align:"=><=")+(box:"X")[[Start working on the Luna 9->Luna 9]](align:"<==>")+(box:"X")[You are assigned with the task of helping win the space race by obtaining matter from the moon. The task is simple: land on the moon, grab a sample and return back home.]
(align:"<==>")+(box:"X")[While the mission is coming to a close, there are rumours that the United States is planning to go to the moon with an actual crew, so there is a time hurry.]
(align:"<==>")+(box:"X")[The take-off is a week before the planned launch of the Apollo 11, everything is set to go. The take-off goes perfectly, everything is going perfectly.]
(align:"<==>")+(box:"X")[After 52 orbits of the moon, it began its descend, but we already lost the space race, Neil Armstrong had set a foot on the moon. During the descent everything went well up until the point contact was lost and it probably crashed into a mountain.]
(align:"<==>")+(box:"X")[As we have lost the space race, Lavochkin is doing cuts in their staff and sadly you are one of them. We have to let you go, I'm sorry.](align:"<==>")+(box:"X")[The test goes catastrophically wrong! When starting the system, a fire broke out and because of the difference in atmospheric pressure between the inside and outside it was impossible to open the door...]
(align:"<==>")+(box:"X")[All three crew members have died in a seemingly non-dangerous test, probably the biggest setback in the whole space program so far.]
(align:"<==>")+(box:"X")[It seems like this might be the end of the Apollo missions for a while, but we want to invest in the future and there are two projects we want you to work on. We want to create a small computer being able to be carried on a spacecraft, the //Apollo Guidance Computer//, or we want you to work on one of the future missions, the //Apollo 5// mission.]
=|=
(align:"=><=")+(box:"X")[[Work on the Apollo Guidance Computer->Apollo Guidance Computer]]
=|=
(align:"=><=")+(box:"X")[[Work on the Apollo 5 mission->Apollo 5]]
|==|(align:"<==>")+(box:"X")[First of all, we are late, everything was delayed yet again and it was the fault of the Lunar Module.]
(align:"<==>")+(box:"X")[The goal of this mission was to verify the subsystems of the Lunar Module, test the ascent and descent engines and to perform some crucial safety tests.]
(align:"<==>")+(box:"X")[Everything goes well with the start, the Lunar Module is on its way to the moon! It safely performs two orbits and it wants to set in a landing to the moon, however, the //Apollo Guidance Computer// cancels the landing because the spacecraft is not going fast enough.]
(align:"<==>")+(box:"X")[After seeing the mission supposedly fail they wanted to perform the necessary safety tests, but were not able to communicate with the spacecraft correctly. The mission was deemed a failure.]
(align:"<==>")+(box:"X")[//After the mission, you decide to quit the Apollo program since it doesn't give you a good feeling that the line of error was so thin. You enjoyed working on the first few missions but for your own future you opted that moving on from NASA was the best option.//](align:"<==>")+(box:"X")[It is the 16th of July and at exactly 13:32:00, the spacecraft ascended, it was a success!]
(align:"<==>")+(box:"X")[After 12 minutes, it reached a near-circular Earth orbit, needed to perform the final stretch to the moon. After 30 minutes, the extraction maneuver was performed and we are on our way to the moon!]
(align:"<==>")+(box:"X")[After 4 days, on July 20th 12:52:00, the spacecraft is in lunar orbit and ready to start the lunar descent. During the descent, the //Apollo Guidance Computer// was not able to perform all its tasks and it was showing 1201 and 1202 error codes, but it was safe to continue.]
(align:"<==>")+(box:"X")[On July 20th 20:17:40, the spacecraft landed on the moon and we had successfully landed people on the moon, a huge and impressive feat for humanity.]
(align:"<==>")+(box:"X")[Over the course of the next few days, the astronauts went to the moon and performed tests. Eventually they returned safely to Earth, and everything went perfectly as planned!]
(align:"<==>")+(box:"X")[//After this mission, you felt accomplished and you decided that it was good enough for you. You quit at NASA and you started overseeing important computer development projects. In the future you would work on the Cray-1 and the Cray X-MP supercomputers.//]