Pl INTRODUC.DOC

From Atari Wiki
Revision as of 11:58, 17 December 2023 by Olivier.jan (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
                         --------------------------
                          VOLUME I,   CHAPTER N°1

                                INTRODUCTION
                            
                         --------------------------

  HELLO!       To start, as the title of this first chapter
  indicates, here is an explanation of how to use this digital manual
  and also a general introduction to programming in 68000
  assembler on ATARI ST.

  
                    *** HOW TO USE THIS MANUAL? ***
                    --------------------------------

-   This is a digital manual, meaning it is composed of texts
    on a magnetic medium: a floppy disk

-   The advantage of this method? A significant saving for
    the buyer, programs, and especially already written listings (thus
    saving time and no more typing mistakes or other errors...)

-   You can load the various texts, grouped by files, and
    read them with a word processor (for example FIRST WORD) or (if
    you do not own one) with any other utility loading texts
    in ASCII format (meaning a file containing text and
    can be listed from the DESKTOP as such):

        This is possible with the text editors from METACOMCO (select
    the file to read by going through the NENU+.PRG utility with
    the option 'CHOOSE *.*' then the option 'EDIT')

    This method also applies to DEVPAC 68000. (Metacomco and DEVPAC
    are assemblers, see below for more details).

  You can also use the options of the DESKTOP: double-click
  on the chosen text file then select 'PRINT' or 'VIEW'.

  Of course, you can also freely print all the files
  with your word processor once they are loaded...


-   This manual is formed by a series of texts classified by chapters
    (like in a book) to give a structure to the whole.

-   At the end of each file, an indication will give you the exact name
  of the next text to read: You should not encounter any problems.



                         *** STRUCTURE OF THE BOOK ***
                         ----------------------------
-   As you can see, the titles are centered, framed
    with stars, underlined and spaced in a way to aerate the text.

    The text itself will be grouped into paragraphs for better
    clarity.

-   Later, important words to remember will be
    written in capital letters. (examples: BYTE, REGISTER, etc...)

-   I will also use certain abbreviations: "i.e." for "that is to
    say" or "ex." for "example", "prg" for "program"...

-   Example programs will be present on the floppy disk.
    (you will be able to load them directly with your assembler without
    having to retype them!)

    The same goes for the executable programs from these
    listings and for corrections of exercises.
    

                       *** A DIDACTIC METHOD ***
                       ------------------------
-   Assembler is known for its difficulty, and it is true that pro-
    gramming in assembler requires much more effort than programming
    in BASIC or even in the C language...

-   Do not worry...! To make a comparison, one could
    say that programming in assembler is as difficult as learning
    to read or write, yet who among you does not know how to read AND write?!

-   Just like for learning to read, this book will place
    practice in the forefront and will be very abundant in various
    examples which are all detailed and personal exercises (with
    complete answers).

-   You will have to get rid of all preconceptions about assembler:

    Someone who cannot read will be discouraged in front of a text, which
    to them is just a slab of letters without any apparently logical
    alignment.

    The same must be of you in front of an assembler listing,
    so be patient...


-   You will first have to learn the alphabet (i.e. the useful
    definitions) then study examples, the grammar rules (hence the relationships
    that give consistency to your program) but also the exceptions
    (i.e. the specific cases in assembler).

    At the end of this book you will all be capable of READING a pro-
    gram in 68000 assembler and UNDERSTANDING it.
    
    In short, you will have acquired the basics of programming in ASS. 68000
    and you will be able to write your first programs.

-   At that point, you can finally dive into various books
    on 68000 assembler programming, most of which are intended for an informed
    audience, and you will see for yourself that your progression will only accelerate...

-   The aim of this book is therefore very ambitious: Its goal is to teach you an
    unfamiliar computer language.

    Facing the difficulty, I have tried to make the problems
    posed by programming in assembler very clear:

  ----------------------------------------------------------------------
*  This book was not written to dazzle or impress its readers
   with incomprehensible technical vocabulary, it is, on the contrary, an
   example of clarity.

*  Each important concept is explained in depth and illustrated by
   diverse and detailed examples.

*  The vocabulary used will be defined and the linearity of the book will bring
   the reader to a progressive, fast, and unambiguous result.

  ----------------------------------------------------------------------

-  Never forget this golden rule:

                  "QUALITY IS BETHER THAN QUANTITY!"

    This is especially true for programming in assembler, I advise you not to read too quickly, you will not be able to progress if
    you do not regularly assimilate the notions from the various chapters:

    Programming in assembler follows very strict rules.

    Re-reading will be essential and frequent, this is normal.

    Stop if you did not understand something and reread
    very slowly.



                          *** NECESSARY MATERIAL ***
                          -------------------------
1) Software:
   --------
