Pro HLS, Litlo, Lithi, Satlo, Sathi, Hue, Loops, Colr
    common colors,red,green,blue,cur_red,cur_green,cur_blue
    on_error,2                      ;Return to caller if an error occurs
    S = (sathi-satlo)/25600.*findgen(256)+satlo/100.
    L = (Lithi-Litlo)/25600.*findgen(256)+litlo/100.
    HG = Loops*360./256.*findgen(256)+ Hue
    Hmin = Min(hg)/360.
    IF HMIN LT 0. THEN HMIN = FIX(HMIN)-1 ELSE $
        HMIN =FIX(HMIN)
    HG = (HG - Hmin*360.) mod 360.  ;Make all positive
    HR = (HG +120) mod 360.
    HB = (HG +240) mod 360.
;
    N2 = (L LE .5)*(L+L*S) + (L GT .5)*(L+S-L*S)
    N1 = 2*L - N2
    N21 = (N2-N1)/60.
    COLR = FLTARR(256,3)
;
    FOR I=0,255 DO BEGIN        ;What a mess.
      IF S[I] EQ 0. THEN COLR[I,*]=L[I] ELSE BEGIN
        IF HR[I] LT 60. THEN COLR[I,0]=N1[I]+N21[I]*HR[I] ELSE $
        IF HR[I] LT 180. THEN COLR[I,0]=N2[I] ELSE $
        IF HR[I] LT 240. THEN COLR[I,0]=N1[I]+N21[I]*(240.-HR[I]) ELSE $
            COLR[I,0]=N1[I]
        IF HG[I] LT 60. THEN COLR[I,1]=N1[I]+N21[I]*HG[I] ELSE $
        IF HG[I] LT 180. THEN COLR[I,1]=N2[I] ELSE $
        IF HG[I] LT 240. THEN COLR[I,1]=N1[I]+N21[I]*(240.-HG[I]) ELSE $
            COLR[I,1]=N1[I]
        IF HB[I] LT 60. THEN COLR[I,2]=N1[I]+N21[I]*HB[I] ELSE $
        IF HB[I] LT 180. THEN COLR[I,2]=N2[I] ELSE $
        IF HB[I] LT 240. THEN COLR[I,2]=N1[I]+N21[I]*(240.-HB[I]) ELSE $
            COLR[I,2]=N1[I]
        ENDELSE
       ENDFOR
;
    COLR = FIX(COLR*255.)<255       ;CVT TO 0, 255.
    RED = COLR[*,0]             ;SAVE IN COMMON
    GREEN = COLR[*,1]
    BLUE = COLR[*,2]
    TVLCT,RED,GREEN,BLUE            ;LOAD COLORS
    cur_red = red & cur_green = green & cur_blue = blue
    RETURN
END