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

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


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


*******************************************************************************
* CpyQtd v1.0.0
*******************************************************************************
* INFO          copies a string enclosed between two quotes: it is considered
*               a "quote" the first char of the string;
*               the copy is NULL-terminated;
*               it fails at the first ENTER or BLANK
* SYNOPSIS      CpyQtd{StrPtr,DstBuf}
*                      a1     a2
* IN            StrPtr       ptr to string (filename)
*               DstBuf       adr of destination buffer
* MODIFIES      a0.l         ptr after string (NULL if ERROR!)
* WARNING       be careful there is *no* check!!!
*******************************************************************************

                procedure CpyQtd{a1-a2},d0-d1/a1-a2
                move.b       (a1)+,d0                 ;get "quote"
                repeat
                 move.b      (a1)+,d1

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

                until.s ~d1.b
                movea.l      a1,a0                    ;new string ptr

                eproc


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

Original  Packed Ratio    Date     Time    Name
-------- ------- ----- --------- --------  -------------
   23424   12289 47.5% 30-Oct-98 02:09:46 +ESA
   94960   29201 69.2% 30-Oct-98 02:09:52 +ESA.guide
    2830     978 65.4% 30-Oct-98 02:09:52 +MergeSort.ei
    1726     730 57.7% 30-Oct-98 02:09:52 +QuickSort.ei
    2599     957 63.1% 30-Oct-98 02:09:52 +data.i
    1129     408 63.8% 30-Oct-98 02:09:52 +defs.i
     501     279 44.3% 30-Oct-98 02:09:52 +do
     898     344 61.6% 30-Oct-98 02:09:52 +main.esa
    5803    1709 70.5% 30-Oct-98 02:09:52 +misc.ei
    6642    2307 65.2% 30-Oct-98 02:09:52 +opt.ei
    1890     850 55.0% 30-Oct-98 02:09:52 +split.ei
   12099    4416 63.5% 30-Oct-98 02:09:52 +sss.guide
     191     101 47.1% 30-Oct-98 02:09:52 +tab.txt
-------- ------- ----- --------- --------
  154692   54569 64.7% 30-Oct-98 22:23:24   13 files