-    A complete ASSEMBLER: EDITOR, ASSEMBLER, LINKER (terms explained
   later) will be essential if you want to create your own
   68000 assembler programs.

     Several are available at any good retailer, here are the most
     common.

* METACOMCO MC 68000:    .A good assembler, the editor is managed by the
  ------------------      keyboard: so it is very convivial and fast.

                         .The assembler is customizable and allows defining
                          MACRO-INSTRUCTIONS (sorts of functions
                          created by the programmer and able to simulate
                          a new instruction later on, I will detail later...)

                         .The accesses to the floppy drive are, in my
                          opinion, too frequent, which results in a loss of
                          speed, it's a pity.

* PROFIMAT           :   .We will use this assembler in the
  --------                examples, but the listings remain valid for other assemblers.

                         .The editor is very complete (helps, management with
                          the mouse through dropdown menus...)

                         .The assembler is customizable and generates an optimized
                          OBJECT CODE.
                          (patience for explanations...)

                         .Also allows creating MACROS.

                         .The editor, assembler, linker are available
                          at the same time, the accesses to the floppy drive
                          are therefore limited, Very good!

also contains:            .A DEBUGGER (to find ERRORS in your
                          assembler programs (also allows to study the
                          content of the computer's memory)),
                          And a DISASSEMBLER that provides a text file
                          (listing) from a COMPILED program (or
                          executable program of type NAME .PRG)

                          These 2 terms will be explained in a separate
                          chapter.

                         .Very complete


* DEVPAC ST (1 or 2)     .Same characteristics as PROFIMAT but less
  ------------------      developed for DEVPAC I.

                         .Very efficient (especially DEVPAC II) and simple
                          to access.
     
                         .With DEVPAC II, you can directly launch the
                          created program, without having to leave the edi-
                          tor, and reprocess the listing in case of an error!
                         
                         .DEVPAC II comes with MONST2, the best
                          debugger and disassembler you can find...

                         .DEVPAC II admits very
                          powerful ASSEMBLY DIRECTIVES: INCBIN, REPT, ENDR, ELSEIF, RSSET...

                         .DEVPAC II is, in my opinion, THE best assembler
                          you can find: Do not hesitate!

     
* GFA ASSEMBLER         .I was only able to test a preversion of this
  --------------          assembler:

                         .It will be very useful to you because it corrects
                          incorrect syntaxes.

                         .The program can be directly executed,
                          under the editor. (Like with DEVPAC II)
                    
                         .Contains a very user-friendly debugger...
                         
                         .The EDITOR is superb! (It is faster than
                          the one from GFA BASIC).
   
                         (Ask your retailer for more details...)
 
* METACOMCO 12.0         .Contains a very good EDITOR.
  --------------         
                         .The ASSEMBLER, LINKER, and DEBUGGER provided
                          are very powerful.

                         .The provided manual is very well made...

  The prices of these different assemblers can vary, but they are generally
  quite high because these are already very complex utilities
  reserved for professionals, but they are very suitable for our
  needs and their use is not a problem if one knows
  assembler.

     You still have all the time to make your choice if it has not yet
  been made, be patient to be able to perfect your judgment
  because there is no rush ...


2) Additional manuals (optional)
   -----------------------------

-       Later on, when we study the functions of GEMDOS, XBIOS, and BIOS, it will be very
    useful for you to own "THE ST BIBLE" by MICRO APPLICATION, this book contains precisely all
    the names of the functions of the 'libraries' that are GEMDOS, XBIOS, and BIOS.

   The functions of GEMDOS, XBIOS, and BIOS can be called
   in assembler and allow the execution of basic functions such as
   printing characters, opening files on Floppy, or changing the color palette, etc...

      A chapter will explain in detail all these functions with
      examples, corrected exercises, and a meticulous description.


-  You can also buy "THE GEM BOOK" by MICRO APPLICATION, it
   contains VDI and AES functions:

    The VDI is a 'Library' of functions just like the BIOS or
    GEMDOS and XBIOS, but these functions are graphical and allow
    for example the drawing of circles, polygons, fillings...

    The AES manages the environment for applications, that is, it manages
    and allows the creation of windows, icons... through which the user
    communicates information to the computer, thanks to the mouse
    among other things.

-   We will be more interested in the VDI in a separate chapter because
    the use of the AES goes beyond the scope of our goal given the complexity
    of its implementation.

    

   .An entire chapter will be dedicated to GEMDOS, BIOS, XBIOS, and VDI functions (You will also study LineAs and interrupt programs...)



                    *** WHAT IS ASSEMBLER? ***
                    ------------------------------

-    ASSEMBLER has the sad reputation of being difficult to
     implement, which is why it is often preferred to a language like BASIC,
     PASCAL, C, etc...

     One of the major reasons that have contributed to this reputation is
     undoubtedly the lack of any complete and didactic initiation
     to this fantastic language that is ASSEMBLER.
     Often, works published on ASSEMBLER are completely devoid of any pedagogical ambition and are in fact nothing more
     than catalogs of incomprehensible technical terms.

     Thus, most amateur programmers know nothing about assembler even though it is the natural language of
     their computer!

     It is a pity, because the performance of assembler
     cannot even be compared to that of certain languages called 'evolved'. (especially in terms of graphics)

-       ASSEMBLER allows understanding the internal workings of the
     computer, in an ASSEMBLER program each component of the computer's structure appears clearly: MEMORY, REGISTERS,
     VARIABLES...

-    Each of these components can be modified in ASSEMBLER.

     ASSEMBLER is in direct contact with the computer and therefore uses
     no detours, it always achieves a precise result.

     A 3-line BASIC program once compiled will consist of a hundred
     ASSEMBLER instructions, while the same program, written
     directly in ASSEMBLER, would only take up a tenth of that...


-    Like every computer language, ASSEMBLER has various
     instructions, but it can also directly call functions (XBIOS, BIOS, GEMDOS, AES, VDI...) providing the
     necessary parameters.

-    The 68000 ASSEMBLER works in two different modes:

          The User mode: a reserved memory area is
                               available to the programmer.

          The Supervisor mode: The programmer has access to all
                               instructions and all memory.


-     ASSEMBLER is very specific: programming in Z80 Assembler
      on AMSTRAD CPC is not the same as on ATARI ST in 68000 Assembler.


   --------------------------------------------------------------------
        All these notions will be defined in-depth later:
                          Do not Panic!

   --------------------------------------------------------------------



               *** WHY PROGRAM IN ASSEMBLER? ***
               ----------------------------------

 -   Who among you does not dream of being able to match or surpass the
     programmers of your favorite games??

     Ex: OVERLANDER and PANDORA were programmed with DEVPAC II
          and 95% of the good games on ST are written in Assembler.
          
 -   In some cases, ASSEMBLER can be 100 times faster
     than GFA BASIC...

 -   If you program in BASIC, you will only have access to the
     instructions specific to the utility whereas in ASSEMBLER you have
     a hundred functions directly usable and an instruction set that will allow
     directing every operation with unparalleled precision and speed.

 -   ASSEMBLER is very specific because it varies according to the MICRO-
     PROCESSOR (the 'brain' of your computer).

     The ATARI ST is equipped with the MC 68000 Microprocessor (from Motorola)
     :So we program in 68000 Assembler on ST...

     An AMSTRAD CPC is equipped with a Z80 microprocessor, different from
     the MC 68000 in many ways. This explains the differences in
     performance, and in programming between these two computers.

-    But today, we find computers equipped with Microprocessors from the 68000 family: the 68008,68010,68012...
     An example: The AMIGA also has an MC 68000 microprocessor.

     It will, therefore, be quite easy for you to adapt to programming in
     assembler on these (new) computers.

     The microprocessors from the 68000 family, therefore, have a bright future ahead... (as opposed to the Z80 for example, which is
     totally outdated)


                                --------------

     That's it for the theoretical part, but now let's get down to business...



       Laurent PIECHOCKI
       8, impasse Bellevue                       continued in :  NR#2.DOC
       57980 TENTELING                                        --------


Back to ASM_Tutorial