	IFND	INTUITION_PREFERENCES_I
INTUITION_PREFERENCES_I	EQU	1
**
**	$Filename: intuition/preferences.i $
**	$Release: 2.04 Includes, V37.4 $
**	$Revision: 36.6 $
**	$Date: 91/03/13 $
**
**	Structure definition for old-style preferences
**
**	(C) Copyright 1985-1991 Commodore-Amiga, Inc.
**	    All Rights Reserved
**

	IFND	EXEC_TYPES_I
	INCLUDE	"exec/types.i"
	ENDC

	IFND	DEVICES_TIMER_I
	INCLUDE	"devices/timer.i"
	ENDC

; ========================================================================
; === Preferences ========================================================
; ========================================================================

; these are the definitions for the printer configurations
FILENAME_SIZE	EQU	30	; Filename size

POINTERSIZE	EQU	(1+16+1)*2	; Size of Pointer data buffer

; These defines are for the default font size.	These actually describe the
; height of the defaults fonts.  The default font type is the topaz
; font, which is a fixed width font that can be used in either
; eighty-column or sixty-column mode.  The Preferences structure reflects
; which is currently selected by the value found in the variable FontSize,
; which may have either of the values defined below.  These values actually
; are used to select the height of the default font.  By changing the
; height, the resolution of the font changes as well.
TOPAZ_EIGHTY	EQU	8
TOPAZ_SIXTY	EQU	9

; ------------------------------------------------------------------------
	STRUCTURE	Preferences,0

	; the default font height
	BYTE	pf_FontHeight		; height for system default font

	; constant describing what's hooked up to the port
	BYTE	pf_PrinterPort	; printer port connection

	; the baud rate of the port
	WORD	pf_BaudRate		; baud rate for the serial port
	
	; various timing rates
	STRUCT	pf_KeyRptSpeed,TV_SIZE ; repeat speed for keyboard
	STRUCT	pf_KeyRptDelay,TV_SIZE ; Delay before keys repeat
	STRUCT	pf_DoubleClick,TV_SIZE ; Interval allowed between clicks

	; Intuition Pointer data
	STRUCT	pf_PointerMatrix,POINTERSIZE*2 ; Definition of pointer sprite
	BYTE	pf_XOffset		; X-Offset for active 'bit'
	BYTE	pf_YOffset		; Y-Offset for active 'bit'
	WORD	pf_color17		;********************************
	WORD	pf_color18		; Colours for sprite pointer
	WORD	pf_color19		;********************************
	WORD	pf_PointerTicks	; Sensitivity of the pointer	

	; Workbench Screen colors
	WORD	pf_color0		;********************************
	WORD	pf_color1		;  Standard default colours
	WORD	pf_color2		;   Used in the Workbench
	WORD	pf_color3		;********************************

	; positioning data for the Intuition View
	BYTE	pf_ViewXOffset		; Offset for top lefthand corner
	BYTE	pf_ViewYOffset		; X and Y dimensions
	WORD	pf_ViewInitX		; View initial offsets at startup
	WORD	pf_ViewInitY		; View initial offsets at startup

	BOOL	EnableCLI		; CLI availability switch

	; printer configurations
	WORD	pf_PrinterType		; printer type
	STRUCT	pf_PrinterFilename,FILENAME_SIZE ; file for printer

	; print format and quality configurations
	WORD	pf_PrintPitch 		; print pitch
	WORD	pf_PrintQuality	; print quality
	WORD	pf_PrintSpacing	; number of lines per inch
	WORD	pf_PrintLeftMargin	; left margin in characters
	WORD	pf_PrintRightMargin	; right margin in characters
	WORD	pf_PrintImage		; positive or negative
	WORD	pf_PrintAspect		; horizontal or vertical
	WORD	pf_PrintShade		; b&w, half-tone, or color
	WORD	pf_PrintThreshold	; darkness ctrl for b/w dumps


	; print paper description
	WORD	pf_PaperSize		; paper size
	WORD	pf_PaperLength		; paper length in lines
	WORD	pf_PaperType		; continuous or single sheet

	; Serial device settings: These are six nibble-fields in three bytes
	; (these look a little strange so the defaults will map out to zero)
	BYTE	pf_SerRWBits           ; upper nibble = (8-number of read bits)
	; lower nibble = (8-number of write bits)
	BYTE	pf_SerStopBuf          ; upper nibble = (number of stop bits - 1)
	; lower nibble = (table value for BufSize)
	BYTE	pf_SerParShk           ; upper nibble = (value for Parity setting)
	; lower nibble = (value for Handshake mode)

	BYTE	pf_LaceWB		; if workbench is to be interlaced

	STRUCT	pf_WorkName,FILENAME_SIZE ; temp file for printer

	BYTE	pf_RowSizeChange	; 
	BYTE	pf_ColumnSizeChange ;

	UWORD	pf_PrintFlags	; user preference flags
	WORD	pf_PrintMaxWidth    ; max width of printed picture in 10ths/inch
	UWORD	pf_PrintMaxHeight   ; max height of printed picture in 10ths/inch 
	UBYTE	pf_PrintDensity     ; print density
	UBYTE	pf_PrintXOffset     ; offset of printed picture in 10ths/inch

	UWORD	pf_wb_Width		; override default workbench width
	UWORD	pf_wb_Height	; override default workbench height
	UBYTE	pf_wb_Depth		; override default workbench depth

	UBYTE	pf_ext_size		; extension information -- do not touch!
	; extension size in blocks of 64 bytes

	LABEL	pf_SIZEOF


; === Preferences definitions ===========================================

