    ! EDATTR - EDWIN Attribute changing routines

    !############################################################################
    !#                                                                          #
    !#  This is a module from the EDWIN Graphics Package, which was developed   #
    !#  in the Department of Computer Science, at Edinburgh University, from    #
    !#  1978 to the present day, release 5 of EDWIN in October 1984.            #
    !#                                                                          #
    !#  The principal author of the EDWIN Graphics Package was J Gordon Hughes, #
    !#  while working for the Edinburgh University Computer Sceince Department. #
    !#  Parts of EDWIN have been produced by many different people, too many    #
    !#  too mention, working for different departments of Edinburgh and Leeds   #
    !#  Universities.                                                           #
    !#                                                                          #
    !#  This module is regarded as being in the public domain, and the authors  #
    !#  and accept no responsibility regarding the uses to which the software   #
    !#  will be put.                                                            #
    !#                                                                          #
    !############################################################################

    from Edwin include iprocs
    from Edwin include icodes

    external routine SET COLOUR alias "EDWIN_SET_COLOUR" (integer TO)
       const integer MAX = 255
       TO = 1 unless 0<=TO<=MAX
       PDF INSERT ((att colour<<8 ! TO) <<4 ! pdf attribute, 0, 0)
       SET ATTRIBUTE (att colour, TO)
    end

    external routine SET LINE STYLE alias "EDWIN_SET_STYLE" (integer TO)
       const integer MAX = 255
       TO = default unless 0<=TO<=MAX
       PDF INSERT ((att line style<<8 ! TO) <<4 ! pdf attribute, 0, 0)
       SET ATTRIBUTE (att line style, TO)
    end

    external routine SET CHAR SIZE alias "EDWIN_SET_CHAR_SIZE" (integer TO)
       PDF INSERT (att char size<<12 ! pdf gen attrib, TO, 0)
       SET ATTRIBUTE (att char size, TO)
    end

    external routine SET CHAR ROT alias "EDWIN_SET_CHAR_ROT" (integer TO)
       ! Force the parameter into the range 0 to 360.
       if TO < 0 start
           TO = TO + 360 until TO >= 0
       finish else if TO>=360 start
           TO = TO - 360 until TO < 360
       finish
       PDF INSERT (att char rot<<12!pdf gen attrib, TO, 0)
       SET ATTRIBUTE (att char rot, TO)
    end

    external routine SET CHAR QUALITY alias "EDWIN_SET_CHAR_QUAL" (integer TO)
       const integer MAX = 2
       TO = default unless 0<=TO<=MAX
       PDF INSERT ((att char quality<<8 ! TO) <<4 ! pdf attribute, 0, 0)
       SET ATTRIBUTE (att char quality, TO)
    end

    external routine SET CHAR FONT alias "EDWIN_SET_CHAR_FONT" (integer TO)
       const integer MAX = 64
       TO = default unless 0<=TO<=MAX
       PDF INSERT ((att char font<<8 ! TO) <<4 ! pdf attribute, 0, 0)
       SET ATTRIBUTE (att char font, TO)
    end

    external routine SET CHAR SLANT alias "EDWIN_SET_CHAR_SLANT" (integer TO)
       const integer MIN = -90, MAX = 90
       PDF INSERT (att char slant << 12 ! pdf gen attrib, TO, 0)
       TO = default unless MIN<=TO<=MAX
       SET ATTRIBUTE (att char slant, TO)
    end

    external routine SET CHAR MIRROR alias "EDWIN_SET_CHAR_MIR" (integer TO)
       const integer MIN = 0, MAX = 3
       PDF INSERT ((att Char Mirror<<8 ! TO) <<4 ! pdf attribute, 0, 0)
       TO = default unless MIN<=TO<=MAX
       SET ATTRIBUTE (att char Mirror, TO)
    end

    external routine SET SPEED alias "EDWIN_SET_SPEED" (integer TO)
       ! Dummy for backwards compatibilty, only applies to HP-GL driver
    end

    external routine SET COLOUR MODE alias "EDWIN_SET_COL_MODE" (integer TO)
       const integer MAX = 7
       TO = default unless 0<=TO<=MAX
       PDF INSERT ((att colour mode<<8!TO) <<4 ! pdf attribute, 0, 0)
       SET ATTRIBUTE (att colour mode, TO)
    end

    external routine SET CHORD STEP alias "EDWIN_SET_CHORD_STEP" (integer TO)
       const integer MAX = 90
       TO = 15 unless 0<TO<=MAX
       PDF INSERT ((att chord step<<8!TO) <<4 ! pdf attribute, 0, 0)
       SET ATTRIBUTE (att chord step, TO)
    end

    external routine SET SHADE MODE alias "EDWIN_SET_SHADE_MODE" (integer TO)
       const integer MAX = 255
       TO = default unless 0<=TO<=MAX
       PDF INSERT ((att shade mode<<8!TO) <<4 ! pdf attribute, 0, 0)
       SET ATTRIBUTE (att shade mode, TO)
    end

    external routine Set Polygon Rendering alias "EDWIN_SET_POLY_RENDER" (integer TO)
       const integer MAX = 1
       TO = default unless 0<=TO<=MAX
       PDF INSERT ((att poly Render<<8!TO) <<4 ! pdf attribute, 0, 0)
       SET ATTRIBUTE (att poly Render, TO)
    end

    end of file