; ; >>> Quicksort routine v1.1 <<< ; by Frank Yaul 7/14/04 ; ; Usage: bc->first, de->last, ; call qsort ; Destroys: abcdefhl ; qsort: ld hl,0 push hl qsloop: ld h,b ld l,c or a sbc hl,de jp c,next1 ;loop until lopiv ld a,(de) ld l,a ld a,h cp l jp c,fright push hl ;save pivot ld h,d ;exit if lo>hi ld l,e or a sbc hl,bc jp c,next2 ld a,(bc) ;swap (bc),(de) ld h,a ld a,(de) ld (bc),a ld a,h ld (de),a pop hl ;restore pivot jp fleft next2: pop hl ;restore pivot pop hl ;pop lo push bc ;stack=left-hi ld b,h ld c,l ;bc=lo,de=right jp qsloop ; ; >>> end Quicksort <<< ;