; Workbench Interlace (use one bit)
LACEWB	EQU	$01

; PrinterPort
PARALLEL_PRINTER	EQU	$00
SERIAL_PRINTER	EQU	$01

; BaudRate
BAUD_110	EQU	$00
BAUD_300	EQU	$01
BAUD_1200	EQU	$02
BAUD_2400	EQU	$03
BAUD_4800	EQU	$04
BAUD_9600	EQU	$05
BAUD_19200	EQU	$06
BAUD_MIDI	EQU	$07

; PaperType
FANFOLD	EQU	$00
SINGLE	EQU	$80

; PrintPitch
PICA	EQU	$000
ELITE	EQU	$400
FINE	EQU	$800

; PrintQuality
DRAFT	EQU	$000
LETTER	EQU	$100

; PrintSpacing
SIX_LPI	EQU	$000
EIGHT_LPI	EQU	$200

; Print Image
IMAGE_POSITIVE	EQU	$00
IMAGE_NEGATIVE	EQU	$01

; PrintAspect
ASPECT_HORIZ	EQU	$00
ASPECT_VERT	EQU	$01

; PrintShade
SHADE_BW	EQU	$00
SHADE_GREYSCALE	EQU	$01
SHADE_COLOR	EQU	$02

; PaperSize
US_LETTER	EQU	$00
US_LEGAL	EQU	$10
N_TRACTOR	EQU	$20
W_TRACTOR	EQU	$30
CUSTOM	EQU	$40

; New PaperSizes for V36:
EURO_A0	EQU	$50            ; European size A0: 841 x 1189
EURO_A1	EQU	$60            ; European size A1: 594 x 841
EURO_A2	EQU	$70            ; European size A2: 420 x 594
EURO_A3	EQU	$80            ; European size A3: 297 x 420
EURO_A4	EQU	$90            ; European size A4: 210 x 297
EURO_A5	EQU	$A0            ; European size A5: 148 x 210
EURO_A6	EQU	$B0            ; European size A6: 105 x 148
EURO_A7	EQU	$C0            ; European size A7: 74 x 105
EURO_A8	EQU	$D0            ; European size A8: 52 x 74

; PrinterType
CUSTOM_NAME	EQU	$00
ALPHA_P_101	EQU	$01
BROTHER_15XL	EQU	$02
CBM_MPS1000	EQU	$03
DIAB_630	EQU	$04
DIAB_ADV_D25	EQU	$05
DIAB_C_150	EQU	$06
EPSON	EQU	$07
EPSON_JX_80	EQU	$08
OKIMATE_20	EQU	$09
QUME_LP_20	EQU	$0A
; new printer entries, 3 October 1985
HP_LASERJET	EQU	$0B
HP_LASERJET_PLUS	EQU	$0C


; Serial Input Buffer Sizes
SBUF_512	EQU	$00
SBUF_1024	EQU	$01
SBUF_2048	EQU	$02
SBUF_4096	EQU	$03
SBUF_8000	EQU	$04
SBUF_16000	EQU	$05

; Serial Bit Masks
SREAD_BITS	EQU	$F0	; pf_SerRWBits
SWRITE_BITS	EQU	$0F

SSTOP_BITS	EQU	$F0	; pf_SerStopBuf
SBUFSIZE_BITS	EQU	$0F

SPARITY_BITS	EQU	$F0	; pf_SerParShk
SHSHAKE_BITS	EQU	$0F

; Serial Parity (high nibble, but here shifted right, as by C-macro SPARNUM)
SPARITY_NONE	EQU	$00
SPARITY_EVEN	EQU	$01
SPARITY_ODD	EQU	$02
; New parity definitions for V36:
SPARITY_MARK	EQU	$03
SPARITY_SPACE	EQU	$04

; Serial Handshake Mode (low nibble, mask by SHSHAKE_BITS)
SHSHAKE_XON	EQU	$00
SHSHAKE_RTS	EQU	$01
SHSHAKE_NONE	EQU	$02

; new defines for PrintFlags
CORRECT_RED	EQU	$0001    ; color correct red shades
CORRECT_GREEN	EQU	$0002    ; color correct green shades 
CORRECT_BLUE	EQU	$0004    ; color correct blue shades

CENTER_IMAGE	EQU	$0008      ; center image on paper

IGNORE_DIMENSIONS	EQU	$0000    ; ignore max width/height settings
BOUNDED_DIMENSIONS	EQU	$0010    ; use max width/height as boundaries
ABSOLUTE_DIMENSIONS	EQU	$0020    ; use max width/height as absolutes
PIXEL_DIMENSIONS	EQU	$0040    ; use max width/height as prt pixels
MULTIPLY_DIMENSIONS	EQU	$0080    ; use max width/height as multipliers

INTEGER_SCALING	EQU	$0100    ; force integer scaling

ORDERED_DITHERING	EQU	$0000    ; ordered dithering
HALFTONE_DITHERING	EQU	$0200    ; halftone dithering
FLOYD_DITHERING	EQU	$0400    ; floyd-steinberg dithering

ANTI_ALIAS	EQU	$0800    ; anti-alias image
GREY_SCALE2	EQU	$1000    ; for use with hi-res monitor

CORRECT_RGB_MASK	EQU	(CORRECT_RED+CORRECT_GREEN+CORRECT_BLUE)
DIMENSIONS_MASK	EQU	(BOUNDED_DIMENSIONS+ABSOLUTE_DIMENSIONS+PIXEL_DIMENSIONS+MULTIPLY_DIMENSIONS)
DITHERING_MASK	EQU	(HALFTONE_DITHERING+FLOYD_DITHERING)

	ENDC
