+---------+
| PURPOSE |
+---------+

The overall goal of this project is to prepare you, the reader, to be able to program in assembly programming language. This only assumes you know how to double click to open files (so far you're doing good if you're reading this), download files, and copy and paste folders, extract files, and of course read english and type along with basic cognative abilities. I thought of many other things, but I came to the conclusion that it would be least painful to assume you know no more than these basic skills. This will be rather informal, however not uninformative. If things seem scary at first (inevitably it will), don't give up. These things are always scary in the beginning, which is why so many people give up. Little do such people know that it gets easier as you go along. This was written in the era where something called "32bit code" was the dominant market, and was considered to be the number one way to make sure your program ran on every computer (wheras 64 bit isn't fully compatable with most computers yet). It's not the most efficient and resourceful (many will argue with this of course), however this is ment to be as timeless as possible. At the time, there also exist "16bit," but due to certain factors it cannot be relied upon. This will be enough to get you started, and moving up won't be too much of a problem. This also, at time of original conception, does not serve to provide knowledge for programming for specific operating systems, however the message boards for your assembler will be adequate for this.

+------------------------+
| INSTALLATION (WINDOWS) |
+------------------------+

This tutorial focuses on FASM or Flat Assembler. Go to www.flatassembler.net, go to "Download," then download the most recent version of the assembler. It doesn't matter where you save it, but it does matter where you "extract" it. Extract fasm to somewhere you will easily be able to find it. Now, copy the "AFS" folder from here to your FASM folder. This is necessary to save you the trouble of setting up environment variables, however most will ask you to do this (you can follow their instructions for doing this).

Now, the first lesson is "00," however this lesson cannot be made into a computer program. Read this first (it's about your duties as a member of a programming community) and then open up FASMW from the fasm folder, and go to "File" then "Open." From there, find the AFS folder, then enter the "windows" folder in there. Inside is a file called "main," which will look very, very scary when opened (Do not be scared, you do not have to learn what that stuff does for a long while). Make sure that if there is a program in that folder, that you open up the assembly file, and NOT the program. Since all the lessons after the first lesson result in programs, which you can modify to help aid in the process of learning, you will be able to go hit "f9" on your keyboard and see the lesson in action, but be sure to go to the tab at the bottom and right click and click "Assign to compiler." This ensures that when you are looking at the other tabs (which will appear after you open the other files in fasmw, and now would be a good time to open them in fasmw) and modify code, that it still tries to make a program out of the "main" file, which is necessary for these programs.

Now, since fasm can no longer determine which file you want, you must tell it. So, you must left click the tab to main, then you must look for the line of text that starts with "lesson_path fix." As you will notice, it already starts with lesson #1. There is a special format necessary here, so do not add copies of this line, and only change the numbers to represent the lesson your learning, but lessons 1 through 9 must have the 0 preceeding the number, as already done with the first lesson. If you change nothing else in this file, everything will be fine. If something goes wrong, you can redownload this tutorial, and copy the "main" file from the windows folder and replace the one you accidentally changed (of course, you'll have to close fasmw first).

Finally, be sure to save any changes to the lesson that you want to see what it does. Just like with the main file, you can restart that lesson by closing fasmw and replacing the file that corresponds to that lesson.

+----------------------+
| INSTALLATION (LINUX) |
+----------------------+

This tutorial focuses on FASM or Flat Assembler. Go to www.flatassembler.net, go to "Download," then download the most recent version of the assembler. It doesn't matter where you save it. Extract fasm to the "linux" folder of the "AFS" folder. The "main.asm" file in this folder is, quite honestly, scary. I'm sure even experienced assembly coders will look at that file in fear. However, you do not have to fear. It merely makes the lessons work on both linux and windows (and other operating systems as support is added). Now, you will have to open a terminal, and use "cd" to get to the "linux" folder within the "AFS" folder.

The first lesson cannot be made into a program file, however the lessons following it can be. Read the first lesson (00.txt). You can modify the lessons with your favorite text editor, so long as it saves as raw text, not some open office or some other format. Personally, I use gedit, but other prefer emacs and vim. To make the lessons into programs, you must be in the "linux" folder. You type "./fasm main.asm sampleprog" and it'll make a "sampleprog" file that you can run after you "chmod +x sampleprog." If it says you cannot run fasm, try using chmod on it as well. So long as you don't delete, rename, or move sampleprog, you won't have to chmod it again.

Now, to change the lesson which gets made into a program, you will have to modify that ugly "main.asm" file. You must look for the line of text that starts with "lesson_path fix." As you will notice, it already starts with lesson #1. There is a special format necessary here, so do not add copies of this line, and only change the numbers to represent the lesson your learning, but lessons 1 through 9 must have the 0 preceeding the number, as already done with the first lesson. If you change nothing else in this file, everything will be fine. If something goes wrong, you can redownload this tutorial, and copy the "main.asm" file from the linux folder and replace the one you accidentally changed. BE SURE TO SAVE BOTH FILES.
