COURS 1.TXT

From Atari Wiki
Revision as of 23:45, 15 December 2023 by Olivier.jan (talk | contribs) (Created English page)
Jump to navigation Jump to search
   ******************************************************************
   *                                                                *
   *                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