Phoebus R. Dokos  writes:

> >> I always thought that slices could work in reverse as well (and they
> >> should actually) so eg.
> >>
> >> a$ = "hi"
> >> b$ = a$ (2 TO 1)
> >>
> >> PRINT b$ should return "ih" but maybe it's just me :-)
> >>
> >> Phoebus
> > Patience my boy! Marcel The Miracle Maker will crack this one
> > eventually!
> >
> 
> Hehe that or crack our head for making these suggestions ;-)
> Seriously though that would be a great improvement as it would eliminate 
> the need for a reverse function (Geoff would love that one as well I'd 
> imagine)
> It's rather annoying to have to resort to LEN(String$)-1 iterations to 
> solve this :-)

It would be trivial to write your own m/c routine to do the job!

Off the top of my head, something along the lines of

    get1string                      ;SB string on stack. a1->string
    move.w 0(a6,a1.l),d0    ;get len
    lea.l 2(a1,d0.w),a0        ;a0 -> end string
    lsr.w #1,d0                    ;only need to swap half the string
    bra.s loop_end               ;dont bother if 1 char or less
loop
    move.b 2(a6,a1.l),d1      ;swap chars
    move.b 0(a6,a0.l),2(a6,a1.l)
    move.b d1,0(a6,a0.l)
    subq.l #1,a0                    ;next pair
    addq.l #1,a1
loop_end
    dbra d0,loop
    returnstring                    ;reset a1 and return string to SB

should work.
    
Per


  • ... François Van Emelen
    • ... Marcel Kilgus
    • ... Robert Newson
      • ... François Van Emelen
        • ... "Phoebus R. Dokos (Φοίβος Ρ. Ντόκος)"
          • ... Dilwyn Jones
            • ... "Phoebus R. Dokos (Φοίβος Ρ. Ντόκος)"
            • ... Dave P
              • ... "Phoebus R. Dokos (Φοίβος Ρ. Ντόκος)"
              • ... "Phoebus R. Dokos (Φοίβος Ρ. Ντόκος)"
            • ... Bill Waugh
            • ... Marcel Kilgus
    • ... P Witte
    • ... Claude Mourier 00
    • ... RWAPSoftware
      • ... Robert Newson

Reply via email to