; 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