Short:    Extended Syntax Assembly v1.11
Author:   bevilacq@cli.di.unipi.it (Simone Bevilacqua)
Uploader: bevilacq@cli.di.unipi.it (Simone Bevilacqua)
Type:     dev/asm
Requires: 020+ CPU, KS 2.04
Replaces: dev/asm/ESA.lha

Ever heard of "inline asm" inside C, Pascal, etc. ?
Well, now we can have "inline C, Pascal, etc." inside asm!


Look below: that's a small sample of ESA code!!!


*******************************************************************************
* CpyQtd
*******************************************************************************
* INFO          copies a string enclosed between two quotes: it is considered
*               a "quote" the first char of the string;
*               the copy is NULL-terminated;
*               fails at the first ENTER or BLANK
* SYN           StrEnd = CpyQtd[StrPtr,DstBuf]
*               d0              a0     a1
* IN            StrPtr       pointer to string (filename)
*               DstBuf       address of destination buffer
* OUT           StrEnd       pointer to last char (NULL); 0 if ERROR!
* WARN          be careful there is *no* check!!!
*******************************************************************************

                function CpyQtd[a0-a1],d1/a0-a1:d0.l

                move.b       (a0)+,d0                 ;get "quote"
                repeat
                 move.b      (a0)+,d1                 ;get 1st char

                 switch.s d1.b
                 -> d0                                ;successful copy
                  clr.b      (a0)                     ;NULL-termination
                  moveq.l    #0,d1                    ;exit loop
                 -> #0                                ;unvalid char, exit loop
                  suba.l     a0,a0                    ;error
                 -> #10                               ;unvalid char
                  moveq.l    #0,d1                    ;exit loop
                  suba.l     a0,a0                    ;error
                 def
                  move.b     d1,(a1)+                 ;copy char
                 eswitch

                until.s ~d1.b

                efunc,a0                              ;return new string pointer


============================= Archive contents =============================

Original  Packed Ratio    Date     Time    Name
-------- ------- ----- --------- --------  -------------
   22792   13238 41.9% 13-Oct-99 23:36:10 +ESA
  104882   32459 69.0% 13-Oct-99 23:36:02 +ESA.guide
    2821     973 65.5% 13-Oct-99 23:45:26 +MergeSort.ei
    1725     723 58.0% 13-Oct-99 23:45:26 +QuickSort.ei
    3711    1277 65.5% 13-Oct-99 23:45:26 +readme
    2713    1014 62.6% 13-Oct-99 23:45:26 +data.i
    1219     452 62.9% 13-Oct-99 23:45:26 +defs.i
     898     348 61.2% 13-Oct-99 23:45:26 +main.esa
    6819    2108 69.0% 13-Oct-99 23:45:26 +misc.ei
    6594    2286 65.3% 13-Oct-99 23:45:26 +opt.ei
    1900     858 54.8% 13-Oct-99 23:45:26 +split.ei
     567     305 46.2% 13-Oct-99 23:45:26 +do
   12666    4540 64.1% 13-Oct-99 23:48:08 +sss.guide
    6672    1969 70.4% 13-Oct-99 23:45:26 +VBR2FAST.esa
-------- ------- ----- --------- --------
  175979   62550 64.4% 21-Oct-99 20:57:54   14 files
