********(*********************************************************************
*                                                                            *
*   fastcmp.asm version 1.0 of 22 Januari 1989    (C) L.J.M. de Wit 1989     *
*                                                                            *
* This software may be used and distributed freely if not used commercially  *
* and the originator (me) is mentioned in the source (just leave this 9 line *
* header intact).                                                            *
*                                                      /دددددددددددددددددددددہًہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہہًہًہدˆژŒہژ@دˆژد„پدˆ€Œ‚„pہًہدددپƒˆOŒ	ˆOƒˆˆO‡„ˆپˆ	د‚O€ˆˆˆ	دژOژO„ˆپژپدˆ€د„O€دپƒˆOœpہدددˆ€Œ‚„O‡„ˆپد‚د„پŒہŒ@د„ŒOŒژ‚„OژˆO‰€ˆOژOپ€د€‚ˆpہددد„پ‚ˆAد„O‡ˆˆ€€ŒOپ€ˆO‰‚	€بد„O€پژ	ہًہًہددد‍Oˆ€د‰€پژ‚ءدژO„ˆˆˆŒO‚O€	ˆOپ€OپƒˆOŒ„ˆPےےےے $ےےےے ,
ےےےے 6Pے	ےےےے@
ےےےےRےےےےgےےےے|ےےےے‘ےےےے¦ےےےے»ےےےےذے		ےےےےهےےےےٍےےےےےےےےےےےےےےےےے#ےےےے0ےےےے=ےےےےI!ےےےےےVےےےےaےےےےrےےےےƒ ےےےےژ!ےےےے›ےےےے ¬ےےےےےے؛ےےےےإےےےےجےےےےس	ےےےے%ïےےےےطےےےےكےےےےTےے(ےےےےِ"ےےےے#ےےےے="ےےےے\#ےےےے|!ےےےے‌"ےےےے½	ےےےےp(
ےےےےŒ(ےےےے¨(ےےےے ؤ
(àèsp),a0
   movea.l  8(sp),a1
skips0i
   move.b   (a0)+,d0
   cmp.b    #' ',d0
   beq.s    skips0i
   cmp.b    #tab,d0
   beq.s    skips0i
   subq.l   #1,a0
skips1i
   move.b   (a1)+,d1
   cmp.b    #' ',d1
   beq.s    skips1i
   cmp.b    #tab,d1
   beq.s    skips1i
   subq.l   #1,a1
   move.l   a0,4(sp)
   move.l   a1,8(sp)
   jmp      c_ifu

   xdef     c_ibru
c_ibru
* Norm/Blank/Reverse  *
   move.l   4(sp),a1
   move.l   8(sp),a0
   bra.s    skips0j

   xdef     c_ibu
c_ibu
* Norm/Blank  *
   movea.l  4(sp),a0
   movea.l  8(sp),a1
skips0j
   move.b   (a0)+,d0
   cmp.b    #' ',d0
   beq.s    skips0j
   cmp.b    #tab,d0
   beq.s    skips0j
   subq.l   #1,a0
skips1j
   move.b   (a1)+,d1
   cmp.b    #' ',d1
   beq.s    skips1j
   cmp.b    #tab,d1
   beq.s    skips1j
   subq.l   #1,a1
   move.l   a0,4(sp)
   move.l   a1,8(sp)
   jmp      c_iu

   xdef     c_ifru
c_ifru
* Norm/Fold/Reverse  *
   move.l   4(sp),a0
   move.l   8(sp),4(sp)
   move.l   a0,8(sp)
   jmp      c_ifu

   xdef     c_iru
c_iru
* Norm/Reverse  *
   move.l   4(sp),a0
   move.l   8(sp),4(sp)
   move.l   a0,8(sp)
   jmp      c_iu

   xdef     c_abfru
c_abfru
* Blank/Fold/Reverse  *
   move.l   4(sp),a1
   move.l   8(sp),a0
   bra.s    skips0k

   xdef     c_abfu
c_abfu
* Blank/Fold  *
   movea.l  4(sp),a0
   movea.l  8(sp),a1
skips0k
   move.b   (a0)+,d0
   cmp.b    #' ',d0
   beq.s    skips0k
   cmp.b    #tab,d0
   beq.s    skips0k
   subq.l   #1,a0
skips1k
   move.b   (a1)+,d1
   cmp.b    #' ',d1
   beq.s    skips1k
   cmp.b    #tab,d1
   beq.s    skips1k
   subq.l   #1,a1
   move.l   a0,4(sp)
   move.l   a1,8(sp)
   jmp      c_afu

   xdef     c_abru
c_abru
* Blank/Reverse  *
   move.l   4(sp),a1
   move.l   8(sp),a0
   bra.s    skips0l

   xdef     c_abu
c_abu
* Blank  *
   movea.l  4(sp),a0
   movea.l  8(sp),a1
skips0l
   move.b   (a0)+,d0
   cmp.b    #' ',d0
   beq.s    skips0l
   cmp.b    #tab,d0
   beq.s    skips0l
   subq.l   #1,a0
skips1l
   move.b   (a1)+,d1
   cmp.b    #' ',d1
   beq.s    skips1l
   cmp.b    #tab,d1
   beq.s    skips1l
   subq.l   #1,a1
   move.l   a0,4(sp)
   move.l   a1,8(sp)
   jmp      c_au

   xdef     c_afru
c_afru
* Fold/Reverse  *
   move.l   4(sp),a0
   move.l   8(sp),4(sp)
   move.l   a0,8(sp)
   jmp      c_afu

   xdef     c_aru
c_aru
* Reverse  *
   move.l   4(sp),a1
   move.l   8(sp),a0
   bra.s    c_auloop

   xdef     c_au
c_au
   movea.l 4(sp),a0
   movea.l 8(sp),a1
c_auloop
   move.b  (a0)+,d0
   beq.s   c_auex0
   sub.b   (a1)+,d0
   bne.s   c_auex1
   move.b  (a0)+,d0
   beq.s   c_auex0
   sub.b   (a1)+,d0
   bne.s   c_auex1
   move.b  (a0)+,d0
   beq.s   c_auex0
   sub.b   (a1)+,d0
   bne.s   c_auex1
   move.b  (a0)+,d0
   beq.s   c_auex0
   sub.b   (a1)+,d0
   beq.s   c_auloop
c_auex1
   ext.w   d0
   ext.l   d0
   rts
c_auex0
   sub.b   (a1),d0
   ext.w   d0
   ext.l   d0
   rts

   end
