anchor.diff:      i = 1
       do while (i.le.narg)
           call getarg(i,tag)
  -        if (tag(1:11).eq.'-perceptual') then
  +        if (tag(1:5).eq.'-cmap') then
               i = i + 1
               call getarg(i,option)
           elseif (tag(1:4).eq.'-hue') then
  +            hue1 = -1.0
  +            hue2 = -1.0
               i = i + 1
               call getarg(i,tag)
               j = index(tag,',')
               tag(j:j) = ' '
  -            read(tag,*) hue1,hue2
  +            read(tag,*) ch1,ch2
  +            if (ch1.eq.'m') then
  +                hue1 = 0
  +            elseif (ch1.eq.'r') then
  +                hue1 = 30
  +            elseif (ch1.eq.'o') then
  +                hue1 = 50
  +            elseif (ch1.eq.'y') then
  +                hue1 = 90
  +            elseif (ch1.eq.'g') then
  +                hue1 = 150
  +            elseif (ch1.eq.'b') then
  +                hue1 = 270
  +            elseif (ch1.eq.'p') then
  +                hue1 = 330
  +            endif
  +            if (ch2.eq.'m') then
  +                hue2 = 0
  +            elseif (ch2.eq.'r') then
  +                hue2 = 30
  +            elseif (ch2.eq.'o') then
  +                hue2 = 50
  +            elseif (ch2.eq.'y') then
  +                hue2 = 90
  +            elseif (ch2.eq.'g') then
  +                hue2 = 150
  +            elseif (ch2.eq.'b') then
  +                hue2 = 270
  +            elseif (ch2.eq.'p') then
  +                hue2 = 330
  +            endif
  +            if (hue1.lt.-0.5.and.hue2.lt.-0.5) then
  +                read(tag,*) hue1,hue2
  +            elseif (hue1.lt.-0.5) then
  +                read(tag,*) hue1,ch2
  +            elseif (hue2.lt.-0.5) then
  +                read(tag,*) ch1,hue2
  +            endif
           elseif (tag(1:6).eq.'-light') then
               i = i + 1
               call getarg(i,tag)
  
positive.code:     integer :: i,j,narg
      character(len=200) :: tag
      character(len=*) :: option
      real :: hue1,hue2,light1,light2,chroma1,chroma2
      integer :: ncolors,vrb
      option = ''
  
negative.code:             read(tag,*) ncolors
          elseif (tag(1:2).eq.'-v') then
              vrb = 1
          elseif (tag(1:2).eq.'-d') then
              call usage('long')
          else
              call usage('!! Error: no option '//trim(tag))
          endif
  