; 4.7.01
; ech.com writes the commandline after the first " till the
; penultimate character to stdout (without an trailing CRLF)
; example: ech "line with <>|^&">tmp.txt

        @=$100
        move.w  (sp)+,r0
        move.w  r0,-(sp)
        sub.b   #-$c5,r0        ; r0=$00c5
        move.w  r0,-(sp)
        move.w  (sp)+,r6        ; r6=$00c5
        sub.b   #$45,r0         ; r0=$0080
        move.w  r0,-(sp)        ;
        

        eor.b   r0,(_10-$c5).b(r6.w)
        eor.b   r0,(_20-$c5).b(r6.w)
        eor.b   r0,(_30+1-$c5).b(r6.w)
        eor.w   (_30+1-$c5).b(r6.w),r0  ; r0=$4378
        sub.w   #$425a,r0               ; r0=_50 (= $011e)
        move.w  r0,-(sp)
        sub.b   r0,(_40+1-$c5).b(r6.w)
        bne.b   _20

_50:    move.w  (sp)+,r3        ; r3=$0080
        moveq.w #$40,-(sp)
        move.w  (sp)+,r6        ; r6=$0040
        move.w  (sp)+,r2
        move.w  r2,-(sp)        ; r2=$0000
        eor.b   $40.b(r6.w),r2  ; num. of char

        eor.w   #$2333,r0       ; m0=$22
        inc.w   r0              ; nop
_60:    inc.w   r3    
        dec.w   r2
_40:    dc.b    $7e,(_20-@-1)+(_50&$ff) ; ble.b   _20
        cmp.b   m0,(r3.w)
_30:    dc.b    $75,(_60-@-1)^$80       ; bne.b   _60
        inc.w   r3
        dec.w   r2
        move.w  r3,-(sp)
        move.w  (sp)+,r1
        
        move.w  (sp)+,r3
        move.w  r3,-(sp)
        inc.w   r3              ; r3=1
        eor.w   #$622e,r0       ; r0=$4000

_10:    dc.b    $cd^$80,$21     ; trap    #$21
_20:    dc.b    $c3^$80         ; rts.w