COURS 1.TXT
****************************************************************** * * * 68000 ASSEMBLY COURSE ON ATARI ST * * * * by The Ferocious Rabbit (from 44E) * * * * Lesson Number 1 * * * ****************************************************************** This assembly language course may seem small in size. However, it is not small in content! Assembly language is the simplest lan- guage, provided it is explained simply, which unfortunately is not often the case. These lessons aim to teach you what assembly language is in about fifteen lessons, no more. Anyway, apart from adding unnecessary chatter, I don't see how to make the lessons last more than 15 days. Obviously, you understand that paid courses have a strong interest in making it last and making you believe that it's very, very difficult to understand, and you'll need at least 2568478 lessons to get through it! This course is intended for beginners, consisting of several rela- tively short parts, but in which EVERYTHING IS IMPORTANT. INTRODUCTION AND WARNING Several habits are necessary for programming in ASM. Better take them from the beginning because what initially seems like small problems can quickly turn into a catastrophe. Firstly, maintain order at the disk level: backups are numerous, and it quickly becomes chaotic. Work with care: clear and precise comments on the listings, avoid so-called 'tricks' that you won't understand after 3 days, put some explanatory lines at the begin- ning of the listing... In terms of tools, I recommend DEVPAC for its ease of use and its documentation, which, although in English, is clear enough for you to easily find the information. If you have a 1040 (or more), don't hesitate to ask for automatic loading of MONST, the debugger, in the 'preferences' of GENST. As for bedside (and work) books, you must distinguish between two types of works: those related to the Motorola 68000 and those re- lated to ATARI. You ABSOLUTELY need one book of each type. Note that for the 68000-related book, it should not be a popular science book but a technical book that will probably seem incomprehensible at first. For example, the documentation from the microprocessor manufacturer (MOTOROLA or THOMSON for France). Look on the side of electronic component sellers rather than in computer stores. In desperation, consider "Mise en oeuvre du 68000" from SYBEX. A crucial point that MUST guide your choice: The computer vocabulary is largely composed of abbreviations. These are abbreviations of English terms. Therefore, it is imperative that the 68000 book gives the meaning of each abbreviation, meaning in English and translation in French. Be aware that many books only provide the translation, but while it is difficult to remember the meaning of terms like DATCK, BG, BGACK, MMU, or MFP, their functions are clear and especially easily memo- rizable if you know the meaning of these abbreviations in the ori- ginal language; the translation follows naturally. For the ST-related book, the best option is to obtain the official Documentation for Developers from ATARI. Otherwise, "la Bible" or "le Livre du développeur" from Micro Application, even if it still contains some errors, is an excellent alternative. Besides that, do not buy any other book: "le livre du GEM," "Graph- ics in ASM," "ASM courses," etc., will only be money pits and will not bring you anything. If, after these purchases, you have some money left, I strongly recommend buying a calculator with logical operations (AND, OR, XOR...) and conversions between bases used in computing (binary, hexadecimal...). I recommend the Texas Instrument TI34. It is a 'solar' calculator (but works with any light source) that is simple to use. You can find it at a price ranging from 199 Frs (NASA store) to 240 Frs (Camif or Fnac). It's an expense that is not too high and will quickly prove to be profitable! COMPUTER THINKING METHOD In France, we drive on the right. It's simple, ingrained, and everyone manages well. Let's imagine driving in England... For a Frenchman, there are actually three solutions: 1) We don't tell him anything about this type of driving: It's advantageous as our driver goes straight to the road, but of course, the first intersection might be fatal. 2) We re-teach him to drive from A to Z: It's time-consuming, feels like a waste of time, but almost completely limits the risk of accidents. 3) We simply tell the driver: Attention, here we drive on the left. He, knowing how to drive on the right, will be careful and will manage. Advantage: it's quick; disadvantage: a simple lapse, and it's an accident. Programming is like wanting to drive on the left. It just requires thinking, but not thinking like us, but like the machine. Aware of your desire to go fast, we will use method 3, but beware of slack. One last piece of advice before letting you approach the first lesson: assembly language, more than any other language, is assim- ilable to Lego construction. A huge Lego construction is just an assembly of small bricks. Assembling 2 bricks and spending 1 or 2 hours studying this assembly may seem unnecessary. However, that's what we're going to do: there is little to learn, but it is very important. It cannot be stressed enough: it will not be when our 1.5-meter Lego castle begins to collapse that you should say, "damn, my 2 small bricks from the beginning might have been poorly fixed," because at that moment, when a machine would accept to start over from the beginning, there is a 99% chance that your experience in ASM will end there, which would be a shame! Also, I strongly advise against hunting for listings! This practice is very common, among other things, on RTEL and gen- erally leads to trouble! It is FAR BETTER to appear as a fool be- cause you don't know how to do scrolling rather than show off when you just copied a source given to you by a friend! In this little game, there are winners in BASIC, C, or Pascal but never in assem- bly, because when you start trying to stick sources together and it doesn't work, you will be TOTALLY unable to understand why, and it will be too late to learn, and you will give up. And don't say no, look back 6 months on RTEL and remember those who were doing ASM then; they have almost all given up! Also, don't forget a funda- mental difference between any language and assembly: It takes about 6 months to learn C or Pascal. Then the time will be spent produc- ing good algorithms and typing programs. In assembly, it is completely different. In a maximum of one month, the 68000 should no longer have secrets for you; however, all the time that follows should be devoted to more or less obvious re- search on 'tricks' to perform faster, with more colors, etc... A BASIC or C programmer looks for sources to work. Not an assembly programmer! The assembly programmer WILL CREATE the routines! Typically, a C programmer will be asked to create a program, and the C programmer will ask the assembly programmer to create the supposedly unworkable routines! And of course, for these routines, no distributed sources! What we will learn here is to program like real programmers! To search, to understand, in order to be able to search on your own later. If you expect to find complete scrolling, digit reading, or mouse handling without GEM sources in this course, you are on the wrong path! Go back to BASIC that you should never have left; you will forever remain what is called a "lamer" in demos, someone who cop- ies but understands nothing. If, on the other hand, you want to know, then hold on because in- formation is scarce but... what a pleasure when after several sleepless nights, you see your first scrolling appear, and you can say: "I did it!!!" and it will be true!! In this course, we will study the 68000 but also the specificities of the ST: interruptions by the MFP68901, sound (digit or not), graphic manipulations, the Line A graphical interface, and finally, a big piece, often criticized but always used, the GEM. Good luck!
Back to ASM_Tutorial